Beiträge von Re:Later

    0 Call to undefined method Joomla\CMS\Application\AdministratorApplication::isAdmin()

    Dieser Fehler wurde immer wieder mal bemeckert, dass der jetzt in Joomla 4 so häufig zu sehen ist und man in Joomla 4 keine rückwärtskompatible Lösung eingebaut hat.


    Andererseits: Der Fehler ist so stinkleicht zu fixen/vermeiden und Entwickler sind da schon in der Schuld, wenn sie das für Ihre Erweiterungen nicht gemacht haben sollten. Weil die "neue Variante" auch unter Joomla 3 schon lange funktioniert.


    Aaaber: System - SP Cookie Consent for Joomla 4 enthält diesen Fehler nicht.


    UUUND: Auf der von dir verlinkten Seite steht explizit:

    Zitat

    Notice! Please disable that plugin before Joomla 4 upgrade process, and install the extension version compatible with the new Joomla only

    Wie kommt man an diese Informationen?

    Zeit und Schweiß. Ich probiere halt rum. Aber immer nur auf bestimmte Änderungen, die ich mal probieren will, ausgerichtet. docs.joomla.org korrigiere/ergänze ich nur selten mal, aber selber nutzen tue ich sie fast gar nicht mehr ;-)


    Unser Thema hier ist auch viel zu komplex (oben reiße ich ja nur an), was einer der ersten Kritikpunkte an diesem "Zeugs" war, dass man da sinnvoll mal nebenbei ein Tutorial schreiben könnte. Entweder wird es viel zu lang, was ermüdend für Leute ist, die ja "nur mal eben"... oder es ist viel zu kurz und "wissenschaftlich", weil man das nötige Basis-Wissen schon voraussetzt.


    Nur nebenbei: Das Ganze eskaliert zusätzlich, weil ja mittlerweile pro CSS-Datei 3 Varianten vorliegen, wer genau hinschaut. Wenn man den DEBUG-Modus aktiviert, um garantiert die unminifizierte zu laden, wird zu viel zusätzlicher Kram geladen und sogar die Reihenfolge teils geändert, so, dass das nicht wirklich immer eine praktikable Lösung ist.


    Und JavaScript-Dateien bis zu 6. Einen old-fashioned Override zu erstellen, ist erst mal Forschungsarbeit. Ginge aber mit der joomla.asset.json "bequemer". Hat man nun aber ein Template, dass bei Updates die Datei wieder überschreibt ...


    Und zu Klassen finden, user.css etc. hat JoomlaWunder ja schon gesagt. Wer was ändern will, muss sich halt mit Inspektor einarbeiten oder spezifisch fragen. Ein Problem dabei ist, dass zwar vieles auf Bootstrap 5 basiert (was hervorragend dokumentiert ist), aber nicht wirklich Bootstrap 5 (wie dokumentiert) ist. Anders: die meisten BS-5-Klassen tun schon wie sie sollen, aber werden nicht immer auch im Template verwendet.


    Glück hat man, dass Cassiopaia jetzt nicht auch noch SourceMaps verwendet. Dann muss man nämlich auch noch den Browser-Inspektor umkonfigurieren ;-)


    Zu user.css allgemein: Man sollte nicht vergessen, dass das eine zusätzliche Datei ist, die geladen wird. Manchmal ist es vielleicht doch besser(?), einfacher(?) mit einer Kopie des Templates zu arbeiten und direkt in den template.css zu arbeiten (????). Zumindest, wenn man größere Änderungen macht(???).


    Cassiopaia war für mich aber eh nie ein Thema. Ich habe das nie gemocht ;-) Nur zum Kaputtmachen bei Tests und Rumprobieren ;-)

    Joomla 4 lädt automatisch die .min-Variante, wenn eine existiert.


    Ist Debug-Modus in der Konfiguration aktiv, lädt Joomla die nicht-min.


    Dabei ist es egal, welche Variante man in seinem Code "angefordert" hat.

    (Was mich ziemlich nervt manchmal.)


    rtl heißt rechts-nach-links. Diese wird also nur für rtl-Sprachen geladen.


    In der index.php findest diese Zeile:

    Code
    $wa->usePreset('template.cassiopeia.' . ($this->direction === 'rtl' ? 'rtl' : 'ltr'))
    ...

    Die fordert also das entsprechende "preset" an, je nachdem ob rtl- oder ltr-Sprache.

    Sagen wir mal es ist rtl.


    In der joomla.asset.json des Templates findest für dieses rtl-"preset" den Block:

    Code
    {
    "name": "template.cassiopeia.rtl",
    "type": "preset",
    "dependencies": [
     "template.cassiopeia.rtl#style",
     "template.cassiopeia#script"
    ]
    }

    Die "dependencies"-Angaben sorgen dafür, dass diese beiden Blöcke verwendet werden:

    Code
    {
    "name": "template.cassiopeia.rtl",
    "description": "The css file to be used when the site is right to left (RTL).",
    "type": "style",
    "uri": "template-rtl.min.css",
    "dependencies": [
     "fontawesome"
    ]
    }

    Die user.css wird über diesen Block angesprochen:

    Code
    {
    "name": "template.user",
    "description": "A file where a user can add their own css.",
    "type": "style",
    "uri": "user.css",
    "dependencies": [
        "template.active",
        "template.active.language"
    ]
    }

    Hier sind die dependencies eher unter "verquaste Denke" einzuordnen ;-) , also was anderes als in dem "preset" oben. Normalerweise werden dependencies vor dem jeweiligen Block automatisch mitgeladen. Im obigen Beispiel wird z.B. auch immer "fontawesome" geladen.


    In der index.php findest dazu

    Code
    ->useStyle('template.user')

    Sie ist also rtl-, ltr-unabhängig.


    Wenn du entsprechende user-rtl.css usw. verwenden, musst halt die joomla.asset.json in einer Kopie des Templates anpassen. Vielleicht in den rtl-, ltr-"presets" je eine zusätzliche Dependency oder so. (Mach ich nach Lust und Laune).


    Und dann halt analog oben für beide ein "type":"style"-Block in die joomla.asset.json.


    ---- oder verzichtest und lädst sie halt old-fashioned ("joomla-3-like"). anhand

    Code
    $this->direction

    -Ermittlung.

    Wenn ja, mit www oder ohne ?

    Das ist egal, wofür du dich entscheidest. Reine Geschmackssache Ich habe mich kürzlich für ohne entschieden, weils einfach kürzer ist und so auch auf schmalen Bildschirmen noch reinpasst. Hat sich dann aber als Schuss nach hinten erwiesen, aber das ist ein anderes Detail-Thema. Muss dich nicht tangieren, außer du hast aktive Subdomains zur Hauptadresse, die auch eigenständig suchmaschinenrelevant sind. Dann nimm lieber mit www für die Hauptdomain.

    Ob es auch mit entpacktem Ordner funktionieren müsste, weiß ich nicht.

    eigentlich nicht so gedacht, aber man kann theoretisch auch die einzelnen ZIPs aus dem packages-UnterOrdner installieren, wenn die der clevere Mac nicht auch ungefragt entpackt ;-) . Aber es hat schon seinen Sinn, dass man das Paket-ZIP installiert, weil sich darin eben ein PHP-Script befindet, dass nur dann bei der Installation gestartet wird. Ob es wichtig ist, weiß ich nicht. Habe es gestern nur kurz überflogen.

    Denke ich mir so:

    Du stellst im "echten" Startseiten-Menüeintrag die Einstellung "Im menü anzeigen" auf "Nein".

    Dann legst du einen Menüeintrag vom Typ "System-Links > Menüeintragsalias" an, der als Ziel die "echte" Startseite hat.

    Der Eintrag im "Alias"-Feld des zweiteren ist egal. Kannst sonstwas eintragen nur nicht das selbe wie im "echten" Menüeintrag.


    Bleibt für mich nur noch die Frage, warum das bei mir klappt, aber bei dir nicht. Das mit der ID meine ich. Egal! Joomla ist eben ein sonderbares Wesen ;-)

    Prüfen kannst noch die Einstellung der Joomla-Konfiguration > Server > Datenbank > Typ, ob umstellen hilft, wobei du nicht PostGre wählen solltest, sondern was mit MySqli.


    ANsonsten: Wirst vielleicht nicht gerne hören und vielleicht hat ja jemand anderes hier eine bessere Antwort. Ab dem Moment, wo man solche AKtionen wie im verlinkten Thread durchführen muss bei einem "handelsüblichen" CMS (Joomla 4) plus Erweiterung und der Provider oder Erweiterungshersteller nicht helfen kann/will, würde ich den Provider, selten mal die Erweiterung, wechseln, weil eben nicht Joomla-4-ready.


    Es ist zwar auch eine Angelgenheit von Joomla 4, weil hier einige Standard-Einstellungen von MySQL bzw. MariaDb jetzt eben auch in Joomla 4 übernommen wurden, was manche Datenbank-Abfrage etwas komplizierter macht, aber ist halt mal so.


    An so eine Konfigurationsmöglichkeit zu kommen wie im verlinkten Thread ist in den allerseltensten Fällen für Benutzer wie du und ich möglich.


    Und, wenn es im Code von Joomla oder Erweiterung möglich sein sollte, läuft das auf Hacks hinaus, die du bei jedem Update wieder einbauen musst.

    Du kannst in Updatequellen den Wiederherstellen-Knopf versuchen. Vorher sollte aber jede andere Quelle von JCE gelöscht werden, was natürlich nicht geht, wenn keine da ist ;-)


    Ich habe sie bei mir mal gelöscht und nach Wiederherstellen wird sie auch korrekt wieder angelegt.



    EDIT: In Joomla 3 funktioniert das nach dem selben Schema. Mein Test war in Joomla 4. Aber jetzt auch in Joomla 3 gedingst.