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 :wink:

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