Seite 1 von 1

Frage: PHP-Abfrage ins Layout?!

Verfasst: Sa 8. Jan 2011, 20:45
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

Re: Frage: PHP-Abfrage ins Layout?!

Verfasst: So 9. Jan 2011, 12:30
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

Re: Frage: PHP-Abfrage ins Layout?!

Verfasst: So 9. Jan 2011, 13:45
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