CSS Script Reihenfolge custom.css und anderen

  • Joomla Version
    4.2.9
    PHP Version
    PHP 8.1.x
    Hoster
    lokal

    Hallo Zusammen,


    ich erstelle ein eigenes Template. Im Template füge ich über den WebAssetManager meine eigenes custom.css ein:


    PHP
    // WebAssetManager
    $wa  = $this->getWebAssetManager();
    $wa->registerAndUseStyle('main', $tpath . '/css/custom.min.css');


    Auf der Webseite ist der SP PageBuilder Pro installiert, der auch eigene CSS Dateien mitbringt. Leider ist es nun so, dass auf der Webseite im HEAD zuerst meine custom.css und dann die css vom Pagebuilder und SimplePortfolio eingehängt werden:

    HTML
    <link href="/templates/knodel/css/custom.min.css?a1ee77a896ce463e95705e804c94c492" rel="stylesheet">
    <link href="/components/com_sppagebuilder/assets/css/animate.min.css?6a1b4107815badbaae88384a7a2fb60b" rel="stylesheet">
    <link href="/components/com_sppagebuilder/assets/css/sppagebuilder.css?6a1b4107815badbaae88384a7a2fb60b" rel="stylesheet">
    <link href="/components/com_sppagebuilder/assets/css/js_slider.css" rel="stylesheet">
    <link href="/components/com_sppagebuilder/assets/css/magnific-popup.css" rel="stylesheet">
    <link href="/components/com_spsimpleportfolio/assets/css/featherlight.min.css" rel="stylesheet">
    <link href="/components/com_spsimpleportfolio/assets/css/spsimpleportfolio.css" rel="stylesheet">

    Wie kann ich es umsetzen, dass meine custom.css immer als letzte CSS eingehängt wird?


    teccrow

  • Wenn es unflexibel sein darf und der Pfad fest steht hart in in Index pho schreiben.

    Da es dein spezilles Template ist, dürfte es auch mit Updates keine Probleme geben, da du ja für das Template-Update verantwortlich bist.

  • Du kannst mal das probieren. Setzt aber voraus, dass der Pagebuilder ebenfalls sauber den WAM verwendet.

    Code
    $wa  = $this->getWebAssetManager();
    $wa->registerAndUseStyle('main', $tpath . '/css/custom.min.css', ['weight' => 500000]);

    Das weight ist übertrieben, aber für ersten Test mal nicht schlecht, ob's überhaupt was tut.


    (es gibt noch halbes Dutzend weiterer Tricksereien mit dem WAM wie Reihenfolgen umregistrieren und/oder Assets "overriden" und/oder diversen anderen Kram, die aber (programmiertechnisch) so nervig sein können, dass ich dann auch lieber erst mal gleich den Vorschlag von Lui_brempt verwenden würde ;)

  • Es ist tatsächlich so, dass der Pagebuilder nicht den WebAssetsManager nutzt. Man kann sich die Assets, die über den Manager kommen, anzeigen lassen:

    PHP
    $wa  = $this->getWebAssetManager();
    echo '<pre>';var_dump($wa->getManagerState());echo '</pre>';

    So habe ich mein Custom Stylesheet nun hart in die index.php eingehängt.