Categories > [German] Deutscher TBS Support >

Probleme mit SubTemplates (Frage eines Anfängers)

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Ernst Spitzer
Date: 2006-10-12
Time: 11:20

Probleme mit SubTemplates (Frage eines Anfängers)

habe Stunden verbracht herauszufinden, warum mir die Seite nicht richtig angezeigt wird, d.h. eigentlich müsste die Navigation Links sein, und der Content rechts.
Füge ich anstelle von [var.content;script=[val];subtpl] nur [var.content] ein, wird die navi und"test.php" am richtigen Ort angezeigt, wobei test.php nicht ausgeführt wird (was ich ja nicht will). Lasse ich es so wie im unten angehängten Code-Schnipsel, überschreibt mir test.php die ganze Seite, d.h. die Navi Links fehlt komplett.

Was mache ich falsch?

Vielen Dank für die Hilfe.

Code-Schnipsel:

PHP-Code (start.php):
<?
    //hole mir mal die Navigation
    include ("includes/tbsnavi.php");
   
    //Navigation ist im array $navi

    $content = "test.php";

    include_once ("tbs/tbs_class.php");

    $TBS = new clsTinyButStrong;
    $TBS->LoadTemplate("templates/standard/qcmain.html");
    $TBS->MergeBlock('blk', $navi);
    $TBS-> Show();
?>



<!--HTML –Template aufgerufen von start.php -- >
<html>
<head>
<title>Test</title>
//-->
</script>
<link href="./templates/standard/standard.css" rel="stylesheet" type="text/css">
</head>

<body>

<table>
    <tr>
        <td width="212">
        <!--Die Navigation//-->
        <div id="navcontainer" class="div_navi">
        <table border="0" cellpadding="0" cellspacing="0">
            <tr>
                <td><a href=[blk.url;block=tr]>[blk.navi;block=tr]</a></td>
            </tr>
        </table>
        </div>
            </td>
            <td>
            <table>
                <tr>
                        <td>[var.content;script=[val];subtpl]</td>
                </tr>
            </table>
            </td>
        </tr>
</table>
</body>
</html>


PHP-Code (test.php):
<?php

    global $entry;

    include_once ("tbs/tbs_class.php");
    $TBS = new clsTinyButStrong;
    $TBS->LoadTemplate("templates/standard/subentry.html");
    $entry = "Hello";
    $TBS-> Show();
?>


Sub-Template aufgerufen von test.php:

<html>
[var.entry]
</html>
By: neverpanic
Date: 2006-10-20
Time: 00:05

Re: Probleme mit SubTemplates (Frage eines Anfängers)

So wie du das machst, erzeugst du zwei Instanzen von TBS mit 2 verschiedenen PHP Scripts.
Das funktioniert, ist allerdings nicht die Art und Weise, in der Subtemplates verwendet werden sollten. Wenn du dir das subtemplate-Beispiel und dort v.a. den Quellcode der eingebundenen login.php Datei ansiehst, wirst du feststellen, dass dort die bereits existierende Klasse weiterbenutzt wird, anstatt eine neue Instanz zu erstellen... vermutlich der Grund warum dein Script eine falsche Ausgabe erzeugt

Du solltest also in deiner test.php-Datei nicht
$TBS = new clsTinyButStrong;
verwenden, sondern
$TBS =& $this; #bedeutet, dass $TBS das SELBE (nicht das Gleiche) wie $this ist.
# $this ist die bereits laufende Instanz von TBS im Subtemplate mode