ConPresso 4.1 PHP-Code im Seitentemplate

Allgemeine Diskussionen zu ConPresso 4. Handhabung, Möglichkeiten, Verständnisfragen.
Achtung: Bitte benutzt wenn möglich die themenspezifischen Foren!
Antworten
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

ConPresso 4.1 PHP-Code im Seitentemplate

Beitrag von balu »

Hi,

wie gerade schon versprochen, habe ich heute ein wenig probiert, wie man PHP in die Seitentemplates bekommen kann. Grundsätzlich würde ich den <!-- Function: Funktionsname; --> Platzhalter empfehlen, aber wer direkt Code editieren will, kann das auch:

In die _cfg/common-local.inc.php schreibt man die Funktion, die PHP im Seitentemplate ausführt:

Code: Alles auswählen

function cpoPageParsePHP($aParameter)
{
    ob_start();
    eval('?>' . $GLOBALS['pageTemplate']);
    $newPageTemplate = ob_get_clean();
    $GLOBALS['pageTemplate'] = $newPageTemplate;
    return '';
}
Im Seitentemplate ruft man das dann - am besten direkt zu Beginn wie folgt auf:

Code: Alles auswählen

<!-- Function: parsePHP; -->
<?php 
echo "Balu war hier<br />"
$GLOBALS['cpoRubricSettings']['title'] = "A New Title";
?>
Der PHP-Code wird dann dementsprechend ausgeführt. Wichtig ist, dass man nur über die $GLOBALS Variable auf die vorhandenen Werte zugreifen kann.

Fehler im Code führen dann aber natürlich zu fiesen Meldungen im Parser, die nicht unbedingt leicht zu finden sind.

Auch muss man sich im Klaren sein, dass man sich ggfs. Sicherheitslücken in seine Seitentemplates bauen kann. Hier muss man dann besonders darauf achten, ordentlich zu programmieren.

Balu
Bartels.Schöne
ConPresso Support & Development
Antworten