Frage: PHP-Abfrage ins Layout?!

Gesperrt
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Frage: PHP-Abfrage ins Layout?!

Beitrag von derSteffen »

Hallo,

es ist ja möglich ins Layout auch php-Code zu packen. Das klappt mit einfachen Ausgaben ganz gut, aber jetzt möchte ich Module ausgeben.

Code: Alles auswählen

<?php
 if ((catischildof($idcat, 4)) || ($idcat==4) ) {
<div class="greenbox">
<container id="121" name="Terminteaser" types="Content" mode="fixed" default="Terminteaserbox">Terminteaser</container>
</div>
<container id="120" name="Kalender" types="Content" mode="fixed" default="sKalender universal V2.6">Kalender</container>
}
else {
<container id="122" name="Kalender" types="Content" mode="fixed" default="sKalender universal V2.6">Kalender</container>
<container id="123" name="Terminteaser" types="Content" mode="fixed" default="Terminteaserbox">Terminteaser</container>
}
?>
Jetzt kommt nur eine weiße Seite mit folgendem Fehler: Parse error: syntax error, unexpected '<' in C:\Programme\...\cms\front_content.php(929) : eval()'d code on line 994

Muss ich das < anders codieren? Wenn ich ein einfaches oder ein doppeltes Anführungszeichen drum packe und mir echo das ausgeben will, kommen andere Fehleraufrufe.

Gibt es hierfür eine Lösung?

Vielen Dank

MfG Steffen

PS: Das klappt z.B.:

Code: Alles auswählen

<?php
 if ((catischildof($idcat, 4)) || ($idcat==4) ) {
echo 'Hallo';
}
else {
echo 'Huhu';
}
?>
Wenn ich folgendes Versuche:

Code: Alles auswählen

<?if ((catischildof($idcat, 4)) || ($idcat==4) ) {echo '<div class="greenbox"><container id="120" name="Kalender" types="Content" mode="fixed" default="sKalender universal V2.6">Kalender</container><container id="121" name="Terminteaser" types="Content" mode="fixed" default="Terminteaserbox">Terminteaser</container></div>';}else {echo '<container id="121" name="Terminteaser" types="Content" mode="fixed" default="Terminteaserbox">Terminteaser</container><container id="120" name="Kalender" types="Content" mode="fixed" default="sKalender universal V2.6">Kalender</container>';}?>
kommt folgender Fehler:
Parse error: syntax error, unexpected T_CLASS, expecting ',' or ';' in C:\Programme\...\cms\front_content.php(929) : eval()'d code on line 1005
Zuletzt geändert von derSteffen am So 9. Jan 2011, 12:35, insgesamt 1-mal geändert.
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: Frage: PHP-Abfrage ins Layout?!

Beitrag von Oldperl »

Hallo Steffen,

mir ist nicht ganz klar warum du nicht ein 2. Layout oder ein 2. Template für den betroffenen Kategoriebaum nutzt. Dort könntest du deine Module so ausgeben/ändern wie du möchtest. Generell, denke ich, sollte man möglichst auf PHP im Layout verzichten. Ich denke dabei immer an die Fehlersuche, wenn mal was nicht mehr funktioniert, und man stundenlang schon sämtliche Module durchsucht hat bis man auf die Idee kommt im Layout nach PHP-Bereichen zu suchen. :roll:

Zu deinem Problem:
Eine Ausgabe von reinem HTML in einem PHP-Bereich ist so nicht möglich. Ob Contenido beim Parsen durch PHP bedingte (HTML-)Ausgaben macht, bzw. korrekt umsetzt, kann ich nicht sagen, da noch nie probiert. Wenn sollte dein Quelltext aber ungefähr so aussehen

Code: Alles auswählen

<?php
 if ((catischildof($idcat, 4)) || ($idcat==4) ) {
?>
<div class="greenbox">
<container id="121" name="Terminteaser" types="Content" mode="fixed" default="Terminteaserbox">Terminteaser</container>
</div>
<container id="120" name="Kalender" types="Content" mode="fixed" default="sKalender universal V2.6">Kalender</container>
<?php
}
else {
?>
<container id="122" name="Kalender" types="Content" mode="fixed" default="sKalender universal V2.6">Kalender</container>
<container id="123" name="Terminteaser" types="Content" mode="fixed" default="Terminteaserbox">Terminteaser</container>
<?php
}
?>
Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Frage: PHP-Abfrage ins Layout?!

Beitrag von derSteffen »

Hallo Oldperl,

du hast natürlich Recht mit den 2 Layouts, bzw. 2 Templates.

Mein Problem. Ich überarbeite eine Webseite. Nun kam ich auf die Idee in einigen Kategorie etwas umzustellen, in der anderen es aber zu lassen. Dummerweise nutzten viele der Templates dieses Layout und ich hätte jetzt für meine Sache noch zwie neue Template anlegen müssen und diese dann auf ca. 50 Artikel wieder neu anlegen und vor allem die ganzen individuellen Angaben in der der Templatekonfiguration wieder vornehmen muss und vor allem, die Redakteure hätten wieder zwei neue Templates bekommen (das wäre dann insgesamt 4) und das würde wieder ein Chaos verursachen.

Aber Dein Code hat wunderbar funktioniert. Vielen, vielen Dank.

MfG Steffen
Gesperrt