Antwort #1 am: 21. Juni 2018, 16:53:27
Benutze strpos() weil es deutlich schneller ist.
{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_PRODUCTS_NEW) === false}
Wenn ich's richtig verstanden habe willst auch /specials.php und einige Kategorien ausschließen von dem Setzen der Class 'hidden'.
Das kannst du was die /specials.php anbelangt einfach mittels && anhängen, also so:
{if strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_PRODUCTS_NEW) === false && strpos($smarty.server.PHP_SELF, $smarty.const.FILENAME_SPECIALS) === false}
Was die CatIDs anbelangt würde ich ein Array mit den betroffenen CatIDs anlegen und dann ebenfalls mittels && angehängt abfragen
{... && (isset($smarty.get.cPath) && !$smarty.get.cPath|in_array:'ARRAY_NAME')}
Letztes habe ich nicht getestet !!
Das Array, wenn es denn so funktioniert wie gesagt, kannst du -insofern du auf min. PHP 5.6 bist - in eine Konstante speichern (z.B. in einem File in /includes/extra/application_top/application_top_end/) und diese Konstante kannst du dann ja im Template genauso aufrufen wie die FILENAME-Konstanten.
Wenn das mit dem Array nicht geht mußt du die CatIDs wohl einzeln aufführen oder sie im Template mittels Smarty definieren.
Außerdem steht in cPath evtl. nicht nur eine CatID sondern, wenn es ich um Unterkategorein handelt, sieht es z.B. so aus: 12_13. Das Array muß entprechend aussehen.
Gruß,
noRiddle