Um im JTL-Shop 5 Hook 140 den Seitentyp zu ermitteln, muss man sich scheinbar eines kleinen Tricks bedienen und auf den Wert nSeitenTyp aus Smarty zurückgreifen.
Leider ist mir kein Weg bekannt und ich habe auch keinen gefunden, um den Wert direkt aus anderen Hook-Variablen zu ermitteln.
Da es nicht ganz einfach war, hoffe ich Euch so ein paar Kopfschmerzen zu ersparen:
/**
* @inheritdoc
*/
public function boot(Dispatcher $dispatcher): void
{
parent::boot($dispatcher);
$plugin = $this->getPlugin();
$db = $this->getDB();
$cache = $this->getCache();
$dispatcher->listen('shop.hook.' . \HOOK_SMARTY_OUTPUTFILTER, function ($args) use ($plugin, $db, $cache, $dispatcher) {
$smarty = $args['smarty'];
// We have to get the page type from smarty, no variable available for that:
$pageType = $smarty->getTemplateVars('nSeitenTyp');
if ($pageType == PAGE_ARTIKEL) {
// Artikelseite
} elseif ($pageType == PAGE_ARTIKELLISTE) {
// Artikelliste
}
});
}
Falls ihr einen besseren Weg kennt, schreibt mir bitte :)