Page 1 of 1
Frage zu Skript
Posted: Thu 5. Jul 2012, 15:00
by photojo
Hallo,
ich habe ein Skript im Ordner frontend_render
Code: Select all
if($content['cat_id'] == 1 or $content['cat_id'] == 6 or $content['cat_id'] == 23 or $content['cat_id'] == 24 or $content['cat_id'] == 18) {
//echo " if";
$content["all"] = str_replace('{KNEWS}', showSelectedContent('CP,110'), $content["all"]);
}
Die Kategorien liegen alle unter der Kategorie 1. Kann ich mir dir Zeile " $content['cat_id'] == 1 or $content['cat_id'] == 6 or $content['cat_id'] == 23 or $content['cat_id'] == 24 or $content['cat_id'] == 18 " kürzer machen, da ich noch viel mehr Kategorien darunter liegen habe und die Zeile somit immer länger wird.
Vielen Dank.
Jo
Re: Frage zu Skript
Posted: Thu 5. Jul 2012, 17:35
by pepe
Ich habe zwar keinen Schimmer und würde deshalb einfach mal vor den
or Anweisungen einen Zeilenvorschub einbauen.
10 Sekunden Sache und du weisst, ob's geht
Oder willst du dir Aktualisierungen sparen, wenn du weitere Unterkategorien unterhalb von catid=1 einfügst?
Re: Frage zu Skript
Posted: Thu 5. Jul 2012, 17:39
by photojo
Klar geht das mit dem or, aber das wäre besser ...
Oder willst du dir Aktualisierungen sparen, wenn du weitere Unterkategorien unterhalb von catid=1 einfügst?
Und wie mache ich das?
Re: Frage zu Skript
Posted: Thu 5. Jul 2012, 21:07
by flip-flop
Hallo Jo,
schau dir das einmal an:
Der neue Tag {LEVELX_ID}
Knut
Re: Frage zu Skript
Posted: Fri 6. Jul 2012, 18:55
by Oliver Georgi
{LEVELX_ID} bringt an der Stelle nicht so viel, solange es mit Replacer (zu empfehlen, da effektiver) realisiert ist. Die Basis dessen ist aber einfach nachvollziehbar:
Zählen auf welchem Level die einzelnen Kategorie liegen (also CAT ID 6 usw.). Level 0 ist die Root-Ebene, jeder Baumknoten tiefer +1
Deine Kategorie ID 1 ist die Elternkategorie und liegt auf der 1. Ebene, dann sieht die Prüfung wie folgt aus:
Code: Select all
<?php
if(isset($LEVEL_ID[1]) && $LEVEL_ID[1] === 1) {
$content["all"] = str_replace('{KNEWS}', showSelectedContent('CP,110'), $content["all"]);
} else {
$content["all"] = str_replace('{KNEWS}', '<!-- whatever -->', $content["all"]);
}
?>
Alternativ ist es leichter wie folgt auf diverse IDs zu prüfen anstatt ausufernd IF OR zu benutzen:
Code: Select all
<?php
if(in_array($content['cat_id'], array(1,6,23,24))) {
$content["all"] = str_replace('{KNEWS}', showSelectedContent('CP,110'), $content["all"]);
} else {
$content["all"] = str_replace('{KNEWS}', '<!-- whatever -->', $content["all"]);
}
?>
Re: Frage zu Skript
Posted: Fri 6. Jul 2012, 20:04
by flip-flop
Genau so war das gedacht, im wiki ist auch ein Testscript vorhanden, das die ganze Sache veranschaulicht.
Knut