Frage zu Skript

Hier bekommst Du deutschsprachigen Support. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
Post Reply
photojo
Posts: 713
Joined: Wed 15. Nov 2006, 20:02
Location: Regensburg, Germany
Contact:

Frage zu Skript

Post 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
pepe
Posts: 3954
Joined: Mon 19. Jan 2004, 13:46

Re: Frage zu Skript

Post 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?
photojo
Posts: 713
Joined: Wed 15. Nov 2006, 20:02
Location: Regensburg, Germany
Contact:

Re: Frage zu Skript

Post 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?
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Re: Frage zu Skript

Post by flip-flop »

Hallo Jo,

schau dir das einmal an: Der neue Tag {LEVELX_ID}

Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
User avatar
Oliver Georgi
Site Admin
Posts: 9892
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Frage zu Skript

Post 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"]);
}
?>
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Re: Frage zu Skript

Post by flip-flop »

Genau so war das gedacht, im wiki ist auch ein Testscript vorhanden, das die ganze Sache veranschaulicht.

Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
Post Reply