Zum Inhalt springen

Nocheinmal php script einbinden

Erstellt am 2. Januar 2005 · 3 Antworten · letzte Antwort am 3. Januar 2005

Tags: Frage

rosebud ·

Hallo Forum,

ich moechte halt gerne wissen ob man eine bestehende HTML Vorlage (resp. navigation.php) die ein Menunaviagtion mittels php script (und xx.css) steuert in ein Template einbinden kann.

Die Naviagation wird im orignal file via

<?php if (empty($currScript)) $currScript = "3"; ?>
...
<td>
<?php require 'menu.php'; ?>
</td>

aufgerufen.

Wie bringe ich diese Aufrufe in ein typo3 Template. Wie komme ich auf die Variable $currentScript??????

Siehe auch Beitrag vom 27. 12.04, Sonstiges, mit ausfuehrlicher Beschreibung.
Hat denn niemand ein aehnliches Problem gehabt???

Gruss, rosebud

mstuebner ·
rosebud schrieb

Die Naviagation wird im orignal file via

<?php if (empty($currScript)) $currScript = "3"; ?>
...
<td>
<?php require 'menu.php'; ?>
</td>

aufgerufen.

Wie bringe ich diese Aufrufe in ein typo3 Template.

Indem Du die Zeile <?php require 'menu.php'; ?> durch einen Marker ersetzt (###MY_SCRIPT1###) und im TSCode diesem Marker den Typ PHP_SCRIPT und Dein Skript zuweist.

rosebud schrieb

Wie komme ich auf die Variable $currentScript??????

Das kann man wohl erst sagen, wenn man weis WAS diese bedeutet und wie sich sich derzeit ergibt.

rosebud ·

Hallo Matthias

zuerst einmal Danke fuer die Antwort!

Du schreibst:
Indem Du die Zeile <?php require 'menu.php'; ?> durch einen Marker ersetzt (###MY_SCRIPT1###) und im TSCode diesem Marker den Typ PHP_SCRIPT und Dein Skript zuweist.

Das Problem liegt noch ein wenig anders, ich habe im Template bereits alles vorbereitet und mit Markers ersetzt.
Dies funktioniert eigentlich auch korrekt, das php script wird ausgefuehrt der Inhalt zurueckgeschrieben. Aber ich moechte meinem php Script menu.inc (resp. einer function in diesem script) eine Variable die einen Navigationsindex enthaelt und im script ausgewertet werden soll, uebergeben.

So sieht das Setup aus, das auch funktioniert:
**********************************************
...
page.config.includeLibrary = fileadmin/scripts/include.inc

page.10 = TEMPLATE
page.10 {
template = FILE
template.file = fileadmin/templates/navigationTemplate.html

workOnSubpart = DOCUMENT_BODY
...
marks.PHP_INCLUDE = PHP_SCRIPT
marks.PHP_INCLUDE.file = fileadmin/templates/navigation.inc
marks.INHALT < styles.content.get
******************************************

im include.inc gebe ich mein script an:
*****************************************
<?php
include("fileadmin/templates/menu.inc");
?>

******************************************

und mit
...marks.PHP_INCLUDE.file = fileadmin/templates/navigation.inc

verweise ich auf das script das dann letztendlich auch auf
"mein orginal" menu.inc verweist. Menu.inc hat die function user_getMenus($currScript) DA moechte ich eben die Variable aus dem Template Setup uebergeben,
die je nach Navigationseintrag fuer jede Seite anders ist:

*********************************************
<?php
$menu_object = new menu(); // New instance is created
$contentBefore = $this->cObjGetSingle($conf["cObj"],$conf["cObj."]);
$content = $contentBefore.$menu_object->user_getMenus($curr);
$content = $this->stdWrap($content,$conf["stdWrap."]);
?>
*********************************************

Und zum Schluss noch menu.inc das eben die Navigation
zurueckgibt und alle menus (je nach index) generiert.

menu.inc
*********************************************

<?php
class menu {

function user_getMenus($curr) {
#Dieser Index sollte natuerlich nicht hart codiert sein,
#sondern eben aus dem Template, resp. Konstante
#fuer jeden Eintrag uebergeben werden koenen.
$currScript = "2_2";
#$currScript = $curr;
$MenuStruktur = array(
"1" => array("Sektion" , "$PHP_SELF?currScript=1" ),
"1_1" => array("Wer sind wir?" , "index.php?id=59" ),
"1_2" => array("Statuten" , "index.php?id=60" ),
"1_3" => array("Vorstand" , "index.php?id=53" ),

....
return $allMenus;
}
}
?>

P.S. Wenn ich nicht den ganzen Umweg ueber page.config.includeLibrary und navigation.inc mache,
sondern nur mein menu.php dem Marker PHP_SCRIPT uebergebe wird das script menu.php zwar ausgefuehrt, aber der Inhalt nie an der Stelle des Markers eingefuellt, sondern ganz zu Beginn der HTML Seite.
Vielleicht hat noch jemand eine Idee??

Gruss, rosebud

mstuebner ·
rosebud schrieb

Dies funktioniert eigentlich auch korrekt, das php script wird ausgefuehrt der Inhalt zurueckgeschrieben. Aber ich moechte meinem php Script menu.inc (resp. einer function in diesem script) eine Variable die einen Navigationsindex enthaelt und im script ausgewertet werden soll, uebergeben.

Gerade drüber gestolpert: Schau Dir mal "Modern Template Building part1", Seite 13 an. Das sollte genau das sein was Du suchst.