ok ti credo e mi fido, userò il modulo.
ma una volta creati gli adslot nel modulo devo copiare solo i 2 codici che mi dice di copiare nel sito giusto?
cioè in admanagr una volta creati gli adslot non devo far piu nulla oltre che copiare solo i 2 blocchi di codici.
Forse non sono stato chiaro..
... sul modulo devi SOLO scrivere uno sotto l'altro il nome degli AdSlot, cioè i nomi che su AdManager hai dato alle AREE di Advertising.
Tutto il codice html o altro... non ti serve!
Se dovevi inserire il codice html... allora a che ti serviva il Modulo???!!!
beh abituato con adsense che dovevi andare a inserire codici con questo non devi fare nulla di nulla!
ottimo!
ps conosci qualche tutorial sul funzionamento di admanager perchè non capisco come integrare i blocchi che ho creato con adsense in admanager.
Google AdManager è uno strumento molto potente la cui logica è quella di creare le AdSlots dove inserire le impressioni, le quali gestire dai Placements che praticamente sono coloro che gestiscono e direzionano le creatività verso gli AdSlots. Ai placements vengono associate le creatività introdotte all'interno delle Inline che vai a creare, il quale richiede proprio che tu associa ad ogni inline i placement che ti servono. Ogni Inline ha il suo set di creatività che tu inserisci e queste fanno tutte parte di un Order.
Cmq... trovi la GUIDA TUTORIAL in inglese direttamente in alto a destra della dashboard in inglese. Se invece usi la versione italiana (non sia mai)... non ti resta altro che seguire la guida che trovi li.
Google AdManager è potente e quando venne reso disponibile per chiunque... mi raccontarono quelli di Blogo.it che si fece festa e si stapparono le bottiglie.
Vuoi mettere la GRANDEZZA di poter avere un solo sistema per la gestione dell'advertising che intrega qualsia tipo programma di affiliazione e campagna, senza obbligarti a popolareil tuo html di un casino di codice distinto per circuito di affiliazione?!.
Google ammette solo 3 Blocchi di Advertising per pagina... se hai + di 3 aree... ricordati di disabilitare Adsense in quelle di troppo... altrimenti google ti banna.
Devo decidermi a riprendere in mano questa discussione.... e finire il lavoro x cui è stata creata!!!
Signori e Signori,
ho ripreso in mano questa discussione, al fine di completare il lavoro.
fino ad oggi si era lavorato con $page == 0, adesso passiamo a lavorare nel caso di $page != 0, il che vuol dire nel caso in cui il nodo è aperto. In questo caso, l'intenzione è far apparire un regione in una posizione definita, cioè sotto al $content del nodo.
Ecco il banalissimo codice AGGIUNTO in APPEND a quello che è stato qui già postato + volte.
Questa soluzion funziona benissimo e mostra le regioni all'interno di un nodo. Però se nella stessa regione io voglio inserire + blocchi, mi trovo il problema delle righe H6 che qui mi stampano la parola PUBBLICITA'.
Come posso evitare l'obbligo di usare 2 regioni SOLO xkè non riesco ad inserire le stringhe pubblicità nei giusti blocchi, ma devo invece inserirle fuori dalla regione?
non so se hai notato alcuni siti fatti però con wordpress e joomla hanno la possibilità non so però se lo fanno tramite plug in o theming, di inserire blochi all'interno del content ad esempio a metà di un testo.
sarebbe una cosa interessante secondo me portarla su drupal
Se abiliti i token noti che questo ti fornisce gli strumenti per inserirli all'interno del Content. Il problema è che li devi inserire a mano. Quindi ci sarebbe realizzare un modo per automatizzare questa cosa. Evitando l'utilizzo delle regioni. In ogni caso, sei sempre obbligato ad inserire le stringhe >pubblicità< in altro modo.
L'utilizzo del token è di certo vantaggioso se si capisse come automatizzare la cosa creando dei parametri di impostazione.
Mentre Le regioni sono vantaggiose xkè puoi infilare dentro tutto quello che vuoi.
non ho capito cosa vuoi dire con: "filtro che trasformi un segnaposto nella chiamata a un blocco".
Ad esempio, il testo contenuto in una pagina potrebbe essere:
Quote:
Vestibulum eu justo turpis, et mattis purus. Nulla rutrum, dolor vitae interdum hendrerit, justo metus semper est, sit amet faucibus est lectus et sem. Vivamus adipiscing arcu ut erat tincidunt vel consectetur lacus mattis. Etiam egestas tellus vel massa lacinia commodo.
[qui_ads]
Sed vehicula aliquam metus id lacinia. Nunc scelerisque luctus velit vel tincidunt. Pellentesque posuere odio vel massa facilisis sed sollicitudin libero sagittis. Nunc dolor ipsum, commodo ut gravida sed, sagittis a est.
Si può creare un modulo che crea un filtro di input; dopo averlo installato, vai ad aggiungerlo al formato di input che usi (ad es. FIltered HTML o Full HTML) e il filtro si occuperà a sostituire [qui_ads] con il codice per inserire un blocco contenente gli ad.
Questa via potrebbe essere praticabile, ma vale la pena praticarla se riesci ad automatizzare l'inserimntro del filtro [qui_ads]. Se questa operazione, resta manuale e non impostabile diventa un casino e quindi è meglio agire con le regioni.
Se mi dite come devi fare a far inserire automaticamente un filtro di Google Admanager (e ci sono), all'interno del content, spiegandomi anche come fare ad inserli nel bel mezzo dei paragrafi del testo del contet.... allora se ne può parlare
8.5milioni, vuol dire che lo usano molte poche persone sul web... e sicuramente sono quasi tutte persone che operano nel settore :P
Che browser usi?
Se usi IE6 o IE7 ci troverai dei problemini.
Se usi Firefox o IE8 va tutto alla grande.
Tra l'altro considera anche che con Google AdManager si veicolano ache le comunicazioni temporanee... del tipo "è nato questo nuovo servizio", "abbiamo lanciato questo"... e così via. Se filtri tutto, filtri anche questi messaggi.
su FF 3.5.5 tutto ok (mamma mia quanta pubblicità!)
Per il resto, posso testare solo ie7 al momento e gli ads si vedono abbastanza bene, a parte che ci ha messo 20 minuti per caricare la pagina, ma questo non credo sia un problema tuo...
Su IE7 dovrebbe esserci un problema con il CSS per il dimensionamento del blocco di login in alto sinistra.
Beh!.. la pubblicità... questa è una società a fini commerciali... cioè si vende pubblicità.
Non conosco alcun grosso network che non abbia pubblicità o che non venda servizi. Crescere nella rete va anche di pari passo con i ritorni economici che essa può conferire. Se sei un publisher DEVI vendere advertising.
Se compri una rivista ...di certo quella non potrebbe esistere, e non potrebbe fornire servizi utili x cui l'hai comprata, se non ci fosse la pubblicità!
Io non uso windows e capita che ci siano delle imperfezioni non solo tra browser e browser ma anche nella combinazione browser + sistema operativo :D.
non molto tempo fa, ho passato una notte nel ridefinire e risistemare la parte css del blocco di login proprio xkè tra SO e Browser non era mai uguale, le modifiche hanno coinvolto tutte le aree dei FORM e tutti i pulsanti esistenti in tutto il sito.
Ho ottuno un grande miglioramento ed una piena risoluzione dei problemi.
E direi che non utilizzerò, praticamente + il dimensionamento di tipo "em" ... ma mi concentrerò sull'utilizzare quasi escusivamente il dimensionamento via "px" o "%".
usa font-size o padding o margin con "em"... incasina un sacco tra un browser ed un altro /SO e un altreo.
non so se hai notato alcuni siti fatti però con wordpress e joomla hanno la possibilità non so però se lo fanno tramite plug in o theming, di inserire blochi all'interno del content ad esempio a metà di un testo.
sarebbe una cosa interessante secondo me portarla su drupal
Se abiliti i token noti che questo ti fornisce gli strumenti per inserirli all'interno del Content. Il problema è che li devi inserire a mano. Quindi ci sarebbe realizzare un modo per automatizzare questa cosa. Evitando l'utilizzo delle regioni. In ogni caso, sei sempre obbligato ad inserire le stringhe >pubblicità< in altro modo.
L'utilizzo del token è di certo vantaggioso se si capisse come automatizzare la cosa creando dei parametri di impostazione.
Mentre Le regioni sono vantaggiose xkè puoi infilare dentro tutto quello che vuoi.
non capisco come fai coi token ad inserire un blocco all'interno del corpo testo?
esite un token per ogni blocco creato forse?
Non è una questione di blocchi.
Esempio: Se utilizzi il modulo FCKeditor ed il Modulo Google Admanager... nelle impostazioni di security di per un profilo di FCKeditor, questo ti consente di impostare l'utilizzo dei filtri di Google AdManage, quindi puoi inserire all'interno del testo che stai scrivendo il tag o token [google_ad:ad_slot] in cui al posto di ad_slot inserisci il nome di uno dei tanti AdSlot impostati su Google Admanager e inserite nella pagina settings del modulo.
tutto qui... i token sono molto utili!
Con il modulo Google AdManager puoi usare token, anche con quello di Adsense e sicuramente con tanti altri.
Qui sto salvando la 'pubblicità' temata in un array indicizzato, chiamato ad_blocks. In più aggiungo di già il testo sopra e sotto come Jerry ha messo nel precedente post (preferisco advertisement invece di advertising). E per buona misura, aggiungiamo la pubblicità per quando $page e vero. Oh, anche i global vanno inizializzati (non essenziale, solo più 'corretto')...
Bene, adesso arriviamo al template di node. Il link di Mavimo (http://api.drupal.org/api/drupal/modules--node--node.tpl.php/6), da l'elenco di tutti i variabile 'standard' per questo template. Vi faccio notare una cosa, oltre a $page c'è anche $teaser, ma dice solo che sono flags (cioè booleano, VERO o FALSO), e (credo) riciprocamente esclusivo (mutually exclusive), cioè se $page è vero, $teaser sarà falso, e viceversa.
Allora, arriviamo al node.tpl.php:
<?php // visualizzando il teaser (edit preview o view) if ($teaser) { global $teaser_count, $ad_index; $teaser_count++; // dopo ogni due teaser, ma non dopo il quarto, nè dopo il decimo (cioè l'ultimo) if (($teaser_count % 2) == 0 && $teaser_count != 4 && $teaser_count != 10) { print '<div>'; print $ad_blocks[$ad_index++]; print '</div>'; } } // visualizzando tutto (solo page) if ($page && arg(2) != 'edit') { // durante l'editing l'URL è node/xxx/edit print $ad_page_block; // print $block_post2; // da dove salta fuori questo variabile? } ?>
Da notare che ho 'smussato gli angoli' togliendo i test di NULL per gli elementi di pubblicità, per il semplice motivo che presumo che il codice nel NOMETEMA_preprocess_node fa il suo lavoro, ma anche perchè non fa danni, scriverebbe <div></div> e basta...
Nel preview (antiprima) quando editando il nodo, apparirà $ad_page_block, e non ho idea qual'è il variable che dice che siamo in 'edit mode'...[Modified]Scoperto: http://www.drupalitalia.org/node/8925, quindi aggiunto...[/Modified]
Non ho capito però da dove salta fuori $block_post2, comunque basta togliere il // iniziale nel commento...
uhmmm!... Figoo!... mi hai aperto gli occhi su alcune cose che non sapevo. dettagli molto interessanti.
In ogni caso, ho provato il codice e risulta che la parte in cui opera con i "teaser" non funziona, mentre l'altra parte che opera con $page invece funziona.
block_post2 è una regione aggiunta x via della necessità di inserire all'interno del nodo aperto altri blocchi oltre l'advertising. Questo perchè devo inserire la scritta ADVERTISEMENT sopra e sotto block_pos4.
Chiaramente il codice su template.php non è proprio corretto per gestire l'area block_post2.
Che ne dici di portare questa discussione in avanti fino al completamento del lavoro, sistemando il codice a dovere?
saluti
jerry
ps: ma non potevi bussare alla mia porta 3 mesi fa?! ehehehe :-D ... mi sono sbattuto un casino per risolvere questo problema dell'Advertising. All'epoca non avevo alcuna idea di come risolverso, ho dovuto studiare un sacco e fare tanti tentativi per capire come renderlo funzionante, ci ho messo un sacco, avevo bisogno di studiare in merito.
Beh, sarebbe più figo se funzionasse...piccolo (ma forse importante) dettaglio.
jscm wrote:
uhmmm!... Figoo!... mi hai aperto gli occhi su alcune cose che non sapevo. dettagli molto interessanti.
Come al solito, cercavo di essere troppo intelligente...
function NOMETEMA_preprocess_node(&$vars) { global $teaser_count, $ad_index; if (!isset($teaser_count)) { // azzera *solo* se non definito. Chi è che ha scritto 'sta roba? Oops, ero io... $teaser_count = 0; } if (!isset($ad_index)) { // azzera *solo* se non definito. Errare humanum est, perseverare autem diabolicum. $ad_index = 0; } $ad_delimiter = '<h6 style="text-align: center">'. t('ADVERTISEMENT') .'</h6>'; // richiesta solo quando visuallizzando i teaser if ($vars['teaser']) { foreach (array('block_pos2', 'block_pos3', 'block_pos4') as $region) { $ad_blocks[] = $ad_delimiter . theme('blocks', $region) . $ad_delimiter; } $vars['ad_blocks'] = $ad_blocks; } // richiesta solo quando visuallizzando la pagina intera if ($vars['page']) { $vars['ad_page_block'] = $ad_delimiter . '<p>Page ad</p>' . $ad_delimiter; } return $vars; }
Stava azzerando i globals ad ogni iterazione. Quindi aggiunto i isset. In più ho aggiunto due test, cosi fa un pò meno lavoro quando non richiesta. Ancora non mi piace, ma il tempo stringe. Pazienza.
jscm wrote:
ps: ma non potevi bussare alla mia porta 3 mesi fa?! ehehehe :-D ... mi sono sbattuto un casino per risolvere questo problema dell'Advertising. All'epoca non avevo alcuna idea di come risolverso, ho dovuto studiare un sacco e fare tanti tentativi per capire come renderlo funzionante, ci ho messo un sacco, avevo bisogno di studiare in merito.
Non c'ero. E se c'ero - dormivo. Comunque hai risposto alla tua stessa domanda. Consideralo un esercizio di 'studio'.
Rimane un ulteriore problema: Quando la lista è inferiore a 10, più specificamente 2 o 6, ci sarà un advertisement dopo l'ultimo teaser nella lista. Se conosco la lunghezza della lista, allora posso testare per questi 'edge case'. Ma non ho trovato quello che ceravo, forse troppo nebbia su internet oggi. Non c'è niente in $vars, e non saprei dov'altro cercare. Se qualcuno lo sa, possiamo concludere in bellezza...
il secondo funziona ma mi da qualche errore php ogni tanto devo vederee meglio cosa è che non va. il primo confermo che va.
riprendo questo post per capire assieme a voi una cosa che sto cercando di fare molto simile a questo ma un po piu granulare, nel caso apro un'altro post:
mi servirebbe inserire dei blocchi nel content di un nodo ogni tot righe di testo.
ad esempio solo nel full node e nel content, quindi nel corpo del nodo posso creare delle regioni ogni tot righe, ad esempio ogni 20 righe di testo mi visualizza un blocco.
Ti dico una cosa che va un pò "fuori tema"... ma che si riferisce ad un caso specifico.
Se devi inserire pubblicità da Adsense o da chi vuoi (tramite Google Admanager)... quel tuo problema viene risolto tramite Token. Di fatti il modulo Google Admanager o Adsense ti fa gestire la cosa inserendo un codice (token) all'interno del content.
asdomar...se vuoi testare tu la soluzione 2 e migliorarla assieme a jhl.veron sarebbe una gran cosa, visto che io al momento non riesco xkè sono concentrato su altro al momento.
beh! non vuol dire granchè... xkè l'unica cosa che in generale è importante in quell'if è $page == 0.
Il resto è un dettaglio specifico per chi ha installato il modulo livecoverage.
vorrei implementare questo sistema anche io ma non riesco a modificare il codice perchè il mio blog ha 8 post per ogni pagina e non 10, potete aiutarmi?
ciao ragazzi sto cercando di implementare questo codice anche in una pagina views di tipo page fatta con i fields, ma non ci sto riuscendo.
secondo voi è possibile?
Ciao Melissa,
questo codice l'ho fatto io all'epoca.
E' completamente indipendente da views o field vari, perchè è gestito direttamente all'interno del file node.tpl.php e non dipende nemmeno dall'id del nodo perchè conta automaticamente i nodi mostrati nella pagina.
io lo utilizzo con la vista standard di views x la frontpage.
Di norma non dovresti avere alcun problema, dopo aver svuotato la cache ovviamente e creato le apposite regions nel file .info.
Tuttavia, non mi è ben chiaro cosa stai facendo: "pagina views di tipo page fatta con i fields".
In effetti la question di melissa interessa molto anche a me..Premesso che ancora nn ho provato,cio' che intende melissa è che ci sono 2 tipi di views,una di tipo Campi e l'altra di tipo Nodo,Utilizzando quella di tipo nodo il codice dovrebbe funzionare perchè cmq la views stessa usa il node.tpl,la situazione si complica creando una views di tipo campi...Domani se ho 1 oretta libera provo a vedere se si implementa....
Premesso che ieri nn ho avuto tempo per provare,e anche oggi nn avro' tempo,leggendo il tuo post Melissa mi sono fatto al volo un paio di domande.. Se invece di contare il field titolo si inserisse il codice preprocess in un field global nell'header della views,oppure direttamente nel template.php ,e il il print in un global field,oppure direttamente nel tpl views?... uhm...Ripeto,è un'idea da testare e vedere se potrebbe fungere..
Forse non sono stato chiaro..
... sul modulo devi SOLO scrivere uno sotto l'altro il nome degli AdSlot, cioè i nomi che su AdManager hai dato alle AREE di Advertising.
Tutto il codice html o altro... non ti serve!
Se dovevi inserire il codice html... allora a che ti serviva il Modulo???!!!
http://www.sanisapori.eu
Google AdManager è uno strumento molto potente la cui logica è quella di creare le AdSlots dove inserire le impressioni, le quali gestire dai Placements che praticamente sono coloro che gestiscono e direzionano le creatività verso gli AdSlots. Ai placements vengono associate le creatività introdotte all'interno delle Inline che vai a creare, il quale richiede proprio che tu associa ad ogni inline i placement che ti servono. Ogni Inline ha il suo set di creatività che tu inserisci e queste fanno tutte parte di un Order.
Cmq... trovi la GUIDA TUTORIAL in inglese direttamente in alto a destra della dashboard in inglese. Se invece usi la versione italiana (non sia mai)... non ti resta altro che seguire la guida che trovi li.
Google AdManager è potente e quando venne reso disponibile per chiunque... mi raccontarono quelli di Blogo.it che si fece festa e si stapparono le bottiglie.
Vuoi mettere la GRANDEZZA di poter avere un solo sistema per la gestione dell'advertising che intrega qualsia tipo programma di affiliazione e campagna, senza obbligarti a popolareil tuo html di un casino di codice distinto per circuito di affiliazione?!.
Google ammette solo 3 Blocchi di Advertising per pagina... se hai + di 3 aree... ricordati di disabilitare Adsense in quelle di troppo... altrimenti google ti banna.
Devo decidermi a riprendere in mano questa discussione.... e finire il lavoro x cui è stata creata!!!
saluti
jerry
http://www.sanisapori.eu
Signori e Signori,
ho ripreso in mano questa discussione, al fine di completare il lavoro.
fino ad oggi si era lavorato con
$page == 0
, adesso passiamo a lavorare nel caso di$page != 0
, il che vuol dire nel caso in cui il nodo è aperto. In questo caso, l'intenzione è far apparire un regione in una posizione definita, cioè sotto al$content
del nodo.Ecco il banalissimo codice AGGIUNTO in APPEND a quello che è stato qui già postato + volte.
<?php if ($page != 0):
if ( $block_post1 != NULL ) {
print '<h6 style="text-align: center">PUBBLICITÀ</h6>';
print $block_post1;
print '<h6 style="text-align: center">PUBBLICITÀ</h6>';
}
if ( $block_post2 != NULL ) {
print $block_post2;
}
endif; ?>
Questa soluzion funziona benissimo e mostra le regioni all'interno di un nodo. Però se nella stessa regione io voglio inserire + blocchi, mi trovo il problema delle righe H6 che qui mi stampano la parola PUBBLICITA'.
Come posso evitare l'obbligo di usare 2 regioni SOLO xkè non riesco ad inserire le stringhe pubblicità nei giusti blocchi, ma devo invece inserirle fuori dalla regione?
http://www.sanisapori.eu
Se abiliti i token noti che questo ti fornisce gli strumenti per inserirli all'interno del Content. Il problema è che li devi inserire a mano. Quindi ci sarebbe realizzare un modo per automatizzare questa cosa. Evitando l'utilizzo delle regioni. In ogni caso, sei sempre obbligato ad inserire le stringhe >pubblicità< in altro modo.
L'utilizzo del token è di certo vantaggioso se si capisse come automatizzare la cosa creando dei parametri di impostazione.
Mentre Le regioni sono vantaggiose xkè puoi infilare dentro tutto quello che vuoi.
http://www.sanisapori.eu
Questa via potrebbe essere praticabile, ma vale la pena praticarla se riesci ad automatizzare l'inserimntro del filtro [qui_ads]. Se questa operazione, resta manuale e non impostabile diventa un casino e quindi è meglio agire con le regioni.
Se mi dite come devi fare a far inserire automaticamente un filtro di Google Admanager (e ci sono), all'interno del content, spiegandomi anche come fare ad inserli nel bel mezzo dei paragrafi del testo del contet.... allora se ne può parlare
http://www.sanisapori.eu
Signore e signori,
FTFY
[grammar nazi, lo so. Ma un incipit così dequalifica tutto il post!]
;)
Certified to Rock
eehhh!... Bohz! Quante storie :-D ...
giusto adesso che la discussione può essere condiderata relativamente chiusa!!... :-D
guarda i risultati su
http://sanisapori.ejarvis.eu
http://snowblade.ejarvis.eu
sia in frontpage che all'interno dei post (qui l'ultima modifica).
http://www.sanisapori.eu
Complimenti!
...ma non vedo gli ads...
oops! adblock.
;)
[salvato nei preferiti]
Certified to Rock
COME non li VEDI!!!!... io li vedo ovunque.. :-| Sono 9 in frontpage e 7 nei nodi.
Sono gestiti da Google AdManager, quindi se non li vedi è sicuramente xkè sei dietro a qualcosa che filtra javascript o iframe ... o bOH!
http://www.sanisapori.eu
adblock, appunto.
Ma non ti preoccupare, siamo solo in 8,5 milioni ad usarlo.
Disattivando adblock gli ads si vedono eccome!
Certified to Rock
8.5milioni, vuol dire che lo usano molte poche persone sul web... e sicuramente sono quasi tutte persone che operano nel settore :P
Che browser usi?
Se usi IE6 o IE7 ci troverai dei problemini.
Se usi Firefox o IE8 va tutto alla grande.
Tra l'altro considera anche che con Google AdManager si veicolano ache le comunicazioni temporanee... del tipo "è nato questo nuovo servizio", "abbiamo lanciato questo"... e così via. Se filtri tutto, filtri anche questi messaggi.
http://www.sanisapori.eu
su FF 3.5.5 tutto ok (mamma mia quanta pubblicità!)
Per il resto, posso testare solo ie7 al momento e gli ads si vedono abbastanza bene, a parte che ci ha messo 20 minuti per caricare la pagina, ma questo non credo sia un problema tuo...
Certified to Rock
Su IE7 dovrebbe esserci un problema con il CSS per il dimensionamento del blocco di login in alto sinistra.
Beh!.. la pubblicità... questa è una società a fini commerciali... cioè si vende pubblicità.
Non conosco alcun grosso network che non abbia pubblicità o che non venda servizi. Crescere nella rete va anche di pari passo con i ritorni economici che essa può conferire. Se sei un publisher DEVI vendere advertising.
Se compri una rivista ...di certo quella non potrebbe esistere, e non potrebbe fornire servizi utili x cui l'hai comprata, se non ci fosse la pubblicità!
http://www.sanisapori.eu
Io non uso windows e capita che ci siano delle imperfezioni non solo tra browser e browser ma anche nella combinazione browser + sistema operativo :D.
non molto tempo fa, ho passato una notte nel ridefinire e risistemare la parte css del blocco di login proprio xkè tra SO e Browser non era mai uguale, le modifiche hanno coinvolto tutte le aree dei FORM e tutti i pulsanti esistenti in tutto il sito.
Ho ottuno un grande miglioramento ed una piena risoluzione dei problemi.
E direi che non utilizzerò, praticamente + il dimensionamento di tipo "em" ... ma mi concentrerò sull'utilizzare quasi escusivamente il dimensionamento via "px" o "%".
usa font-size o padding o margin con "em"... incasina un sacco tra un browser ed un altro /SO e un altreo.
http://www.sanisapori.eu
Non è una questione di blocchi.
Esempio: Se utilizzi il modulo FCKeditor ed il Modulo Google Admanager... nelle impostazioni di security di per un profilo di FCKeditor, questo ti consente di impostare l'utilizzo dei filtri di Google AdManage, quindi puoi inserire all'interno del testo che stai scrivendo il tag o token [google_ad:ad_slot] in cui al posto di ad_slot inserisci il nome di uno dei tanti AdSlot impostati su Google Admanager e inserite nella pagina settings del modulo.
tutto qui... i token sono molto utili!
Con il modulo Google AdManager puoi usare token, anche con quello di Adsense e sicuramente con tanti altri.
http://www.sanisapori.eu
Lieve aggiornamento al codice in node.tpl.php, a favore della traduzione delle stringhe in più lingue.
<?php
$Ad = t('ADVERTISING');
$AdString = '<h6 style="text-align: center">' . $Ad . '</h6>';
?>
<?php if ($page == 0): ?>
<?php
global $num;
$num++;
if (($num % 2 == 0 && $num != 4 && $num % 6 != 0 && $num % 8 != 0 && $num % 10 != 0) || ($num % 6 == 0) || ($num % 8 == 0)):
?>
<div>
<?php
if ($num % 2 == 0 && $num != 4 && $num % 6 != 0 && $num % 8 != 0 && $num % 10 != 0 && $block_pos2 != NULL) {
print $AdString . $block_pos2 . $AdString;
}
if ($num % 6 == 0 && $block_pos3 != NULL) {
print $AdString . $block_pos3 . $AdString;
}
if ($num % 8 == 0 && $block_pos4 != NULL) {
print $AdString . $block_pos4 . $AdString;
}
?>
</div>
<?php endif; ?>
<?php endif; ?>
<?php if ($page != 0):
print $AdString . $block_pos4 . $AdString;
print $block_post2;
?>
Saluti
jerry
http://www.sanisapori.eu
Ok, devo intervenire, anche perchè Jerry è cosi vicino, ma cosi lontano...e non è colpa sua.
Mi pare che tutto ha iniziato bene: http://www.drupalitalia.org/node/7225#comment-21273 http://www.drupalitalia.org/node/7225#comment-21282 http://www.drupalitalia.org/node/7225#comment-21297
Il link dato (http://drupal.org/node/361209) parla di block, non blocks, quindi Jerry ha creato il codice giusto http://www.drupalitalia.org/node/7225#comment-21360
Poi le specifiche sono cambiati un pò, non più teasers interspersi con pubblicità, ma pubblicità dentro un nodo...per la quale anch'io sono in accordo con Pinolo http://www.drupalitalia.org/node/7225#comment-21802, ma poi siamo tornati 'sulla retta via' http://www.drupalitalia.org/node/7225#comment-22042
Dopo, durante lo sviluppo ci sono saltati fuori dei problemi http://www.drupalitalia.org/node/7225#comment-23302
Proprio come succede nella vita 'vera'!
E infine, è nato una prima bozza http://www.drupalitalia.org/node/7225#comment-26862 (ha anche chiesto aiuto, ma non l'ho ascoltato, scusa)
Purtroppo non ho tempo per il modulo richiesta http://www.drupalitalia.org/node/7225#comment-26900
Ma nel frattempo Jerry ha portato i primi risultati alla luce, yay. http://www.drupalitalia.org/node/7225#comment-27663
Comunque, mi sembra che non sta usando il pattern 4-ad-4-ad-4, nè 2-ad-2-ad-2-ad-2-ad-2, ma 2-ad-4-ad-2-ad-2, solo un pelino più complesso...
Vediamo se possiamo creare qualcosa un pò più semplice (avviso, non ho testato questo codice)...
In
template.php
:function NOMETEMA_preprocess_node (&$vars) {
global $teaser_count, $ad_index;
$teaser_count = 0;
$ad_index = 0;
$ad_delimiter = '<h6 style="text-align: center">'. t('ADVERTISEMENT') .'</h6>';
foreach (array('block_pos2', 'block_pos3', 'block_pos4') as $region) {
$ad_blocks[] = $ad_delimiter . theme('blocks', $region) . $ad_delimiter;
}
$vars['ad_blocks'] = $ad_blocks;
$vars['ad_page_block'] = $ad_delimiter . theme('blocks', 'block_pos4') . $ad_delimiter;
return $vars;
}
Qui sto salvando la 'pubblicità' temata in un array indicizzato, chiamato
ad_blocks
. In più aggiungo di già il testo sopra e sotto come Jerry ha messo nel precedente post (preferisco advertisement invece di advertising). E per buona misura, aggiungiamo la pubblicità per quando$page
e vero. Oh, anche i global vanno inizializzati (non essenziale, solo più 'corretto')...Bene, adesso arriviamo al template di node. Il link di Mavimo (http://api.drupal.org/api/drupal/modules--node--node.tpl.php/6), da l'elenco di tutti i variabile 'standard' per questo template. Vi faccio notare una cosa, oltre a
$page
c'è anche$teaser
, ma dice solo che sono flags (cioè booleano, VERO o FALSO), e (credo) riciprocamente esclusivo (mutually exclusive), cioè se$page
è vero,$teaser
sarà falso, e viceversa.Allora, arriviamo al
node.tpl.php
:<?php
// visualizzando il teaser (edit preview o view)
if ($teaser) {
global $teaser_count, $ad_index;
$teaser_count++;
// dopo ogni due teaser, ma non dopo il quarto, nè dopo il decimo (cioè l'ultimo)
if (($teaser_count % 2) == 0 && $teaser_count != 4 && $teaser_count != 10) {
print '<div>';
print $ad_blocks[$ad_index++];
print '</div>';
}
}
// visualizzando tutto (solo page)
if ($page && arg(2) != 'edit') { // durante l'editing l'URL è node/xxx/edit
print $ad_page_block;
// print $block_post2; // da dove salta fuori questo variabile?
}
?>
Da notare che ho 'smussato gli angoli' togliendo i test di NULL per gli elementi di pubblicità, per il semplice motivo che presumo che il codice nel
NOMETEMA_preprocess_node
fa il suo lavoro, ma anche perchè non fa danni, scriverebbe<div></div>
e basta...Nel preview (antiprima) quando editando il nodo, apparirà
$ad_page_block
, e non ho idea qual'è il variable che dice che siamo in 'edit mode'...[Modified]Scoperto: http://www.drupalitalia.org/node/8925, quindi aggiunto...[/Modified]Non ho capito però da dove salta fuori
$block_post2
, comunque basta togliere il//
iniziale nel commento...HTW (hope that works)
John
Più imparo, più dubito.
uhmmm!... Figoo!... mi hai aperto gli occhi su alcune cose che non sapevo. dettagli molto interessanti.
In ogni caso, ho provato il codice e risulta che la parte in cui opera con i "teaser" non funziona, mentre l'altra parte che opera con $page invece funziona.
block_post2 è una regione aggiunta x via della necessità di inserire all'interno del nodo aperto altri blocchi oltre l'advertising. Questo perchè devo inserire la scritta ADVERTISEMENT sopra e sotto block_pos4.
Chiaramente il codice su template.php non è proprio corretto per gestire l'area block_post2.
Che ne dici di portare questa discussione in avanti fino al completamento del lavoro, sistemando il codice a dovere?
saluti
jerry
ps: ma non potevi bussare alla mia porta 3 mesi fa?! ehehehe :-D ... mi sono sbattuto un casino per risolvere questo problema dell'Advertising. All'epoca non avevo alcuna idea di come risolverso, ho dovuto studiare un sacco e fare tanti tentativi per capire come renderlo funzionante, ci ho messo un sacco, avevo bisogno di studiare in merito.
http://www.sanisapori.eu
Beh, sarebbe più figo se funzionasse...piccolo (ma forse importante) dettaglio.
Come al solito, cercavo di essere troppo intelligente...
function NOMETEMA_preprocess_node(&$vars) {
global $teaser_count, $ad_index;
if (!isset($teaser_count)) { // azzera *solo* se non definito. Chi è che ha scritto 'sta roba? Oops, ero io...
$teaser_count = 0;
}
if (!isset($ad_index)) { // azzera *solo* se non definito. Errare humanum est, perseverare autem diabolicum.
$ad_index = 0;
}
$ad_delimiter = '<h6 style="text-align: center">'. t('ADVERTISEMENT') .'</h6>';
// richiesta solo quando visuallizzando i teaser
if ($vars['teaser']) {
foreach (array('block_pos2', 'block_pos3', 'block_pos4') as $region) {
$ad_blocks[] = $ad_delimiter . theme('blocks', $region) . $ad_delimiter;
}
$vars['ad_blocks'] = $ad_blocks;
}
// richiesta solo quando visuallizzando la pagina intera
if ($vars['page']) {
$vars['ad_page_block'] = $ad_delimiter . '<p>Page ad</p>' . $ad_delimiter;
}
return $vars;
}
Stava azzerando i globals ad ogni iterazione. Quindi aggiunto i
isset
. In più ho aggiunto due test, cosi fa un pò meno lavoro quando non richiesta. Ancora non mi piace, ma il tempo stringe. Pazienza.Non c'ero. E se c'ero - dormivo. Comunque hai risposto alla tua stessa domanda. Consideralo un esercizio di 'studio'.
Rimane un ulteriore problema: Quando la lista è inferiore a 10, più specificamente 2 o 6, ci sarà un advertisement dopo l'ultimo teaser nella lista. Se conosco la lunghezza della lista, allora posso testare per questi 'edge case'. Ma non ho trovato quello che ceravo, forse troppo nebbia su internet oggi. Non c'è niente in
$vars
, e non saprei dov'altro cercare. Se qualcuno lo sa, possiamo concludere in bellezza...John
Più imparo, più dubito.
Non sono un appassionato di cucina
Penso semmai al business!!
http://www.sanisapori.eu
ciao non ho ben capito "scusatemi" quale dei 2 sistemi è migliore, se il primo o il secondo, potete spiegarmelo?
Il primo funziona e lo uso...
il secondo ho iniziato a testarlo... ma riprenderò i test quanto prima. Al momento sto lavorando su altro!
Ti direi utilizza il primo, poi quando il secondo sarà "up & running", passa al secondo :-).
http://www.sanisapori.eu
il secondo funziona ma mi da qualche errore php ogni tanto devo vederee meglio cosa è che non va. il primo confermo che va.
riprendo questo post per capire assieme a voi una cosa che sto cercando di fare molto simile a questo ma un po piu granulare, nel caso apro un'altro post:
mi servirebbe inserire dei blocchi nel content di un nodo ogni tot righe di testo.
ad esempio solo nel full node e nel content, quindi nel corpo del nodo posso creare delle regioni ogni tot righe, ad esempio ogni 20 righe di testo mi visualizza un blocco.
Ti dico una cosa che va un pò "fuori tema"... ma che si riferisce ad un caso specifico.
Se devi inserire pubblicità da Adsense o da chi vuoi (tramite Google Admanager)... quel tuo problema viene risolto tramite Token. Di fatti il modulo Google Admanager o Adsense ti fa gestire la cosa inserendo un codice (token) all'interno del content.
http://www.sanisapori.eu
non uso il modulo e comunque non si tratta di pubblicità ma di un blocco creato da me.
asdomar...se vuoi testare tu la soluzione 2 e migliorarla assieme a jhl.veron sarebbe una gran cosa, visto che io al momento non riesco xkè sono concentrato su altro al momento.
http://www.sanisapori.eu
Buongiorno,
aggiungo una nuova semplificazione del codice in node.tpl.php
<?php
$Ad = t('ADVERTISING');
$AdString = '<h6 style="text-align: center; font-size: 80%; margin: 0 0 10px 0;">' . $Ad . '</h6>';
$AdNode_up = '<div class="adv">' . $AdString;
$AdNode_down = $AdString . '</div>';
if ($page == 0) {
global $num;
$num++;
if ( $block_pos2 != NULL && $block_pos3 != NULL ) {
if ( $num == 3 ) { print $AdNode_up . $block_pos2 . $AdNode_down; }
if ( $num == 6 ) { print $AdNode_up . $block_pos3 . $AdNode_down; }
}
elseif ( $block_pos2 != NULL ) {
if ( $num == 5 ) { print $AdNode_up . $block_pos2 . $AdNode_down; }
}
}
?>
<?php if ($page != 0):
if ( $block_post1 != NULL ) {
print $AdNode_up . $block_post1 . $AdNode_down;
}
elseif ( $block_pos4 != NULL ) {
print $AdNode_up . $block_pos4 . $AdNode_down;
}
if ( $block_post2 != NULL ) {
print $block_post2;
}
if ($taxonomy) {
$metalinks = '<div class="tags clear-block block">';
$metalinks .= '<div class="meta">';
$metalinks .= '<h4>' . t('Similar topics') . '</h4>';
$metalinks .= '<div class="terms">' . $terms . '</div>';
$metalinks .= '</div>';
$metalinks .= '</div>';
print $metalinks;
}
endif; ?>
Come si dice:- "Semplificare, Chiarificare, Economizzare".
http://www.sanisapori.eu
potresti dirmi cosa significa questa stringa:
beh! non vuol dire granchè... xkè l'unica cosa che in generale è importante in quell'if è $page == 0.
Il resto è un dettaglio specifico per chi ha installato il modulo livecoverage.
http://www.sanisapori.eu
e cosa fa quel modulo livecouverage?
liveblogging
http://www.sanisapori.eu
vorrei implementare questo sistema anche io ma non riesco a modificare il codice perchè il mio blog ha 8 post per ogni pagina e non 10, potete aiutarmi?
Non vedo il problema...
... è il contenuto della variabile $num che agisce in questo caso.
è contatore dei content incrementato per ogni nodo.
se hai 8 content il massimo è 8.
se vuoi sia in posizione 3 basta che fai apparere la region quando $num = 3, se vuoi che sia dopo il sesto allora $num = 6... e così via!
Basta che guardi il codice e capisci subito.
http://www.sanisapori.eu
ciao ragazzi sto cercando di implementare questo codice anche in una pagina views di tipo page fatta con i fields, ma non ci sto riuscendo.
secondo voi è possibile?
Ciao Melissa,
questo codice l'ho fatto io all'epoca.
E' completamente indipendente da views o field vari, perchè è gestito direttamente all'interno del file node.tpl.php e non dipende nemmeno dall'id del nodo perchè conta automaticamente i nodi mostrati nella pagina.
io lo utilizzo con la vista standard di views x la frontpage.
Di norma non dovresti avere alcun problema, dopo aver svuotato la cache ovviamente e creato le apposite regions nel file .info.
Tuttavia, non mi è ben chiaro cosa stai facendo: "pagina views di tipo page fatta con i fields".
http://www.sanisapori.eu
si jscm, una views di tipo pagina ma fatta con i fields.
In effetti la question di melissa interessa molto anche a me..Premesso che ancora nn ho provato,cio' che intende melissa è che ci sono 2 tipi di views,una di tipo Campi e l'altra di tipo Nodo,Utilizzando quella di tipo nodo il codice dovrebbe funzionare perchè cmq la views stessa usa il node.tpl,la situazione si complica creando una views di tipo campi...Domani se ho 1 oretta libera provo a vedere se si implementa....
io sto smanettando ma non si riesce. non riesco a capire come effettuare il count dei fields per poi printare la regione.
provato con:
inserito in semanticviews-view-unformatted--nomevista.tpl.php
il risultato non è stato quello sperato però
se qualcuno mi aiuta a capire il motivo!
chi mi aiuta a correggere questo script?
Premesso che ieri nn ho avuto tempo per provare,e anche oggi nn avro' tempo,leggendo il tuo post Melissa mi sono fatto al volo un paio di domande.. Se invece di contare il field titolo si inserisse il codice preprocess in un field global nell'header della views,oppure direttamente nel template.php ,e il il print in un global field,oppure direttamente nel tpl views?... uhm...Ripeto,è un'idea da testare e vedere se potrebbe fungere..
il problema è che in php non sono una cima. mi servirebbe qualcuno più esperto di me
e su drupal.org nessuno che ha questo provblema qui!
Pagine