 |
|
|
|

| Autor |
Nachricht |
coolsoft
phpBB2.de User


Anmeldungsdatum: 09.11.2005
Beiträge: 5498
Wohnort: deep in the south (G)
|
Verfasst am:
Sa 18 Feb, 2006 23:07 |
  |
Hallo an die Coder -
bin ja nicht so ganz ungeschickt - bislang gewesen
PHP Scripting so mit den ganzen (einfachen) Konstrukten ist mir nicht ganz so fremd.
ABER:
ich finde gerade im Code von phpBB2 immer wieder zwei Code Zeilen, die ich nicht drauf hab:
1)
z.B.:
oder
| Code: |
| {SITENAME}<a href="{U_USER_MAP}">{L_USER_MAP}</a> |
soweit ich vermute ein Tag - aber wie stelle ich die Inhalte für den Tag her?? Soll heissen: worauf wird hier referenziert??
2)
z.B.:
| Code: |
| <!-- BEGIN switch_user_logged_in --> |
der Anfang deutet ja zunächst auf einen HTML - Kommentar hin, wie(so)
findet dann aber offensichtlich der Aufruf von WAS (Objekt, Function...) statt?
BEGIN wird wohl ein Schlüsselwort sein, aber für welches Konstrukt?
Selfphp hat bis zu diesem Punkt häufig geholfen - zu den einfachen Dingen des Scriptings -
aber nu
Könnte mir vorstellen, daß ein, zwei Sätze schon helfen können.
Lese mir das gerne auch an - hat einer nen Link??
danke schon mal -
OT:
(könnte mal einer meinen Link einer Copyright unterziehen oder diesen einer Überprüfung vorschlagen?? - ich find grün so schön ) |
_________________ °
*** upgrade zu phpbb3 / Migration - bei Interesse bitte PN ***
*** phpBB3 plus slimline (free) ***
*** phpBB3 plus light mit Portal, Download, Gallery codebase 3.0.6 (25 EUR) ***
== Support für Fortgeschrittene / experienced users support
kein Support via PN |
|
    |
 |
Google
|
Verfasst am:
|
 |
|
|
 |
Titus
Administrator

Anmeldungsdatum: 24.03.2004
Beiträge: 4255
|
Verfasst am:
Sa 18 Feb, 2006 23:48 |
  |
1. in den zur tpl gehörenden php dateien oder auch der page_header / _tail.php findest du
$template->assign_vars(array( )); damit werden diese Varianlen weitergegeben
2. ist ein switch der sich hier z.B. in der page_header.php befindet
diese werden eben von der templateengine des phpBB interpretiert und umgesetzt |
_________________ "geht nicht" ist keine Fehlerbeschreibung mit der man was anfangen kann
bei Fragen erst suchen
Downloads gibts hier und da |
|
   |
 |
coolsoft
phpBB2.de User


Anmeldungsdatum: 09.11.2005
Beiträge: 5498
Wohnort: deep in the south (G)
|
Verfasst am:
So 19 Feb, 2006 00:09 |
  |
|
    |
 |
lenny5000
phpBB2.de User


Anmeldungsdatum: 23.01.2004
Beiträge: 179
|
Verfasst am:
So 12 März, 2006 19:21 |
  |
Richtig, diese Sachen funktionieren nur im phpBB, oder in einer anderen Seite, die das Templatesystem vom phpBB benutzt.
Dein
wird beispielsweise durch
| PHP: |
<?php $template->assign_vars(array(
'SITENAME' => $board_config['sitename'],
...
);
|
in der includes/page_header.php mit der Variable $board_config['sitename'] ersetzt, die vorher aus der Datenbank ausgelesen wurde.
Wenn man jetzt Dateien wie die viewtopic_body.tpl anschaut, die ja für das Angucken eines Topics verwendet wird, findet man da "Blöcke", die zum Beispiel mit
| Code: |
| <!-- BEGIN postrow --> |
anfangen und mit
| Code: |
| <!-- END postrow --> |
In dem Beispiel wird dieses Template in der viewtopic.php so angepasst, dass zwischen den beiden Codeteilen ein Beitrag steht. Da aber auch mal mehr als ein Beitrag in einem Topic drin sein kann :), muss das ganze in einen Block rein, der dann so oft wie er benötigt wird hintereinander gepackt werden kann, wobei immer wieder andere Beiträge (und was noch so dabeisteht, Username, Avatar, Signatur, ...) eingefügt werden. Die Platzhalter innerhalb dieses Blockes sehen dann zum Beispiel so aus:
| Code: |
| {postrow.POSTER_NAME} |
In der viewtopic.php werden dann so viele Blöcke wie benötigt definiert, die die Templatengine dann aneinanderhängt:
| PHP: |
<?php //
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
//
for($i = 0; $i < $total_posts; $i++)
{
...
$poster = $postrow[$i]['post_username'];
...
$template->assign_block_vars('postrow', array(
...
'POSTER_NAME' => $poster,
...
)
);
}
|
In einer Schleife wird ein Block nach dem anderen abgefertigt, wobei $poster jedes Mal einen neuen Wert aus $postrow zugewiesen kriegt.
Diese Blöcke können nun auch wie bei deinem Beispiel verwendet werden, um einen Teil des Codes entweder anzuzeigen oder nicht anzuzeigen, indem die assign_block_vars-Funktion für diesen Block entweder gar nicht oder nur einmal aufgerufen wird - im Code vom phpBB fangen die Namen dieser Blöcke dann meistens (oder immer?) mit "switch_" an.
So, ich hoffe da ist jetzt kein Fehler drin und es hilft dir weiter. ;) |
|
|
    |
 |
coolsoft
phpBB2.de User


Anmeldungsdatum: 09.11.2005
Beiträge: 5498
Wohnort: deep in the south (G)
|
Verfasst am:
So 12 März, 2006 20:40 |
  |
Hallo Lenny,
5000 - fachen Dank für die ausführlichen Erläuterung.
Hatte meine Frage eigentlich schon in den Katakomben des Forums hier vergraben gesehen.
Darf ich trotzdem nochmal nachfragen:
der Ablauf / Sinn / Inhalt des ganzen ist mir aus der Praxis schon geläufig,
nur :
wo - verfluchtjuche - werden die "{....}" und "<!-- -->" interpretiert.
Da ja eigentlich alles im Script-Text vorliegt und nicht mir Kompilaten gearbeitet wird, sollte es eigentlich eine (?) Stelle geben an der der Inhalt der Variablen (Objekten.. wie oben so schön beschrieben..) interpretiert und "eingeschleift" wird?
Danke Gerhard |
_________________ °
*** upgrade zu phpbb3 / Migration - bei Interesse bitte PN ***
*** phpBB3 plus slimline (free) ***
*** phpBB3 plus light mit Portal, Download, Gallery codebase 3.0.6 (25 EUR) ***
== Support für Fortgeschrittene / experienced users support
kein Support via PN |
|
    |
 |
lenny5000
phpBB2.de User


Anmeldungsdatum: 23.01.2004
Beiträge: 179
|
Verfasst am:
So 12 März, 2006 21:02 |
  |
Hmm... Also interpretiert und zusammengesetzt wird das ganze in dem Templateobjekt, das in der includes/template.php definiert ist, hauptsächlich in der compile()-Funktion, wenn ich das halbwegs richtig verstehe. |
|
|
    |
 |
coolsoft
phpBB2.de User


Anmeldungsdatum: 09.11.2005
Beiträge: 5498
Wohnort: deep in the south (G)
|
Verfasst am:
So 12 März, 2006 21:11 |
  |
|
    |
 |
|
|
|
|
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
| |