Login
Nome utente:

Password:

Ricorda



Recupero password

Registrati!
Navigazione
Utenti Online
9 utente(i) online
(2 utente(i) in Tutorial)

Iscritti: 0
Ospiti: 9

altro...
Tutorial :: Sviluppo e Hack

Rivoluzione al sistema banner Xoops!


Rivoluzione al sistema banner Xoops!
slyss
Finalmente, dopo molto tempo, un hack firmato XoopsItalia che rivoluziona tutto il sistema di gestione banner di Xoops!
Profilo Autore: slyss
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:


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 ) {
$numrows $numrows-1;
mt_srand[1] {
// 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$datetime());
$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 ) {
$numrows $numrows-1;
mt_srand[2] {
// 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$datetime());
$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
Note
  1. double)microtime()*1000000);
    $bannum mt_rand(0$numrows);
    } else {
    $bannum 0;
    }
    if ( 
    $numrows ) {
    $bresult $db->query("SELECT * FROM ".$db->prefix("banner")." WHERE bid = "$banner_id1$bannum);
    list (
    $bid$cid$imptotal$impmade$clicks$imageurl$clickurl$date$htmlbanner$htmlcode) = $db->fetchRow($bresult);
    if (
    $xoopsConfig['my_ip'] == xoops_getenv('REMOTE_ADDR'
  2. double)microtime()*1000000);
    $bannum mt_rand(0$numrows);
    } else {
    $bannum 0;
    }
    if ( 
    $numrows ) {
    $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'
<< Chi č on-line? (Versione AJAX) by Stefano Silvestrini Installare TinyMCE al posto di XoopsEditor >>
API: RSS | RDF | ATOM
Copyright© slyss & Xoops Italia
I commenti sono di proprietà degli autori. Si declina ogni responsibilità sul loro contenuto.

Autore Contenuto
Anonymous
Data di invio: 17/7/2012 3:05  Aggiornato: 17/7/2012 3:05
 Re: Rivoluzione al sistema banner Xoops!
carry a smile to their faces. Xmas marriage ceremony centerpieces are ideal for partners who need to charge them, stunning and Do it yourself. The strategies beneath are a few on the techniques to Do it yourself and I wager you arrive up with a different excellent Xmas wreath suggestions. Permit us begin by using a several of my popular Xmas wedding ceremony centerpieces and they're effortless and enjoyable to complete short prom dresses short prom dresses , particularly when you question your loved ones as well as your bridesmaids or other good friends to help you plus size prom dresses plus size prom dresses . Help it become a celebration. wedding dresses for flower girls wedding dresses for flower girls 1st, mother of brides dresses mother of brides dresses bear in mind which the middle items to suit in along with your Xmas wedding ceremony concept and hues. prom dresses ball gowns prom dresses ball gowns plus size evening dresses plus size evening dresses A fantastic basis on your Xmas marriage ceremony centerpieces is always to use man-made snow, Visualizza immagine originale bridal evening dress bridal evening dress tinsel, glitter or Xmas confetti and sprinkle it in your table.

Autore Contenuto
huff01
Data di invio: 5/9/2012 11:16  Aggiornato: 5/9/2012 11:16
Senior
Iscritto: 5/9/2012
Da:
Inviati: 164
 replica watches for sale
masculine Fake Audemars Piguet Swiss Fake Audemars Piguet Swiss fake watches for sale fake watches for sale , by using a instance measuring forty seven mm in diameter. About the many years, this type has become refined into what we refer these days as being the new Radomir PAM 00210 Look at, a observe with substantial diminished dimension and much more progressive technical functionality. The situation from the new Radomir View actions forty five mm in diameter and techniques the exact same traditional appear, with its roundly-shaped determine and also the uncomplicated design and style functions of its dial Audemars Piguet Classique Perpetual Calendar Replica Audemars Piguet Classique Perpetual Calendar Replica . The situation is designed from polished metal or eighteen karats pink gold cartier watches replica cartier watches replica Visualizza immagine originale , every model matching its bezel, audemars piguet replica audemars piguet replica created also in the exact same products, both brushed chrome steel or pink gold. swiss emporio armani replica swiss emporio armani replica The crown is found typically about the lateral facet of your circumstance at a few oclock replica swiss emporio armani watch replica swiss emporio armani watch , the designers picking to keep up the swiss audemars piguet replica watches swiss audemars piguet replica watches

Autore Contenuto
huff01
Data di invio: 12/9/2012 2:37  Aggiornato: 12/9/2012 2:37
Senior
Iscritto: 5/9/2012
Da:
Inviati: 164
 replica patek philippe watches
note of how many people are working at the business, those with a larger headcount generally charge more to cover these costs. Since most drivers are only interested in paying for actual work begin performed on their vehicle fake rolex watches de fake tag heuer watches fake rolex watches de fake tag heuer watches , replica alange sohne watches replica alange sohne watches it may be financially more conducive to go for a smaller company. It is strongly recommended that when shopping around get as many quotes as possible, be sure these estimates are detailed so a person can do an accurate comparison replicawatches replicawatches , this will help a person review each bid to find the most superior offer. roger dubuis replica watches roger dubuis replica watches Visualizza immagine originale Price should not be the only consideration, replica chronoswiss watches replica chronoswiss watches ask the businesses for testimonials from their satisfied customers replica breguet watches replica breguet watches replica bvlgari watches replica bvlgari watches . Most companies will have no issue with providing these however if a company is not able to do this then there could be a problem with that firm and the consumer is
Sostieni XoopsItalia!
Ultimi Tutorial
Ultime Traduzioni
XOOPS ITALIA © 2002-2012 - Powered by XOOPS