Finalmente ho create 2 funzioni in grado di rivoluzionare tutto il sistema banner Xoops!
Grazie a questa funzione sarà possibile inserire svariati banner in ogni punto del nostro sito con la possibilità di scegliere quale tipo di banner visualizzare!
Il tutto sarà possibile farlo usando il sistema banner integrato in Xoops mantendo la classica gestione banner, gestione clienti, counter click, ecc.
Nello specifico sarà possibile gestire questi casi:
1) Nessuna distinzione banner: visualizzare banner random
2) Distinzione banner: visualizzare uno specifico banner
3) Distinzione cliente: visualizzare banner di un certo cliente specifico
ORA INIZIAMO CON IL CODICE:
Andate in root_directory/include/ ed aprire il file functions.php
Alla fine di questo file, prima de tag ?> inserire questo codice:
ora salvate e chiudete il suddetto file.
------------ ORA POSSIAMO GESTIRE QUESTI CASI ------------
CASO 1:
Inserisci i tuoi banner dove vuoi (senza alcuna limitazione): i banner saranno visualizzati random prelevati da tutti i banner inseriti nel sistema banner di Xoops.
Crea un nuovo blocco Xoops PHP e inserisci questo codice:
CASO 2:
Inserisci i tuoi banner dove vuoi (senza alcuna limitazione): i banner saranno visualizzati tramite ID_BANNER e quindi, per esempio, sarà possibile visualizzare specifici banner in diversi specifici blocchi Xoops, mantenendo sempre attivo il conteggio click ed impressioni.
Crea un nuovo blocco Xoops PHP e inserisci questo codice:
dove ID_BANNER = ID del banner da visualizzare (puoi trovare questo ID nella pagina amministrazione banner --> Banner ID on Current Active Banners)
CASO 3:
Inserisci i tuoi banner dove vuoi (senza alcuna limitazione): i banner saranno visualizzati tramite ID_CLIENT e quindi, per esempio, se un cliente possiede 10 banner all'interno del blocco creato verranno visualizzati questi 10 banner prelevati a random e mantenendo sempre attivo il conteggio click ed impressioni.
Crea un nuovo blocco Xoops PHP e inserisci questo codice:
dove ID_CLIENT = ID del cliente dei banner da visualizzare (puoi trovare questo ID nella pagina amministrazione banner --> Banner ID on Advertising Clients)
E' TUTTO! Aspetto i vostri feedback
Questo articolo è stato tradotto per la community inglese e spagnola:
English Version:
http://www.stefanosilvestrini.com/ste ... tem.php?easiestml_lang=en
Spanish Version:
http://www.esxoops.com/modules/news/article.php?storyid=734
Grazie a questa funzione sarà possibile inserire svariati banner in ogni punto del nostro sito con la possibilità di scegliere quale tipo di banner visualizzare!
Il tutto sarà possibile farlo usando il sistema banner integrato in Xoops mantendo la classica gestione banner, gestione clienti, counter click, ecc.
Nello specifico sarà possibile gestire questi casi:
1) Nessuna distinzione banner: visualizzare banner random
2) Distinzione banner: visualizzare uno specifico banner
3) Distinzione cliente: visualizzare banner di un certo cliente specifico
ORA INIZIAMO CON IL CODICE:
Andate in root_directory/include/ ed aprire il file functions.php
Alla fine di questo file, prima de tag ?> inserire questo codice:
function getbanner_from_id_banner($banner_id)
{
###### Hack by www.stefanosilvestrini.com ######
global $xoopsConfig;
$db =& Database::getInstance();
$bresult = $db->query("SELECT COUNT(*) FROM ".$db->prefix("banner")." WHERE bid = ". $banner_id);
list ($numrows) = $db->fetchRow($bresult);
if ( $numrows > 1 ) {
$numrows = $numrows-1;
mt_srand((double)microtime()*1000000);
$bannum = mt_rand(0, $numrows);
} else {
$bannum = 0;
}
if ( $numrows > 0 ) {
$bresult = $db->query("SELECT * FROM ".$db->prefix("banner")." WHERE bid = ". $banner_id, 1, $bannum);
list ($bid, $cid, $imptotal, $impmade, $clicks, $imageurl, $clickurl, $date, $htmlbanner, $htmlcode) = $db->fetchRow($bresult);
if ($xoopsConfig['my_ip'] == xoops_getenv('REMOTE_ADDR')) {
// EMPTY
} else {
$db->queryF(sprintf("UPDATE %s SET impmade = impmade+1 WHERE bid = %u", $db->prefix("banner"), $bid));
}
/* Check if this impression is the last one and print the banner */
if ( $imptotal == $impmade ) {
$newid = $db->genId($db->prefix("bannerfinish")."_bid_seq");
$sql = sprintf("INSERT INTO %s (bid, cid, impressions, clicks, datestart, dateend) VALUES (%u, %u, %u, %u, %u, %u)", $db->prefix("bannerfinish"), $newid, $cid, $impmade, $clicks, $date, time());
$db->queryF($sql);
$db->queryF(sprintf("DELETE FROM %s WHERE bid = %u", $db->prefix("banner"), $bid));
}
if ($htmlbanner){
$bannerobject = $htmlcode;
}else{
$bannerobject = '<div align="center"><a href="'.XOOPS_URL.'/banners.php?op=click&bid='.$bid.'" target="_blank">';
if (stristr($imageurl, '.swf')) {
$bannerobject = $bannerobject
.'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="468" height="60">'
.'<param name="movie" value="'.$imageurl.'"></param>'
.'<param name="quality" value="high"></param>'
.'<embed src="'.$imageurl.'" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="468" height="60">'
.'</embed>'
.'</object>';
} else {
$bannerobject = $bannerobject.'<img src="'.$imageurl.'" alt="" />';
}
$bannerobject = $bannerobject.'</a></div>';
}
return $bannerobject;
}
}
function getbanner_from_id_client($client_id)
{
###### Hack by www.stefanosilvestrini.com ######
global $xoopsConfig;
$db =& Database::getInstance();
$bresult = $db->query("SELECT COUNT(*) FROM ".$db->prefix("banner")." WHERE cid = ". $client_id);
list ($numrows) = $db->fetchRow($bresult);
if ( $numrows > 1 ) {
$numrows = $numrows-1;
mt_srand((double)microtime()*1000000);
$bannum = mt_rand(0, $numrows);
} else {
$bannum = 0;
}
if ( $numrows > 0 ) {
$bresult = $db->query("SELECT * FROM ".$db->prefix("banner")." WHERE cid = ". $client_id ." ORDER BY rand()", 1, $bannum);
list ($bid, $cid, $imptotal, $impmade, $clicks, $imageurl, $clickurl, $date, $htmlbanner, $htmlcode) = $db->fetchRow($bresult);
if ($xoopsConfig['my_ip'] == xoops_getenv('REMOTE_ADDR')) {
// EMPTY
} else {
$db->queryF(sprintf("UPDATE %s SET impmade = impmade+1 WHERE bid = %u", $db->prefix("banner"), $bid));
}
/* Check if this impression is the last one and print the banner */
if ( $imptotal == $impmade ) {
$newid = $db->genId($db->prefix("bannerfinish")."_bid_seq");
$sql = sprintf("INSERT INTO %s (bid, cid, impressions, clicks, datestart, dateend) VALUES (%u, %u, %u, %u, %u, %u)", $db->prefix("bannerfinish"), $newid, $cid, $impmade, $clicks, $date, time());
$db->queryF($sql);
$db->queryF(sprintf("DELETE FROM %s WHERE bid = %u", $db->prefix("banner"), $bid));
}
if ($htmlbanner){
$bannerobject = $htmlcode;
}else{
$bannerobject = '<div align="center"><a href="'.XOOPS_URL.'/banners.php?op=click&bid='.$bid.'" target="_blank">';
if (stristr($imageurl, '.swf')) {
$bannerobject = $bannerobject
.'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="468" height="60">'
.'<param name="movie" value="'.$imageurl.'"></param>'
.'<param name="quality" value="high"></param>'
.'<embed src="'.$imageurl.'" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="468" height="60">'
.'</embed>'
.'</object>';
} else {
$bannerobject = $bannerobject.'<img src="'.$imageurl.'" alt="" />';
}
$bannerobject = $bannerobject.'</a></div>';
}
return $bannerobject;
}
}
ora salvate e chiudete il suddetto file.
------------ ORA POSSIAMO GESTIRE QUESTI CASI ------------
CASO 1:
Inserisci i tuoi banner dove vuoi (senza alcuna limitazione): i banner saranno visualizzati random prelevati da tutti i banner inseriti nel sistema banner di Xoops.
Crea un nuovo blocco Xoops PHP e inserisci questo codice:
echo xoops_getbanner();
CASO 2:
Inserisci i tuoi banner dove vuoi (senza alcuna limitazione): i banner saranno visualizzati tramite ID_BANNER e quindi, per esempio, sarà possibile visualizzare specifici banner in diversi specifici blocchi Xoops, mantenendo sempre attivo il conteggio click ed impressioni.
Crea un nuovo blocco Xoops PHP e inserisci questo codice:
echo getbanner_from_id_banner(ID_BANNER);
dove ID_BANNER = ID del banner da visualizzare (puoi trovare questo ID nella pagina amministrazione banner --> Banner ID on Current Active Banners)
CASO 3:
Inserisci i tuoi banner dove vuoi (senza alcuna limitazione): i banner saranno visualizzati tramite ID_CLIENT e quindi, per esempio, se un cliente possiede 10 banner all'interno del blocco creato verranno visualizzati questi 10 banner prelevati a random e mantenendo sempre attivo il conteggio click ed impressioni.
Crea un nuovo blocco Xoops PHP e inserisci questo codice:
echo getbanner_from_id_client(ID_CLIENT);
dove ID_CLIENT = ID del cliente dei banner da visualizzare (puoi trovare questo ID nella pagina amministrazione banner --> Banner ID on Advertising Clients)
E' TUTTO! Aspetto i vostri feedback
Questo articolo è stato tradotto per la community inglese e spagnola:
English Version:
http://www.stefanosilvestrini.com/ste ... tem.php?easiestml_lang=en
Spanish Version:
http://www.esxoops.com/modules/news/article.php?storyid=734

Oggi: 2
Ieri: 3
Totali: 5898
Ospiti : 11
Membri : 1
Totali: 12

























