Seite 1 von 2

Werbung nach X Beiträgen ausschalten

Verfasst: 09.06.2007 20:47
von Domitz
Hallo, ich habe den Beitragszahl von heute Mod, der angibt wie viele Beiträge am heutigen tag geschrieben wurden.

Jetzt würd ichs gerne einrichten, dass nach 100 beiträgen die Werbung für den aktuellen tag abgeschaltet wird.

Gibts da ne simple Lösung mit php?

Verfasst: 10.06.2007 20:46
von Miriam
für phpBB2 kannst Du Dir ja Infos aus der Knowledge-Base holen (Thema: Templates).
Dann fragst Du mit php den aktuellen Stand des Beitragszählers ab (das ist ja schon mittels MOD passiert) und schaltest dementsprechend die Anzeige im Template an oder aus. Beachte bitte dabei das Thema Verschachtelung dert Switches.

Verfasst: 10.06.2007 22:40
von Domitz
Hallo, dort finde ich leider nichts.
Habe bei google etwas von einer if weisung gelesen.
Daraufhin habe ich mal etwas zusammengebastelt, was leider noch nicht so recht klappt :(

Code: Alles auswählen

<?php

//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

if($posts_today>100)
   {
echo (Keine Werbung)
   }
else
   {
echo (Werbung)
   }
?>
Der erste Block sollte die Datenbankeinstellungen bereitstellen.
Dannach soll der Wert aus der Datenbank ausgelesen werden und überprüft werden, ist dieser grösser als 100 soll der Text "Keine Werbung" ausgelesen werden, ist der Wert kleiner als 100 soll der Text"Keine Werbung" ausgelesen werden.

Diese Datei würde ich dann noch so einbauen, dass ich sie mit {werbungprüfer} oder so bei dem Style auslesen kann.

Ich hoffe mein Ansatz ist nicht allzu verkert.
Über Antworten freue ich mich.
LG Dominik

Verfasst: 11.06.2007 14:50
von Miriam
Das hast Du gelesen? KB:template_syntax

Verfasst: 11.06.2007 15:49
von Domitz
Ok, also folgendes:

Code: Alles auswählen

if($posts_today<100 == true) {
    $template->assign_block_vars('switch_irgendwas', array());
}
und dann müsste ich noch in index_body.tpl folgendes schreiben:

Code: Alles auswählen

<!-- BEGIN switch_irgendwas -->
werbung
<!-- END switch_irgendwas -->
Nur jetzt versteh ich nicht ganz wo ich den ersten Teil reinsetzen muss.

Edit: Habs mal bei includes/page_header.php eingebunden, der text wurde dann auch bei index_body.tpl angezeigt, aber wenn ich die Grenze mal auf 10 runterschraubte (heute wurden schon mehr als 10 gepostet) wurd der text leider immer noch angezeigt.
Deswegen vermute ich mal, dass irgendwas mit der if funktion nicht richtig ist :(

Verfasst: 11.06.2007 18:00
von Miriam
Das könnte sein. Es könnte aber auch an $post_today oder an der Art Deiner Umsetzung für das Template liegen.

Probier mal es in die index_body.tpl einzusetzen und nochmal: Beachte bitte die Verschachtelung von Switches im Template.

Verfasst: 11.06.2007 18:24
von Domitz
Habs mal in der index_body.tpl probiert, klappt aber leider auch nicht :(

Also könnte das problem auch an den

Code: Alles auswählen

<!-- BEGIN switch_irgendwas -->
werbung
<!-- END switch_irgendwas --> 
liegen?

mit

Code: Alles auswählen

if({DAY_POSTS}<100 == true) {
    $template->assign_block_vars('switch_irgendwas', array());
}
klappts auch nicht, bei {DAY_POSTS} hab ichs eingestellt, dass nur die Zahl ausgelesen wird.

Verfasst: 11.06.2007 18:32
von Miriam
Das mit {DAY_POSTS} klappt so nicht. Da war der erste Ansatz besser.

Hast Du Dich denn schon mal mit der Verschachtelung der switches etwas befasst?

Verfasst: 11.06.2007 18:36
von Domitz
Nein, leider ka, was du damit meinst.

Verfasst: 11.06.2007 18:46
von Miriam
Für Ahnung, bitte die Suche benutzen und dort evtl. folgende Suchbegriffe: Verschachtelung von switches