Archiv verlassen und diese Seite im Standarddesign anzeigen : fetch_template(); erzwingt Abbruch des Skritps!?
nichtsooft
11.11.2007, 10:40
Ahoii ahoii!
Also ich hab nier ein kleines Großes Problem! Wenn ich das Forum in meine Seite integrieren will und die Forenübersicht mit
eval('print_output("' . fetch_template('FORUMHOME') . '");');aufrufen will, ist genau nach dem Durchlauf dieser Funktion Schicht im Schacht und alles was danach eigentlich noch kommen sollte wird nicht mehr abgearbeitet!
PLS help me out! :eek:
Link: Die Seite (http://tswebtec.com/08/forums/allforums.php)
fetch_template(); erzwingt Abbruch des Skritps!?
Kurz gesagt, nein. ;)
Wie der Name schon sagt, gibt print_output() die übergebenen Daten an den Client aus. Und bis auf ein paar abschließende Aktionen ist danach Script-Ende.
fetch_template() holt nur Templatedaten aus dem Templatecache.
nichtsooft
11.11.2007, 15:44
hmm... und woran könnte es liegen, dass php trotzdem nach diesem Befehl abbricht!?
Christian
11.11.2007, 15:52
Wegen print_output().
nichtsooft
11.11.2007, 16:06
mhhhmmm... Danke für die schnelle Antwort Christian!:)
Hast du auch ne Ahnung wie ich das Problem umgehen kann!?
Ich dachte ich hätte dir die Sache mit print_output() erklärt. ;)
Umgehen kannst du das Problem, in dem du print_output ans Ende des Script stellst. Sollte das nicht gehen, weil du die Daten aus FORUMHOME noch irgendwie weiterverarbeiten willst, dann mußt du sie vorher in einer Variablen zwischenspeichern und danach dann per print_output() ausgeben.
nichtsooft
11.11.2007, 17:35
kk; Fragen wir mal anders...
print_output() ist ja eine VB-funktion; Ergo muss die irgendwo deklariert sein...
Wo fidne ich die denn!?
Ich versteh nicht ganz was du machen willst
also du hast eval('print_output("' . fetch_template('FORUMHOME') . '");');
das gibt die seite aus!!!!!
alles was danach kommt ist egal
wenn es darum geht, ein template zu benutzen(parsen oder?:D ) dann muss du eval('$forumhomeinhalt = "' . fetch_template('forumhomebla') . '";'); benutzen
nun steht dir alles was im template forumhomebla steht, in den variable forumhomeinhalt zur verfügung!
dieses kannst du da mittels eval('print_output("' . fetch_template('meinendgültigestemplate') . '");'); an den browser schicken!
wobei das alles nur theoretisch ist!würde das so niemans machen
was genau hast du vor? dann kann man dir sicher besser helfen!
Und wo man die Funktion findet:
Schon mal auf die Idee gekommen die Datein zu durchsuchen ;)
functions.php
// #############################################################################
/**
* Finishes off the current page (using templates), prints it out to the browser and halts execution
*
* @param string The HTML of the page to be printed
* @param boolean Send the content length header?
*/
function print_output($vartext, $sendheader = true)
wobei wie gesagt, was hast du vor??
ich würde da nichts ändern
nichtsooft
11.11.2007, 17:52
Also es geht darum das Forum in eine seite zu integrieren...
echo "\t\t</TD>\n";
echo "\t\t<TD STYLE=\"width: auto; background-color: #fff;\">\n";
echo "\n\t\t<!-- START MAIN DISPLAY -->\n\n";
// eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('FORUMHOME') . '");');
echo "\n\t\t<!-- END MAIN DISPLAY -->\n\n";
Edit:
Einfach mal zu Testzwecken am Ende der Funktion das "Exit;" auskommentiert und siehe da... es läuft! =)
echo "\t\t</TD>\n";Natürlich folgt nach dem print_output(); noch einiger weiterer Code und den kann ich leider nicht in ein Template packen!
Edit:
Einfach mal am Ende der Funktion das EXIT; auskommentiert und siehe da...
....es funzt! =)
Geh mal in den erzeugten Quelltext und such mal nach:
<!-- START MAIN DISPLAY -->Und dann guck mal, was danach kommt. Was du jetzt hast, ist 1A HTML-Mischmasch. :eek:
Irgendwie ist dein gedanklicher Ansatz ein bisschen neben der Spur. vBulletin arbeitet zu 99,99% mit Templates und man sollte auch nur in Ausnahmefällen davon abweichen.
Damit du weiterkommst, versuche die Templates header, headinclude und footer zu bearbeiten. Für solche Dinge, wie du sie vorhast, sind die nämlich da. Dann bekommst du auch valides HTML. :)
vBulletin® v3.7.4, Copyright ©2000-2008, Jelsoft Enterprises Ltd.