Layout-Zuweisung

  • Joomla Version
    5.3.1
    PHP Version
    PHP 8.4.x
    Hoster
    lokal

    Hallo,

    ich habe in meinem Template für Artikel (in html/com_content/article/) neben "default.php" mit "fullwidth.php" eine zweite "Layout-Datei" angelegt, die ich gerne einer Reihe von Artikeln zuweisen möchte. Leider ignoriert Joomla (Version 5.3.1.) diese Zuweisung. Die Datei selbst funktioniert an sich (also wenn ich die Dateiinhalte von "default.php" und "fullwidth.php" vertausche, dann wird alles entsprechend korrekt angezeigt), sodass Joomla keinen Grund hätte, zum Standard-Layout zurückzukehren – insofern gehen mir die Ideen aus, woran das Ignorieren der Zuweisung liegen könnte.

    Hat jemand vielleicht einen Tipp, was ich noch nachprüfen kann?
    Vielen Dank!

    Lg,

  • Du erstellst ein Override für die default.php. Ok!
    Aber gibt es überhaupt diese fullwidth.php? Nur dann kannst du auch ein Override für diese Datei erstellen, welches dann auch von Joomla verwendet wird.

    Wie machst du das mit der Zuweisung?

  • Hi,

    JoomlaWunder Ja, die Datei gibt es (sie wird bei den Override innerhalb von Joomla als auch am FTP-Server angezeigt). Ich habe sie nach dem Erstellen eines zweiten Overrides von default_Zahlenkombi.php auf fullWidth.php lediglich umbenannt. Die Zuweisung erfolgt bei Artikel -> Optionen -> Layout.

    CurlY BracketS Auswählen kann ich sie ja auch, nur ignoriert Joomla diese Auswahl eben -- es wird trotz gespeicherter Neuzuweisung dennoch mit dem Default gearbeitet.

    Lg,

  • Vanbrugg Ja, die Datei liegt direkt "neben" der vom System verwendeten "default.php" im richtigen Template (wie gesagt: wenn ich die Dateinamen vertausche, dann wird die Neue auch korrekt und ohne Fehlermeldung verwendet, daher bin ich auch sicher, dass sie inhaltlich in Ordnung ist).

  • Sieger66 Das Template ist komplett "Marke Eigenbau", und bis auf diverse Frameworks wie Bootstrap / JQuery / etc. werden keine Frameworks eingebunden.

    Allerdings bin ich inzwischen mittels Try and Error auf die Lösung gestoßen: Der Dateiname darf keinen Großbuchstaben beinhalten – wer auch immer das warum so einprogrammiert hat ... mit "fullwidth.php" anstatt "fullWidth.php" funktioniert es plötzlich ...

    ( firstlady Bei Layout innerhalb eines Templates dürfte das nicht nötig sein, sonst müsste es für die Standards dort ebenfalls welche geben.)

    Vielen herzlichen Dank an alle! :saint:

  • Davon war aber in deinem Eröffnungsbeitrag keine Rede, da heisst es explizit 'fullwidth.php ...

    Stimmt -- weil ich gestern noch nicht einmal auf die Idee gekommen bin, dass das überhaupt eine Rolle spielt (ich dachte, Joomla würde es einfach so übernehmen wie es ist; also ohne einem zwischengestalteten "strtolower" o.ä.), also hatte ich es einfach nicht beachtet ... wieder etwas Neues gelernt ;)

  • Hmmm ... also bei Artikeln funktioniert jetzt alles einwandfrei und ich kann andere Layouts korrekt auswählen, dafür ergibt sich nun bei html/com_content/category/ dasselbe Problem wie am Anfang für Artikel beschrieben: Es wird immer "blog.php" verwendet statt der in der Kategorie bei Optionen / Layout auswählten "alternative.php" (inkl. aller zugehörigen "Unterdateien"). Dieses Mal habe ich mich aber an die Kleinschreibung der Dateinamen gehalten.

    Da das Template eben "Marke Eigenbau" ist, kann ich leider mit kaum mehr Details aufwarten. Ich benötige (je nach gewählter Kategorie) aber zwei verschiedene Darstellungsoptionen für den Kategorienblog.

    Gibt es noch etwas, was bei der Erstellung von alternativen Layouts zu beachten ist? Irgendwelche "versteckten Schalter" (den XML-Hinweis habe ich nicht vergessen, aber ich habe keine Vorlage dafür bei den Standard-Overrides gefunden, an der ich mich orientieren könnte?) oder Einstellungen oder offensichtliche Dummheiten (so wie vorhin die Kleinschreibung), die man noch übersehen haben könnte?

    Bei "categories" ist eine Alternativauswahl scheinbar nicht möglich, aber bei "category" sollte es schon gehen. Vielleicht hat jemand doch noch eine Idee?

  • D.h. obwohl die Standard-Kategorie keine baucht ... (im Verständnis stehe ich zwar immer noch auf der Leitung, weil es für den Artikel nicht notwendig war -- aber das steht auf einem anderen Blatt ...) -- in mancher Hinsicht ist mir Joomla ein ewiges Rätsel ;)

    Ich habe jetzt eine entsprechende XML gegoogelt, angepasst und ins Template hineinkopiert:

    XML
    <?xml version="1.0" encoding="utf-8"?>
    <layout file="category/test">
       <name>Testkategorienansicht</name>
       <description>Beschreibung von Testkategorienansicht</description>
       <fields name="request">
           <fieldset name="request">
               <field name="layout" type="hidden" default="test" />
           </fieldset>
       </fields>
    </layout>

    Laut Google-Anleitung soll sie ins Standard-Template-Verzeichnis, unter dem Namen "category_test.xml". Aber weder dort noch im "category"-Verzeichnis (nur als "test.xml") hat die Datei etwas geändert: Ich kann das Layout (erkannt wurde es ja auch vorher schon) zwar auswählen, aber Joomla ignoriert es weiterhin.

  • Hier habe ich ein Override / Alternatives Layout beschrieben: https://magazine.joomla.org/all-issues/jun…-with-bootstrap

    In dieser Anleitung überschreibst du doch das Standard-Layout und fügst kein neues hinzu? Oder liegen "accordion.php" und "accordion.xml" dort parallel zu "blog.php" und "blog.xml" (bzw: Diese Datei existiert in meinem Override nicht? Und sie war auch früher nie da?)?

    Oder liegt eine andere Ordnerstruktur als
    /html/com_content/category/blog.php
    /html/com_content/category/blog.xml (?)
    /html/com_content/category/accordion.php
    /html/com_content/category/accordion.xml

    vor?

    Das Standard-Blog-Layout habe ich bereits überschrieben und diese Anpassung soll ja auch bleiben; die Alternative soll zusätzlich verfügbar sein?

  • Ich habe diese Struktur in meinem Template:

    /html/com_content/category/accordion.php
    /html/com_content/category/accordion.xml

    Und die accordion.xml ist eine Kopie der blog.xml (die Kopie muss man händisch anlegen). Ich habe neue Parameter eingefügt. Das brauchst du nicht unbedingt. Wichtig ist den Titel zu ändern.

    Wenn du das standard Blog Layout überschreiben willst, hast du nur /html/com_content/category/blog.php in deinem Template

  • Jetzt hat es geklappt (halleluja!), solange ich im Menü dann nicht mehr den Kategorienblog, sondern eben "Test" auswähle -- das mit der XML und wie die zu verarbeiten ist hatte ich jetzt einfach ewig nicht verstanden.

    Vielen vielen Dank für die Geduld! :)

    Eine Frage beschäftigt mich aber weiterhin (jetzt aber aus reinem Interess): Beim Artikel kann ich problemlos weitere Layouts über Optionen=>Layout auswählen, die einfach neben der default.php "dahinvegetieren" (und es klappt auch), bei Kategorienblog hingegen ist dieses Feld genauso vorhanden, aber scheinbar ohne Funktion -- sondern man muss eine ganz neue Menüpunkt-Auswahloption schreiben statt in der gegebenen ein Layout auswählen zu können? Das macht einfach keinen Sinn für mich? Hat das einen Grund, dass das so unterschiedlich funktionert?