it-swarm.com.de

Joomla set Template Alternatives Layout via Link, ist das möglich?

Ich bin auf ein seltsames Verhalten gestoßen und versuche herauszufinden, ob ich dieses Problem lösen kann, indem ich das zu verwendende Layout über den Link zur Kategorie einstelle.

Hier ist was passiert.

  • Ich habe eine Vorlagenüberschreibung für das Kategorie-Blog-Layout
  • Ich habe es über das Menü zugewiesen und das funktioniert gut
  • Das Blog-Layout für den Menütyp "Kategorie" mit der Option "Benutzerdefiniertes Layout überschreiben" zeigt auch Links zu untergeordneten Kategorien an
  • Wenn ich auf eine der untergeordneten Kategorien klicke, wird die benutzerdefinierte Vorlagenüberschreibung nicht als übergeordnete Kategorie verwendet, sondern es wird einfach wieder das Standard-Blog-Layout verwendet

Also habe ich etwas wie das Folgende in der custom_children.php (blog_children.php) ausprobiert

<a href="<?php echo JRoute::_(ContentHelperRoute::getCategoryRoute($child->id).'&layout=customlayout');?>">

Aber das scheint nicht zu funktionieren.

Mit der untergeordneten Kategorie ist kein Menüelement verknüpft. Angesichts der Anzahl der Kategorien wird jedoch kein Menüelement für jede Kategorie vorhanden sein.

Die Fragen sind also:

  1. Wird erwartet, dass die untergeordnete Kategorie standardmäßig auf die Standard-blog.php zurückgesetzt wird?

  2. Ist es möglich, den Layout-Override per Link einzustellen?

Ich teste dies auf einem MAMP mit PHP 7.0 und dem neuesten Joomla 3.7.5

1
edger

Wahrscheinlich sind die angegebenen Informationen nicht zu 100% korrekt, daher werde ich versuchen, ein paar Dinge zu klären und zu einer Schlussfolgerung zu gelangen.

Überschreibungen können auf viele Arten vorgenommen werden. Es gibt viele Kombinationen von Konfigurationseinstellungen, um mit ihnen umzugehen.

Überschreibt Ansätze

  1. Layout Override (global): für alle Elemente einer Ansicht - Kopieren Sie einfach die Ansicht-tmpl-Dateien in den entsprechenden Ordner im HTML-Ordner der Vorlage. Dann sollten diese Dateien anstelle der Standarddateien für alle Kategorien geladen werden, ohne dass dies berücksichtigt wird.

  2. Alternative Layouts: Ähnlich wie oben, aber dieses Mal benennen wir die tmpl-Dateien um und müssen auf Artikelebene angeben, welches Layout verwendet werden soll.

  3. Alternative Layouts/Menüpunkte - Kopiere und benenne/bearbeite auch die tmpl xml Datei, damit dieses Layout mit diesem neuen benutzerdefinierten Menüpunkt ausgewählt/zugewiesen werden kann.

Nach Ihrer Beschreibung kann ich davon ausgehen, dass Sie die 3. Option befolgt haben ... aber bitte klarstellen.

In diesem Fall wird das Layout nur für die Kategorie verwendet, die Sie mit Ihrem benutzerdefinierten Menüpunkt ausgewählt haben.

Der Versuch, die Unterkategorien-Links mit dem &layout=customlayout Zu "tricksen", ist ein fairer Versuch und sinnvoll. Eigentlich wäre &layout=template:customlayout Näher dran - aber das geht auch nicht.

Irgendwann in der Vergangenheit (vor ungefähr einem Jahr) habe ich mich eingehender damit befasst und festgestellt, wie es funktioniert und warum es so nicht funktionieren kann, aber ich erinnere mich jetzt nicht genau an die Gründe dafür. Meine allgemeine Schlussfolgerung war, dass ich hier und da meine benutzerdefinierte MVC mit verschiedenen Anpassungen dafür erstellen musste. Doch seitdem hat sich vielleicht einiges geändert.

In jedem Fall ist es jedoch möglich, das zu erreichen, was Sie möchten, und es kann recht einfach sein. Es hängt ein wenig von Ihrer Gesamtkonfiguration ab, aber hier ist, was Sie tun können:

Ihre Override-Optionen

  • Angenommen, Sie haben die dritte Option von oben ausgeführt, klonen Sie einfach das customlayout.php In Ihrem Überschreibungsordner und benennen Sie es in customlayoutsubs.php Um. Erstellen Sie bei Bedarf ähnliche Überschreibungen für die anderen TMPL-Dateien dieses Layouts. Gehen Sie dann in Ihrem Backend zu den Kategorien, die Sie für dieses Layout verwenden möchten, bearbeiten Sie sie und wählen Sie in deren layout option (Unter der Registerkarte Options) diesen customlayoutsubs.php Aus. Jetzt verwenden die Unterkategorien dieses neue Layout, das mit Ihrem alternativen Menüpunkt customlayout.php identisch ist.

  • Falls dies nur ein Abschnitt eines Kategorie-Blogs ist, den Sie auf Ihrer Website haben, benötigen Sie keinen alternativen Menüpunkt. Erstellen Sie einfach Ihre Außerkraftsetzung (erste Option) und lassen Sie alle Kategorien diese verwenden.

  • Wenn Sie nur einige Kategorien benötigen, um dieses Layout zu verwenden, erstellen Sie nur ein alternatives Layout (nicht mit Menüelement) und weisen Sie dieses Layout diesen Kategorien zu.


Einige abschließende Gedanken.

Ich bin der Meinung, dass die Übersteuerungsfähigkeiten in Joomla tatsächlich poliert und verbessert werden müssen. Weisen Sie beispielsweise einer übergeordneten Kategorie eine Layoutüberschreibung zu, und können Sie diese über die Einstellungen an die untergeordneten Kategorien vererben. Eine weitergehende Unterstützung für alternative Menüelemente, wie oben beschrieben, ist jedoch hilfreich.

Sinnvoll wäre es auch, wenn es auf Menüpunktebene eine Möglichkeit gäbe, solche Einstellungen vorzunehmen.

Auch wenn all dies Verwirrung hervorruft, gibt es immer noch viele Optionen, um großartige Dinge zu erreichen.

0
FFrewin