Protostar user css

  • Hi Leutz
    hat schon einer von euch eine user.css zum laufen gebracht, damit man eigene Anpassungen nicht nach jedem Update neu machen muss :?:
    Meine Seite läuft auf Strato, Joomla 3.5.1
    Ich scheitere an einem Fehler 404 thinking
    Ergebnis ist:

    Zitat


    Der produzierte Link sieht für mich wie völliger Quatsch aus.


    Was stimmt da am Code nicht :?:

    Code
    // Check for a custom CSS file
    $userCss = JPATH_SITE . '/templates/' . $this->template . '/css/user.css';
    
    
    if (file_exists($userCss) && filesize($userCss) > 0)
    {
        $doc->addStyleSheetVersion('templates/' . $this->template . '/css/user.css');


    Vielleicht hat sich ja einer von euch schon damit beschäftigt und eine Lösung gefunden beer

  • Der produzierte Link sieht für mich wie völliger Quatsch aus.


    Was da nun bei dir schief geht, kann ich dir nicht sagen. Bei mir klappt das, zumindest bei einer "normalen Installation ohne Joomla in Unterordner". Leider hast du den Teil ja abgeschnitten, ob vielleicht Joomla in einem Unterordner?


    Probier mal eine diese Varianten:

    Code
    if (file_exists($userCss) && filesize($userCss) > 0){ $this->addStyleSheetVersion(JUri::root(true) . '/templates/' . $this->template . '/css/user.css');}


    oder


    Code
    if (file_exists($userCss) && filesize($userCss) > 0){ $this->addStyleSheetVersion(JUri::root() . 'templates/' . $this->template . '/css/user.css');}


    oder


    Code
    if (file_exists($userCss) && filesize($userCss) > 0)
    {
     $this->addStyleSheetVersion($this->baseurl . '/templates/' . $this->template . '/css/user.css');
    }


    Wobei die file_exists-Prüfung eigentlich unnötig ist, weil das addStyleSheet das eh noch mal macht. Und das filesize würde ich persönlich auch weglassen. Aber andere Baustelle.

  • Mit Änderung von Beispiel 1 läuft kommt kein Fehler mehr.
    Das liefert var_dump jetzt.

    Code
    Set for a custom CSS file :string(73) "/--/--/--/--/--/htdocs/ksv23999/templates/protostar/css/user.css"


    und für die Ausführung bei gefunden:

    Code
    On found for a custom CSS file :string(33) "/templates/protostar/css/user.css"


    Ach ja die Testumgebung ist natürlich kein Geheimnis, Subdomain mit eigener DB.
    Mit Bordmittel umgestellte 2.5.28 auf 3.5.1:
    http://www.nesselblatt-test.ksv-nesselblatt.de
    Ist natürlich nicht Stable, kann von Zeit zu Zeit natürlich Blödsinn anzeigen weil ich gerade daran werkle.
    Wie zum Beispiel jetzt an Responsive (Fluide) Tabellen a La "http://elvery.net/demo/responsive-tables/"
    http://www.nesselblatt-test.ks…/unsere-schuetzen-lm-2016

  • Hi addi
    sehe ich auch so, ist halt Auslieferungszustand.

    Code
    $doc->addStyleSheetVersion('templates/' . $this->template . '/css/user.css');


    Das wir dann wohl mit dem nächsten Bugfix auf etwas funktionierendem rasiert werden.
    Bis dahin nehme ich mal Beispiel 1 von Later.
    Wichtig ist mir eine funktionierende user.css
    Wie ich meine Anpassungen "siehe Top Left Image Navigation" in der index.php vor Überschreibung bei Update schütze, dafür habe ich derzeit nur eine manuelle Lösung.

  • Steht übrigens so im Protostar-Template.


    Ich habe gestern länger rumprobiert, weil ich den selben Verdacht hatte (deshalb ja auch meine Lösungsvorschläge), aber ich konnte den Fehler erst mal nicht reproduzieren.


    @Trubadix
    Hast du vielleicht das Plugin System - SEF deaktiviert? Das ist nämlich auch dafür zuständig, in solchen Links ggf. fehlende einleitende Slashes etc. einzusetzen. Zusätzlich besonders wichtig für Bilder und das src-Attribut für Bilder, die ja im Editor mit relativen Pfaden eingesetzt werden.

  • Hi Later
    solch Problemfälle wie SEF und Konsorten sind bei mir Grundsätzlich deaktiviert, da es ja allgemein bekannt ist das sie derartige Dinge produzieren.
    Vor der Umstellung schicke ich auch alles was ID > 1000 ist und nicht zwingend benötigt wird erst mal nach Hause und aktiviere dann nach der Umstellung Stück für Stück um einen Anhaltspunkt zu haben wo es knirscht.
    Einige Dinge sind je nach Seite aber lebensnotwendig und bereiten dann halt mehr oder weniger Kopfzerbrechen.
    Nun ja, das auch mal in einem Core-Element etwas nicht stimmt, dass ist nun mal so.
    Und man merkt dann schnell, man ist nicht allein!!

  • Wobei die file_exists-Prüfung eigentlich unnötig ist, weil das addStyleSheet das eh noch mal macht. Und das filesize würde ich persönlich auch weglassen. Aber andere Baustelle.


    Wo siehst du diese Überprüfungen? @Re:Later
    Weder hier: https://github.com/joomla/joom…ocument/document.php#L608 noch hier https://github.com/joomla/joom…ocument/document.php#L585 ist eine derartige Überprüfung eingebaut. Hab ich was übersehen oder wird das etwas höher / später abgefangen?


    Die filesize Überprüfung verhindert das eine leere Datei geladen wird (also sie existiert ist aber leer ;))


    Ich kann das Problem aber leider nicht nachstellen.


    Meine Umgebung:
    3.6.0rc
    Joomla im Unterverzeichnis: <domainroot>/dev/e36/
    user.css hier: <domainroot>/dev/e36/templates/protostar/css/user.css
    Inhalt der user.css:

    Code
    body.site {
    background-color: green;
    }


    Ergebnisurl im Sourcecode: <domain>/dev/e36/templates/protostar/css/user.css?2ccae8f8d44b375fd20d2b01f0468817
    Ergebnis im Frontend (klicken zum vergrößern):


    @Trubadix


    Bitte installiere einmal eine ganz frische Version von Joomla: 3.6.0rc (bitte nicht auf der Produktiven Umgebung!)

  • Produziert hast DU das, weil du ein elementares Core-Plugin deaktiviert hast ;)


    Das SEF-Plugin hat diesbzgl. einen irreführenden Namen. Ohne macht Joomla komische Sachen.


    In modernen Zeiten, wo dann auch noch picture-srcset-Sachen und ähnliches vermehrt dazu kommen (werden), kann man kaum darauf verzichten und sind via 1 Plugin zentral für die Joomla-Programmierer nachrüstbar.


    Ein Arbeiten mit Medien, im Editor bequem einzusetzen, kannst ohne das Plugin komplett vergessen.


    Lass es aktiviert.

  • Mhh
    ich dachte, da es sich um eine Testseite handelt reicht die Einstellung Mindeststabilität der Aktualisierungen Release Candidate RC reicht und er macht das automatisch.
    Sei es wie sei, ich lade mir mal das RC runter und spiele es ein.
    Wenn dann die Test-Seite kurzzeitig etwas verwirrt sein sollte, dann knirscht es halt und ich brauche noch ein wenig für die Rasur.

  • Wo siehst du diese Überprüfungen?


    Oh ja, hast Recht, wird auch mit falschem Pfad eingebunden. Weiß jetzt auch nicht, wie ich da drauf gekommen bin.


    EDIT:
    Ah doch, habe ich einfach durcheinandergebracht, weil ich öfters wegen des Prüf-Features

    Code
    JHtml::_('stylesheet', $file, ... );


    auch in Kombination mit $path_only = true, verwende, um in einem Rutsch zu prüfen, ob denn ggf. Overrides sonstwo vom User angelegt wurden, bevor ich einen Fallback lade, LESS starte oder sonstwas. Ist dann auch gar nicht in Templates...



    addStylesheet ist aus dem Template selbst natürlich der direktere Weg. Alles gut so wie es ist ;)

  • Auch das deaktivieren des SEF Plugins (System - SEF) hat keine Auswirkung auf die Wirksamkeit der user.css Wenn du auf 3.6.0rc bist kannst du uns Bitte deine Systemeinstellungen zukommen lassen?


    System -> Systeminformation -> "Als Text herunterladen" Diese Datei dann als Anhang hier mitgeben. ;)

  • SEF war schon zu 1.x Zeiten eine Katastrophe


    Wir reden vom SEF-Plugin, das nur auf Umwegen etwas mit den SEF-Einstellungen der Joomla-Konfiguration zu tun hat.


    Versteh auch deinen Kommentar nicht ganz. Ich fahr seit jeher gut mit dem Joomla-SEF-Features (außer Canonical ;) ), zugegebenermaßen nachdem ich mein Lehrgeld bezahlt habe und nun eben meine Joomlas von Anfang an sauber aufbaue (was das Backend sowieso viel übersichtlicher macht) und kleine Unschönheiten halt sofort ausmerze sobald sie in Suchmaschinen auftauchen.


    Und es tut sich ja auch was bzgl. SEF für kommende Joomla-Versionen (neuer Router), aber auch nicht so viel, dass man nicht selber weiterhin in der Pflicht wäre...
    (Ganz ganz nebenbei erwähnt: Manko ist eigentlich nur aus meiner Sicht, dass ich bei den Testanweisungen für die neuen SEF-Features auf GitHub nicht mehr so richtig durchblicke ;) also nicht so richtig meiner Testpflicht nachkommen kann, damit das vielleicht schneller in Stable-Joomla alles drin ist. Blick einfach nicht durch, welcher PR denn jetzt... Bin aber nicht alleine damit... Dafür testest ja du, damit alles besser wird, was schon unter 1.x Sch... war?).

  • Auch das deaktivieren des SEF Plugins (System - SEF) hat keine Auswirkung auf die Wirksamkeit der user.css


    Das ist nicht richtig. Ohne SEF-Plugin bleibt im href der relative Pfad erhalten wie vom Protostar in diesem Fall übergeben (templates/... ohne führenden Slash bzw. $baseurl).
    https://github.com/joomla/joom…s/protostar/index.php#L87


    Damit entsteht spätestens auf Unterseiten genau das von @Trubadix beschriebene Problem, dass der Browser die Base-URL der Seite vorne dranhängt.


    Statt example.org/templates/... => 200


    example.org/unterseite/templates/... => 404


    oder


    example.org/index.php/templates/... => 404


    etc.


    Selbes Spiel bei images und src, die bspw. direkt im Editor mit relativem Pfad (images/...) eingefügt werden.

  • Zitat

    Das ist nicht richtig. Ohne SEF-Plugin bleibt im href der relative Pfad erhalten wie vom Protostar in diesem Fall übergeben (templates/... ohne führenden Slash bzw. $baseurl).github.com/joomla/joomla-cms/b…s/protostar/index.php#L87


    Richtig aber (zumindest bei mir) funktioniert es trotzdem ohne das ich einen 404 Fehler hätte. Wie bekommt Ihr euren 404 ;)


    Wenn du möchtest kannst du ja noch einen Patch schreiben ich glaube der check ist aber in allen Templates gleich (Frontend und Backend) ;)

  • OK RC 3.6.0-RC liegt an und tut auf den ersten Blick auch nicht weh :thumbup:
    Mach mich jetzt mal dran meine Tabellen für's Smartphone brauchbar zu machen.
    Beispiel --> http://www.nesselblatt-test.ks…/unsere-schuetzen-lm-2016
    Ich arbeite mit dem Beispiel 1 von: http://elvery.net/demo/responsive-tables/#html-3 Ausblenden nicht so wichtiger Spalten.
    Muss nur die richtige Stelle in der user.css finden wo ich das zerwürgen kann :saint:


    Anbei die gewünschte SYSTEMINFO