09 jul 2007
WordPress Widget Rotator
WordPress Widget Randomizer, Openadvert at display none, Advertisement obfuscator, Random ads, Show hidden style.css, Hide ad when code not active…
Zijn voorgaande zoektermen (in google) Chinees voor u beste lezer? Laat ik u uitleggen wat ik zoek – en tot hiertoe niet gevonden heb. Zoals u kan zien bestaat deze site uit drie kolommen: een hoofdkolom waarin u nu deze tekst leest en twee kleinere rechts. In de twee kleine kolommen kan ik tekst plaatsen (en prentjes, en reclame) maar dit gaat in WordPress niet via een teksteditor maar via “widgets”.
Wat is nu mijn probleem: in mijn bovenste uiterst rechtse widget staat in het titelveld: “Kijkzie! Reclame!” en in het tekstveld de code die ik van de reclameboys gekregen heb. Een code die er automagisch voor zorgt dat er publiciteit in die widget tevoorschijn komt. Als ze beslissen om niets door te sturen (omdat de campagne erop zit of ze een tijdje niet willen laten doorgaan) dan zie je niets, behalve de titel dan: “Kijkzie! Reclame!” terwijl er geen “boodschap-van-algemeen-nut-en-vooral-van-mijn-portemonnee” te zien is. Wreed lullig vind ik dat.
Dus sleur ik daar een andere widget onder waar ik (deze keer) Henk Rijckaert de hemel in prijs (gewoon, veur niet, voor zijn schoon ogen en omdat zijn madam een toffe mee is).
Allemaal goed en wel tot ze bij Adhese/Enchanté beslissen om de code terug te activeren: dan zijn zo’n twee publiciteitspanelen iets van het goede teveel naar mijn goesting. Hoe zou ik dat kunnen oplossen?
Een mailtje naar Stefan van Doggybites (mijn reclameboer) bracht raad maar niet echt. Stefan schreef me:
“Graag verwijs ik je bijvoorbeeld naar n00.be die dat proper opgelost heeft. (Iniatieven als dat van n00.be kan ik vanzelfsprekend enkel toejuichen!).
Los daarvan ken ik het probleem ook van die titel (Kijkzie! Reclame! – in jouw geval) en denk ik dat we daar eens iets voor moeten vinden. Impressiekanon Zelan heeft dat mits een javascriptje opgelost (Op zelan.be zie je reclame in de linkerkolom, en als ze niet getoond wordt verdwijnt de titel “Advert” en vervangen door iets anders).”
Inderdaad, zowel bij n00.be als bij zelan.be een zéér elegante oplossing. Ik ben dan ook meteen in hun broncode gaan spieken om te zien hoe ze dat voor elkaar gekregen hebben.
n00.be gebruikt een achtergrond die zichtbaar is als er geen reclame actief is en “overgeplakt” als de reclamecode wél actief is.
Zelan.be maakt gewoon twee templates: één voor reclame en een ander (nu zie je een “minitagcloud”), pleurt die gewoon in twee div’s (zie: positioning.css) hangt daar een class=”separator”-javascript aan vast (niet gevonden, grrr…) en klaar is kees. Voorwaar, zeer knap gedaan. Maarrr…
Ik kan de twee methodes niet gebruiken in en met mijn widgets.
Of wel? Graag uw tips and tricks!
Al 7 reacties. U kwaakte erop los bij: “WordPress Widget Rotator”

Aha, al aan het spieken geweest in mijn code
Persoonlijk vind ik het maar een “dirty” oplossing die ik toepas, maar wil ze wel even uitleggen:
Ik plaats alle advertentie code in een div met id ‘openadvert’ die standaard op “display:none” staat. Daarin een div met id ‘adhese’ waar de advertentie code inkomt. Zodus:
div id="openadvert" style="display:none;"div id="advert"
h6 /h6
div id="adhese"
script type="text/javascript"> slotId = 156; /script
script type="text/javascript"
src="http://net3.adhese.net/tag/tag.js" /script
/div
/div
div class="separator" /div
div
Helemaal onderaan de body als allerlaatste check op de inhoud van deze div via javascript. Indien deze inhoud langer dan 258 karakters is, is er output geweest en moet de hele advertentieblok getoond worden.
if (document.getElementById("adhese") &&document.getElementById("adhese").innerHTML.length > 258)
document.getElementById("openadvert").style.display="";
En anders blijft hij dus hidden
Hopelijk heb je hier iets aan. Voor verdere uitleg mag je mij altijd contacteren
De methode die ik gebruik (met de background image) zou hier ook moeten werken denk ik. De code voor de achtergrond is niets meer dan een div (of 2) waar die achtergrond figuur in getoond wordt. Die kun je volgens mij makkelijk in zo’n widget steken (is maar html en css)
Als er geen reclame is zie je een ‘lege’ div (met een background image in) en als er reclame is dan zal de javascript ervoor zorgen dat er in die div iets geplaatst wordt.
Moet te doen zijn.
Juig, zo’n snelle reactie zeg!
Ehm, ik begrijp de “hack” – ik weet echter nog niet goed waar ik alles moet plaatsen. Ik neem aan dat ik bovenstaande .js bij de andere zet en vanuit mijn widget naar verwijs. Heb het echter nog niet uitgetest en weet niet of het gaat werken. Het lullige is ook dat de humo reclame voor het moment niet actief is. Ik kan het natuurlijk ook testen met een dummy tekst maareh, pfft.. niet veel tijd.
@Crahan: “Een div (of 2) waar die achtergrond figuur in getoond wordt.”
Ik dacht al zoiets. Aha! Dus daar dient deze voor bij jou?
Dus zou ik eigenlijk ook de reclame met Henk kunnen gebruiken als achtergrondfiguur in mijn geval? Ha! Zo meteen eens uitproberen.
Niet zo direct, die image gebruikte ik als test case. Ik gebruik deze:
http://n00.be/wp-content/themes/notso_fresh/images/adhese_bg.png
als background in die DIV. Binnen die div steek ik dan de javascript die de mannen van adhese my gegeven hebben. Als er dan een campagne is dan zal die bovenop een deel van die adhese_bg.png figuur verschijnen.
Ik gebruik wel geen wordpress widgets, maar ik kan me voorstellen dat als je gewoon HTML content in een widget kan steken, je die geneste div daar ook wel kan plaatsen.
@CraHan: hartelijk bedankt, dat is precies de oplossing die ik zocht. Grootendanck!
@Pieter: ook grootbedanckt, ik had bij jouw oplossing één ding over het hoofd gezien: hier wordt de bestaande content niet vervangen maar verplaatst, dus niet echt wat ik zocht. Maarrr… je hebt me wel op het spoor gezet naar een leuke script die ik later eens wil uitproberen: zie hier. (Zoiets dus, moet het nog uitwerken.)
[...] En natuurlijk heb ik geen backup gemaakt. En die code heeft me uren, dagen, nachten werk gekost, destijds. Uiteindelijk heb de code teruggevonden (sufgezocht), genest in een .php file van mijn maandelijkse [...]