PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie kann ich ein eigenes Template in eine Datei oder ein Template einbinden ?


Surviver
22.09.2006, 22:53
Hallo, ich habe mich bereit erklärt, auch mal ein Tutorial für das vb zu schreiben
Da oft die Frage kommt, wie man eigene Templates in Dateien / andere Templates einbinden kann, werde ich hier diese Frage einmal beantworten...
Zuerst müsst ihr ein neues Template anlegen, in diesem Beispiel werde ich mit dem Namen "TESTTEMPLATE" arbeiten.
Jetzt müsst ihr euch überlegen, wo ihr dieses Template verwenden möchtet.
Wenn ihr es auf allen Seiten nutzen wollt, solltet ihr das Plugin, welches wir gleich erstellen, auf den Hook 'global_start' setzen.
Wenn ihr es aber Zum Beispiel nur auf der Startseite benutzen wollt, wäre der richtige Hook 'forumhome_start'.
Natürlich könnte ihr das Plugin auch auf 'global_start' setzen, und eine IF-Abfrage einfügen, welche bewirkt, dass das Plugin nur auf bestimmten Seiten ausgeführt wird.
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------
so würde das aussehen ;)(für die Startseite) - index muss dann durch den jeweiligen Scriptnamen ersetzt werden ...
Anmerkung: Um den Scriptnamen einer Datei herauszufinden, öffnet ihr die entsprechende Datei, und sucht nach CODE:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------
Dort wird dann der Scriptname festgelegt, den ihr in Plugins & Templates benutzen könnt.
Jetzt zum eigentlchen Plugin.
Ihr erstellt ein neues Plugin, und setzt den Hook, so wie ihr ihn braucht (Also für alle Seiten global_start, für die Startseite forumhome_start, usw ;))
In das Plugin fügt ihr folgenden Code ein:
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------
Dann könnt ihr mit $testtemplate den Inhalt eures Templates ausgeben.
Die Variable $testtemplate kann dabei beliebig geändert werden, zb $sidebar oder so.
Wenn ihr euer Template anders benennt, müsst ihr TESTTEMPLATE mit dem namen eures Templates ersetzen.
Also wenn ihr ein Template Namens sidebar ausgeben wollt, ersetzt TESTTEMPLATE durch sidebar.
Ok, jetzt könnt ihr euer Template zwar ausgeben, aber es wird ein zusätzliches Query ausgeführt (Query = Eine Datenbankabfrage (diese belastet den Server unnötig))
Um dies zu verhindern, erstellt ihr ein Weiteres Plugin, mit dem hook cache_templates.
Dort packt ihr folgenden Code rein:
CODE:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------
Dabei müsst ihr TESTTEMPLATE wieder mit dem Namen eures Templates ersetzen.
Wenn ihr das Template nur auf der Startseite verwenden möchtet, den "Hook" des ersten Plugins also auf forumhome_start habt (Beispiel), Rahmt das CODE:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------in eine THIS_SCRIPT bedingng ein.
Zb so:
CODE:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------
So wird der Inhalt des Templates nur in den Speicher geladen, wenn es gebraucht wird - erspart also Serverlast.
Das war es auch schon, bei Fragen einfach posten ;)
mfg Surviver

chatpalace24
23.09.2006, 17:58
Vielen Dank dafür.