Als ich
s9y embedded in den bestehenden handcode.de Seiten eingebaut hatte, ging es erst mal drum, den s9y output in die (PHP-)Templates des bestehenden Frameworks einzubinden. Die Konfig-Option "embedded" allein hatte nicht gereicht, daher hatte ich das damals mit einem simplen output-buffer gemacht um den sy9 output in einer PHP-Variabeln "abzugreifen" zu können.
Hat ja auch erst mal funktioniert, nur war der XHTML-Code der Gesamt-Seiten nicht mehr valide, da die <link> Tags zum Einbinden der sy9-CSS Datei und der alternativen Ausgaben (RSS/Atom) nicht im <head> Tag, sondern "irgendwo" in den Seiten eingefügt wurden.
Der
Hinweis von Garvin auf die (noch experimentelle) Template-API, bzw. das "default-php" Theme war zwar ein guter Tip, aber keine schnelle Lösung, denn da muss noch weiter dran gearbeitet werden, wozu ich (bis heute) leider(!) keine Zeit hatte.
Naja, wie so oft, haben Provisorien eine lange Lebensdauer, "es läuft ja erst mal..."
Heute bin ich dann bei einer anderen Aufgabe mal wieder "querlesend" durch die Smarty-Doku und dort über die Funktion
{capture} (Ausgabe abfangen) gestolpert: Hey, das könnte doch die "schnelle Lösung" sein!
Gesagt getan, und siehe da, kaum macht man's richtig, schon klappt's ;-)
Ich weise jetzt einfach innerhalb des Smarty-Templates index.tpl bestimmte Blöcke eigenen Smarty-Variablen zu und greife in dem darüber liegenden Framework auf diese zu, um sie an den (endlich!) richtigen Stellen im PHP-Template einfügen zu können.
Ausschnitte aus dem Smarty-Template index.tpl meines Themes:
CODE:
{capture assign=handcode_sy9_header}
<link rel="stylesheet" type="text/css" href="{$head_link_stylesheet}" />
[...] und alle weiteren Ausgaben die in den Seitenheader sollen [...]
{/capture}
{capture assign=handcode_sy9_content}
[...] der Inhalt der sy9 Seiten [...]
{/capture}
Und der Zugriff auf die Blöcke im "drüberliegenden" PHP:
PHP:
<?php
// Get Content and Header from serendipity['smarty']
require './sy9.php';
$sy9_content = $serendipity['smarty']->get_template_vars('handcode_sy9_content');
$sy9_header = $serendipity['smarty']->get_template_vars('handcode_sy9_header');
?>