Seite 1 von 1

Frage zu der Templateengine

Verfasst: 02.09.2005 11:12
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

Verfasst: 02.09.2005 12:32
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

Verfasst: 02.09.2005 14:27
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

Verfasst: 02.09.2005 22:40
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');