Das „schön“ dabei ist, in manchen Blocken gibts das einfach nicht.
Nehmen wir mal Block {block name=„frontend_index_start“} aus der index.tpl oder frontend_index_header_meta_tags aus der header.tpl
Wenn man hier $sUserLoggedIn nutzt, ist dies immer false. Egal ob man ein Plugin geschrieben oder eingebunden hat, das vorher dies eigentlich aktivieren sollte.
Enlight_Controller_Action_PostDispatchSecure_Frontend greift bei diesem Block einfach nicht.
https://developers.shopware.com/developers-guide/global-variables-in-templates/
richtig wäre : $args->getSubject()->View()->assign(‚sUserLoggedIn‘, !empty(Shopware()->Session()[‚sUserId‘]));
Was allerdings auch wieder vom Cache kaputt gemacht wird…
Ich habes dann so gelöscht:
'onPostDispatch',
'Enlight_Controller_Action_PostDispatchSecure_Frontend' => 'onPostDispatch',
'Enlight_Controller_Action_PostDispatchSecure_Widgets' => 'onPostDispatch'
];
}
/**
* @param \Enlight_Controller_ActionEventArgs $args
*/
public function onPostDispatch(\Enlight_Controller_ActionEventArgs $args)
{
$args->getSubject()->View()->assign('sUserLoggedIn', !empty(Shopware()->Session()['sUserId']));
//$args->getSubject()->View()->assign('sUserloggedIn', Shopware()->Modules()->Admin()->sCheckUser());
}
}