diddipoeler / sportsmanagement

Die neue Sports Management Komponente für Joomla 3/4/5
GNU General Public License v2.0
27 stars 27 forks source link

Template-Override von default_explanation #1066

Open ortwin20000 opened 4 years ago

ortwin20000 commented 4 years ago

Ich zeige mir die Spielergebnisse inkl. Tabelle über die View ResultsRanking an. Dabei wird mir unter der Tabelle die Spaltenerklärung mit angezeigt. Da diese auf kleineren Bildschirmen nicht gut angezeigt werden, wollte ich diese Datei mit Hilfe von Template-Overrides anpassen. Ich hätte hierzu die Struktur so angelegt: /templates/meinTemplate/html/com_sportsmanagement/ranking/default_explanation.php Die geänderte Datei wird mir aber nicht angezeigt. Es wird immer die Original-Datei ausgegeben. Ich hätte auch andere Verzeichnisstrukturen versucht wie z.B.: /templates/meinTemplate/html/com_sportsmanagement/resultsranking/default_explanation.php oder über die Joomla-Funktion der Overrides-Erstellung aber nichts davon funktioniert bei mir. Ich habe jetzt meine Änderung mal in der Original-Datei durchgeführt aber beim nächsten Update wäre diese ja wieder verloren. Wie kann ich mein Override verwenden?

sigal commented 4 years ago

Habe die Leichen im Keller entsorgt und neue Beschreibung hinterlegt

Im Prinzip hast du recht, ein Override in den templates durchzuführen, wenn man die richtige Datei erwischt. falsch /templates/meinTemplate/html/com_sportsmanagement/resultsranking/default_explanation.php

richtig /templates/meinTemplate/html/com_sportsmanagement/resultsranking/defaul.php

und dort die Zeilen zu Einbindung der explanation.php ausblenden (zeilen 89 -95)

oder jetzt im Template ranking ausschalten.

ortwin20000 commented 4 years ago

Danke aber ich möchte das Template nicht ausblenden sondern anpassen. Welches Override für welche Datei ist das richtige?

sigal commented 4 years ago

/html/com_sportsmanagement/ranking/default_explanation.php

ortwin20000 commented 4 years ago

Ok. Dann versuch ich es jetzt noch einmal.

ortwin20000 commented 4 years ago

Funktioniert noch nicht: /templates/meinTemplate/html/com_sportsmanagement/ranking/default_explanation.php habe ich geändert aber diese werden mir auf der Webseite nicht angezeigt. Cache ist deaktiviert und der Browser-Cache ebenso. Sobald ich die Original-Datei anpassen funktioniert ist. Somit wird das Override nicht verwendet.

ortwin20000 commented 3 years ago

Ich schließe diesen Fall da ich derzeit versuche die bestehende Seite für Joomla 4 fit zu machen und es anscheinend nur bei mir aufgetreten ist.

ortwin20000 commented 1 year ago

Ich habe das Thema mit den Overrides wieder probiert aber bei den listheader und footer z.B. funktioniert es nicht. Das liegt daran wie diese geladen werden. Bin jetzt aber endlich fündig geworden wie das behoben werden kann. Ich werde dazu einen Pull-Request erstellen.

Nachtrag: Das Problem liegt an der Methode addTemplatePath in der Helper sportsmanagement.php Den notwendigen Hinweis habe ich hier gefunden.

In der Methode wird mit addTemplatePath() der zu suchende Pfad für die listheader oder gloablviews hinzugefügt. Joomla weiß aber nichts davon, dass es auch im jeweiligen Template nach Overrides suchen könnte. Deswegen muss auch dieser Pfad in der Methode hinzugefügt werden.

Erst damit funktioniert auch für diese Views ein Override.

ortwin20000 commented 1 year ago

Muss hier leider wieder aufmachen... Ich habe jetzt festgestellt, dass in einigen Views das Startmenü direkt geladen wird. Dadurch kann hier auch wieder kein Override durchgeführt werden.

In meinem Fall habe ich für die Datei default_4_start_menu.php ein Override erstellt um den Menüpunkt Tippspiel und die Erweiterungen auszublenden da wir dieses nicht im Einsatz haben. Wenn ich auf der Startseite bin funktioniert es auch: grafik

aber wenn ich dann z.B. die aktuelle Saison anzeige werden mir die Menüpunkte wieder angezeigt: grafik

Ursache ist in diesem Fall, dass in der Datei das Menü mit dem Code require(JPATH_COMPONENT_ADMINISTRATOR . '/views/listheader/tmpl/default_4_start_menu.php'); geladen wird. Somit greift hier kein Override über das Template mehr.

Wenn ich jetzt den Code auf echo $this->loadTemplate('start_menu'); läuft es in diesem Fall. Ich hätte dies auch dann beim Projekt versucht aber hier wird auch ein Layout mit angegeben: index.php?option=com_sportsmanagement&view=project&layout=panel&id=10

Dadurch sucht er dann nicht die Datei default_4_start_menu.php sonder panel_4_start_menu.php und die gibt es ja nicht. Kann ich natürlich händisch erstellen aber ich würde hier gerne eine saubere Lösung bevorzugen. Wird ja vielleicht auch andere Aufrufe mit anderen Layouts betreffen.

@diddipoeler Hast du einen Tipp für mich wie ich das bewerkstelligen kann?