Templte-Events sollen speziell behandelt werden
Ausgangssituation
QUIQQER Installation mit 2 Projekten. Pro Projekt wird ein Child-Template verwendet, die gleichzeitig von dem gleichen Parent-Template erben.
Problem
Template bieten template-events
an, wie z.B. das hier (ein Standard-Template-Event):
{template_event name="quiqqer::template-cologne::header::end" Template=$Template}
Die beiden Child-Templtes benutzen das Event und fügen an dieser Stelle eigenen Code ein. Wenn das Projekt 1 das Child-Template-1 verwendet, wird an dieser Stelle nicht nur der extra Code von Child-Template-1 eingefügt, sondern auch das vom Child-Template-2. Z.B. könnte hier eine CSS Datei verlinkt werden, die in dem Projekt nichts zu suchen hat.
Beispielcode aus EventHandler.php
eines Child-Templates:
public static function onQuiqqerTemplateCologneHeaderEnd(Collector $Collector, QUI\Template $Template)
{
$templateName = QUI::getRewrite()->getProject()->getAttribute('template');
// workaround
if ($templateName !== 'candyman-gmbh/quiqqer-template') {
return;
}
$html = '<link rel="stylesheet" href="';
$html .= $Template->getTemplateUrl('bin/css/child.css');
$html .= '"/>';
$Collector->append($html);
}
Mögliche Lösung
In heutigem Gespräch ist ein Vorschlag entstanden, dass man in QUIQQER Templates ein anderes Event-Objekt benutzt.
Das Problem ist nicht dringend, sollte aber nicht vergessen werden