Zufällige Inhalte im Forum anzeigen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
chris3007
Mitglied
Beiträge: 116
Registriert: 11.03.2003 17:18
Wohnort: Waiblingen
Kontaktdaten:

Zufällige Inhalte im Forum anzeigen

Beitrag von chris3007 »

Hallo zusammen,

in meiner page_header habe ich folgenden Code, um externe Inhalte anzuzeigen:

Code: Alles auswählen

// mgross-edv
$mag_loc='/kunden/160914_70736/rp-hosting/1/1/petsnature.de/';
$mag_server = $_SERVER["SERVER_NAME"];
$mag_server = 'www.petsnature.de';

$template->assign_vars(array(
	'HAUPTNAVIGATION' => implode('',file('http://'.$mag_server.'/data/navigation/hauptnavigation/hauptnavigation_community.php')),
	'BOX1' => implode('',file($mag_loc.'data/boxes/box_part1_left.php')),
	'BOXFORUM' => implode('',file($mag_loc.'data/boxes/box_part1_forum.php')),
	'BOX2' => implode('',file($mag_loc.'data/boxes/box_part2_left.php')),
	'BOX3' => implode('',file($mag_loc.'data/boxes/box_part3_left.php')),
In templates kann ich diese nun z.B. mit {BOX3} anzeigen lassen.


So. Nun zu meiner Frage.
Ich habe folgenden Code, mit dem ich externe Inhalte in einer anderen php-Datei zufällig anzeigen lasse:

Code: Alles auswählen

include sprintf('./data/navigation/hauptnavigation/zufall%02d.html',rand(1,4));
In dem Zielordner liegen dann jetzt 4 Dateien, die zufällig includiert werden.
Mein Problem ist, dass ich nicht den richtigen Syntax zusammen bekomme, dass dies in der page_header richtig ist. Ich bekomme immer Fehlermeldungen.

Hat jemand eine Ahnung?

Danke und Gruß
Chris
http://www.petsnature.de
Das Portal für tierische Qualität !
Benutzeravatar
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

Beitrag von djchrisnet »

mal ganz stümperhaft kannst du das hier probieren:

Code: Alles auswählen

$zahl = rand(1,4);
if($zahl == 1){
include(DATEINAME1);
}
elseif($zahl == 2){
include(DATEINAME2);
}
elseif($zahl == 3){
include(DATEINAME3);
}
else{
include(DATEI4);
}
oder auch

Code: Alles auswählen

$nr = rand(1,4);
include sprintf("DATEPFAD/box_part"' . $nr . '"_forum.php");
sind beides ungetestet. keine GARANTIE
chris3007
Mitglied
Beiträge: 116
Registriert: 11.03.2003 17:18
Wohnort: Waiblingen
Kontaktdaten:

Beitrag von chris3007 »

Hallo,

erst mal vielen Dank für die Antwort.



Mit folgendem Syntax in der page_header kommt mal zumindest keine Fehlermeldung mehr:

Code: Alles auswählen

'ANZEIGE' => include sprintf($mag_loc.'data/navigation/hauptnavigation/zufall%02d.html',rand(1,4)),
In den Templates sollte man den Inhalt ja dann mit {ANZEIGE} darstellen können.

Jetzt ist es aber gerade so, dass der Code in der include bewirkt, dass die zufälligen Anzeigen überall und als erstes in der Webseite gezeigt werden. Warum das?
http://www.petsnature.de
Das Portal für tierische Qualität !
CorniI
Mitglied
Beiträge: 42
Registriert: 19.05.2006 11:11
Wohnort: Heilbronn

Beitrag von CorniI »

weil include laut http://www.php.net/manual/de/function.include.php den Rückgabewert 1 bei Erfolg hat, und der Inhalt wird un mit parsen des Statements gleich eingebunden, und nicht, wie erwünscht, in dem Array abgelegt. Probier mal readfile() ;)
MfG
Corni
chris3007
Mitglied
Beiträge: 116
Registriert: 11.03.2003 17:18
Wohnort: Waiblingen
Kontaktdaten:

Beitrag von chris3007 »

Hallo,

wie könnte der Code mit der Funktion reafile() dann aussehen? Ich probiere hin und her und bekomme immer Fehlermeldungen. ich bekomme den Syntax nicht hin...

Kann mir jemand helfen?
http://www.petsnature.de
Das Portal für tierische Qualität !
chris3007
Mitglied
Beiträge: 116
Registriert: 11.03.2003 17:18
Wohnort: Waiblingen
Kontaktdaten:

Beitrag von chris3007 »

Ok. Ich habe es nun geschafft. Es ging einfach mit der implode(). Der Code sieht so aus:

Code: Alles auswählen

'ANZEIGE' => implode('',file(sprintf('PFAD/zufall%02d.html',rand(1,4)))),
Ich brauchte einfach eine Weile, bis ich die Klammern alle richtig gesetzt hatte :-)

Dieser Code kommt in die page_header.php. Mit {ANZEIGE} kann der Inhalt dann an einer beliebiegen Stelle dargestellt werden. Hier liegen jetzt vier Dateien dahinter.

Wir betreiben einen Shop und ich möchte eben im forum auch Shopinhalte, welche ich gesondert herausstellen möchte immer wieder in der viewtopic.body.tpl einblenden.

Beispiel dafür:
http://www.petsnature.de/phpBB2/ich-und ... t7873.html

Direkt unter der Navi kommt ein zufällig eingeblendeter Inhalt.

Danke für die Anregungen.
Gruß
Chris
http://www.petsnature.de
Das Portal für tierische Qualität !
Antworten

Zurück zu „Coding & Technik“