Frage zu der Templateengine

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
Benutzeravatar
kenguruh2002
Mitglied
Beiträge: 4
Registriert: 02.09.2005 03:51

Frage zu der Templateengine

Beitrag von kenguruh2002 »

Hallo,

ich beschäftige mich gerade mit dem phpbb Template System. Was auch im ganzen meine ersten Erfahrungen sind mit der Materie php und html Code zu trennen.

Folgende Frage / Problem habe ich jetzt.

Template1

Code: Alles auswählen

<!-- BEGIN block_box_links -->

..... anderes html .....

    <table class="boxtext" width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="100%" valign="top">{block_box_links.BOXTEXT}</td>
      </tr>
    </table>

..... anderes html .....

<!-- END block_box_links -->
Template2

Code: Alles auswählen

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<!-- BEGIN row_kategorie -->

  <tr><td><b>{row_kategorie.KATEGORIE}</b></td></tr>
  
  <!-- BEGIN row_frage -->
  <tr>
    <td>{row_kategorie.row_frage.FRAGE}</td>
  </tr>
  <!-- END row_frage -->

  <tr><td height="10"></td></tr>

<!-- END row_kategorie -->

</table>

Wie bekomme ich jetzt das Template2 in die PHP Datei von Template1 bei {block_box_links.BOXTEXT} hinein?
Geht das vom Template1 aus überhaupt? Oder muss ich erst das Template2 parsen und dann nach dem Motto

Code: Alles auswählen

$template->assign_block_vars('block_box_links', array(
           'BOXTEXT' => include(Template2.php),
           )
);
einfügen?

Ich hoffe das ich es einigermassen gut erklären konnte.
Über eine Antwort würde ich mich freuen.

Mfg Kenguruh2002
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Innerhalb eines Blocks geht das nicht, aber als Globale Variable:

Code: Alles auswählen

$template->set_filenames(array(
  'aussen' => 'aussen.tpl',
  'innen' => 'innen.tpl'
));

$template->assign_var_from_handle('INNEN', 'innen');
$template->pparse('aussen');
KB:template_syntax
KB:knigge
Benutzeravatar
kenguruh2002
Mitglied
Beiträge: 4
Registriert: 02.09.2005 03:51

Beitrag von kenguruh2002 »

Hallo,

das mit $template->assign_var_from_handle habe ich glaube verstanden. Hift mir aber für meine Anwendung glaube nicht richtig weiter. Oder ich gehe dort irgendwie falsch an die Sache ran. Ich mache es jetzt mal etwas ausführlicher, wie die Seite anschliessend aussehen soll.

Es gibt eine Tabelle mit 2 Spalten (Grundseite).
In dieser Tabelle werden je Spalte x weitere Tabellen untereinander angezeigt (Anzahl wird aus DB ausgelesen, variiert ständig). Deshalb habe ich gedacht, setze ich das in einen Block (siehe oben "block_box_links" für linke Spalte) um diesen immer wieder verwenden zu können.
Dieser Block wird immer von neuem gebraucht. Ansonsten müsste ich den html code in jede Datei schreiben. Der bestimmt jeweils das aussehen und wird mit jeweils anderen Tabellentitel , ... bestückt.
Und in dieser Tabelle kommt immer wechselnder Inhalt.

Code: Alles auswählen

Grundseite mit 2 Spalten
----------------------------
|           |              |
|           |              |
|--------------------------|

Tabellen in der Linken Spalte (ich nenne die jetzt mal Box)

Code: Alles auswählen

----------------------------
| Box mit Kopf1            |
----------------------------
|                          |
| Inhalt1                  |
|--------------------------|


----------------------------
| Box mit Kopf2            |
----------------------------
|                          |
| Inhalt2                  |
|--------------------------|

usw.
So wie ich das jetzt haben möchte, müsste man das in etwa so machen:

mache Inhalt1 in Box
mache Inhalt2 in Box
usw.


dann:

mache alle Boxen in die Spalte Links


jetzt das gleiche für die rechte Spalte.


und zum Schluss:

Template ausgeben.


Nur leider bekommen ich das nicht hin. Vielleicht sind auch die Templates falsch aufgeteilt. Für jede hilfe wäre ich dankbar

Mfg Kenguruh2002
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Wenn ich dich richtig verstanden habe, sollte das so funktionieren:

gesamt.tpl:

Code: Alles auswählen

<table><tr><td>{BOX_LINKS}</td><td>{BOX_RECHTS}</td></tr></table>
links.tpl:

Code: Alles auswählen

<!-- BEGIN tabelle -->
<table><tr><td>{tabelle.IRGENDWAS}</td></tr></table>
<!-- END tabelle -->
rechts.tpl dann ähnlich aufgebaut

und die .php:

Code: Alles auswählen

$template->set_filenames(array(
  'gesamt' => 'gesamt.tpl',
  'links' => 'links.tpl',
  'rechts => 'rechts.tpl'
));

$template->assingn_block_vars('tabelle', array('IRGENDWAS' => 'lalala'));

$template->assign_var_from_handle('BOX_LINKS', 'links');
$template->assign_var_from_handle('BOX_RECHTS', 'rechts');

$template->pparse('gesamt');
KB:knigge
Antworten

Zurück zu „Coding & Technik“