Mittels Frontend Render CP durch anderen CP ersetzen?

Hier bekommst Du deutschsprachigen Support. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
Post Reply
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Mittels Frontend Render CP durch anderen CP ersetzen?

Post by Uwe367 »

Es ist mit Sicherheit möglich mittels Frontend Renderscript nach einer erfüllten Bedingung einen CP durch einen anderen zu ersetzen, aber wie?
Meine Vorstellung wäre in etwa diese:

Code: Select all

if ($Bedingung_erfuellt['bedingung']) {
$content['all'] = replace_cnt_part('cpid' , 'cpid', $content['all']);
}
Meine Hauptfrage wäre nun....
Gibt es etwas wie replace_cnt_part oder etwas ähnliches überhaupt und falls ja, wie müsste dann der Code aussehen um die CP´s, im Beispiel einfach cpid, anzusprechen?
User avatar
Oliver Georgi
Site Admin
Posts: 9888
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Mittels Frontend Render CP durch anderen CP ersetzen?

Post by Oliver Georgi »

Umschließe die beiden in Frage kommenden Content Parts schlicht jeweils mit Kommentar-Tags:

Code: Select all

<!--MYCP1_START//--> … <!--MYCP1_END//-->
<!--MYCP2_START//--> … <!--MYCP2_END//-->
Dann die Bedingung:

Code: Select all

if ($Bedingung1 === true) {
    $content['all'] = replace_tmpl_section('MYCP2', $content['all']);
} else {
    $content['all'] = replace_tmpl_section('MYCP1', $content['all']);
}
Rendert zwar die CPs beide erst einmal, aber sollte genau den gewünschten Effekt haben.

Ansonsten musst Du Dir {SHOW_CONTENT:MODE,id[,id[,...]]} hier anschauen. Damit ist alles möglich, mit Tag oder direkt.
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Mittels Frontend Render CP durch anderen CP ersetzen?

Post by Uwe367 »

Danke Oliver,
funktioniert genau so wie es soll.

Der CP, mit dem ersetzt werden soll, ist ausgeblendet und wird erst eingeblendet wenn die Bedingung erfüllt ist. Gleichzeitig wird der zu ersetzende CP ausgeblendet.
Aber auf if / else wäre ich jetzt überhaupt nicht gekommen.
Ich war lediglich der Ansicht dass ich bei

Code: Select all

$content['all'] = replace_tmpl_section('MYCP1', $content['all']);
einfach die Section, die einegblendet werden soll, hinter das Komma setzen kann, also

Code: Select all

$content['all'] = replace_tmpl_section('MYCP1', 'MY_CP2', $content['all']);
aber bei dieser Methode wird das Haupttemplate komplett ausgeblendet und der Kommentar TAG in Textform ausgegeben.
Bei str_replace funktioniert das und ich war der Meinung, dass das hier ebenfalls klappen könnte da die Schreibweise ähnlich ist.

Danke nochmals für den "Schubs in die richtige Richtung"
Post Reply