Schau mal hier Aktueller Stand loading="lazy"
Beiträge von neoman666
-
-
Ich meine die Anzeige im Frontend. Am besten wäre es, dies mit einem Menüpunkt zu verknüpfen. Beim Modul "Beiträge - Kategorie" würde mir eine Pagination fehlen, wenn der Autor sehr viele Beiträge hat.
-
Hi,
ist es in Joomla möglich, alle Beiträge eines Autors anzuzeigen? Die Beiträge befinden sich dabei in unterschiedlichen Kategorien.
Kann sein das ich Tomaten auf den Augen habe oder aber es gibt so eine Funktion gar nicht, deswegen die Frage.
MfG neoman
-
Leider reicht mir der Override der message.php nicht aus, da ich auch die HTML-Struktur der message-Boxen etwas anpassen muss. Also muss ich zwangsläufig in die messages.js rein. Ein guter Anfang wäre schon mal, wenn ich das
in einen div umwandeln könnte, so z.B.
In der messages.js gibt es die Zeile
Ersetze ich das 'joomla-alert' durch 'div', funktioniert mein Vorgaben schon zur Hälfte. Schönheitsfehler ist, das nach der Umbenennung der Close-Button nicht mehr funktioniert bzw. ganz verschwunden ist.
Ich weiß dass das komplexe Javascript-Funktionen sind und man das nicht mal so schnell hier mit ein paar Beiträge lösen kann, aber einen Versuch war es dennoch wert. Ansonsten muss ich halt nach einer anderen Lösung suchen.
-
I- n Joomla 4 sind die zugehörigen JS-Funktionen saberer abgetrennt und man muss mit der core gar nichts mehr machen. In Zeiten von Web Asset Manager und Override-Möglichkeiten in der joomla.asset.json, würde ich da ansetzen.
- Die messages.js in den Template-Assets-Ordner/js/ kopieren. Erst mal noch nicht die min!
- In der joomla.asset.json des Templates den Override zusätzlich mit rein (beachte das geänderte "uri"):
Das hat erstmal prinzipiell funktioniert. Somit kann ich wenigstens die messages.js overriden. Nun hänge ich aber in der messages.js fest, da ich von js nicht so viel plan habe.
Folgende Struktur ezeugt Joomla:
Code
Alles anzeigen<joomla-alert type="danger" close-text="Schließen" dismiss="true" style="animation-name: joomla-alert-fade-in;" role="alert"> <button type="button" class="joomla-alert--close" aria-label="Schließen"><span aria-hidden="true">×</span></button> <div class="alert-heading"> <span class="error"></span><span class="visually-hidden">Fehler</span> </div> <div class="alert-wrapper"> <div class="alert-message"> Das Formular kann nicht abgeschickt werden, da ihm die erforderlichen Daten fehlen.<br>Bitte die markierten Felder korrigieren und erneut versuchen. </div> </div> </joomla-alert>
Da ich ein auf Bootstrap 5 basierendes Template nutze, würde ich folgende Struktur benötigen.
Code<div class="alert alert-danger alert-dismissible fade show" role="alert"> <span class="fw-semibold">Danger alert:</span> Dismiss me by clicking the close button on the right. <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> </div>
Wie also müsste die messages.js aussehen, damit ich die neue Struktur bekomme?
-
Hi,
ich suche einen Weg, um die Joomla eigenen System Messages Boxen umzuschreiben. Dabei möchte ich die HTML-Struktur selbst anpassen. So wie ich das bis jetzt analysieren konnte, wird die HTML-Struktur in einer Javascript-Datei von Joomla generiert. Das müsste nach meinen Recherchen die Datei media/system/js/core.min.js oder die Datei media/system/js/messages(-es5).min.js sein. Kann aber auch sein ich täusche mich und es wurde inzwischen etwas geändert.
Wie kann ich nun am besten die Messages-Boxen anpassen?
MfG neoman
-
Ok, habs gefunden. Den Schalter findet man nicht in den allgemeinen Optionen zur Komponente, sondern im Smartsearch Menuitem unter dem Tab "Erweitert".
-
Hi,
ich habe ein Update von 4.2.9 auf 4.3 gemacht. In Version 4.3 soll man bei der Smartsearch ein Sortierfeld im Frontend aktivieren können. Dabei ist mir aufgefallen,
das ich dieses Feld im Backend nicht zuschalten kann. In den Optionen zur Smartsearch-Komponente im Backend fehlt der Schalter "Sortierfelder anzeigen". Oder ich bin bilnd oder
der Schalter befindet sich an einer ganz anderen Stelle.
Kann das jemand nachvollziehen?
MfG neoman
-
Sofern die Karte per iFrame geladen wird: https://coolcat-creations.com/…joomla-modul-ccc-twoclick
Beim Einbinden von OSM in Verbindung mit Leaflet wird kein IFrame verwendet. Daher wird das Plugin leider nicht funktionieren. Trotzdem danke für das Plugin, vielleicht brauche ich es ja mal für was anderes.
Gibt es noch andere Lösungen?
-
Hi,
ich suche nach einer Möglichkeit OSM- bzw. Leaflet-Karten DSGVO-konform und ohne Einwilligung bzw. Consent-Tool in einer Webseite einzubinden. Die Problematik wurde schon mehrfach diskutiert, aber immer ohne Lösung. Lösungen gibt es schon, jedoch sagen mir die meisten nicht zu,
Eine Lösung wäre, ein Consent Tool für die ganze Webseite zu schalten. Kommt für mich nicht in Frage.
Eine andere Lösung wäre, die Karte zu blockieren und erst freizugegben, nachdem man dies expliziert durch einen Klick freigegeben hat. Hier ein Beispiel. Wie könnte ich soetwas umsetzen. Ist ja nicht Joomla-spezifisch. Kennt vielleicht jemand ein Script, womit man dies umsetzen kann?
MfG neoman
-
Ok, daraus schlussfolgere ich, das es nicht geht.
Danke für den Hinweis.
-
HI,
ich habe ein Frage zur URL-Generierung. In Joomla wird die URL ja m.W. nach durch die Menüstruktur generiert.
Habe ich z.B. folgende Menüsturktur:
Home
Deutschland
---Brandenburg
------Potsdam
und rufe den Menüpunkt Potsdam auf, wird mir folgende URL durch Joomla generiert:
/deutschland/brandenburg/potsdam
Nun meine Frage: Kann man hier irgendwie eingereifen. z.B. das in der URL das "brandenburg" nicht vorkommt? Also das die URL folgendermaßen aussieht:
/deutschland/potsdam
MfG neoman
-
Hi,
ich habe mir ein Template selbst geschrieben auf Basis von Bootstrap 5. Im Head-Bereich der Seite lade ich mitteln den Web Asset Manager von Joomla 4 meine benötigten CSS und JS-Dateien. Soweit, sogut.
Nun lad aber Joomla auch gewissen CSS und JS-Dateien, die ich meiner Meinung nach nicht benötige. Diese werden durch Joomla-Core Erweiterungen geladen. Hier ein paar Beispiele.
Code<link href="/joomla/media/mod_languages/css/template.min.css?5acbe2dff0101a088c32b8f438974e98" rel="stylesheet"> <link href="/joomla/media/vendor/joomla-custom-elements/css/joomla-alert.min.css?0.2.0" rel="stylesheet">
Code<script src="/joomla/media/system/js/core.min.js?3b2c7481f479d57ca6a59403341a2e378a288779"></script> <script src="/joomla/media/com_finder/js/finder-es5.min.js?14e4c7fdce4ca11c6d12b74bad128529a294b183" nomodule="" defer=""></script> <script src="/joomla/media/system/js/messages-es5.min.js?42aff9798f66753bdb448b926baf2140f17f2c07" nomodule="" defer=""></script> <script src="/joomla/media/com_finder/js/finder.min.js?c8b55661ed62db937b8d6856090adf9258c4a0fc" type="module"></script> <script src="/joomla/media/system/js/messages.min.js?7425e8d1cb9e4f061d5e30271d6d99b085344117" type="module"></script>
Meine erste Frage wäre, wozu all diese Dateien benötigt werden? Die CSS-Dateien brauche ich jedenfalls nicht.
Zweite Frage: Wie werde ich diese Dateien los?
MfG neoman
-
Nochmal zum Thema. In einem ganzen normalen Joomla-Artikel funktioniert das native lazy-loading. Habe einfach folgende Zeile eingefügt.
Nun verwende ich aber auch Module, z.B. mod_category, wo ich mir durch ein Override die Artikelbilder (Intro und Full Image) ausgeben lasse. Hier funktioniert das lazy-loading nicht, warum auch immer. Die Bilder werden sofort geladen, obwohl diese gar nicht im Viewpoint sondern ganz am Ende der Seite sind.
Warum das so ist kann ich mir nicht erklären. Die Bilder in den Modulen werden genau so wie im Artikel selbst eingebunden, also mit dem selben Code wie oben gezeigt.
Wo könnte hier der Fehler liegen?
MfG neoman
-
Gibt es bei meinen Test nicht. Was nutzt du für ein Lazy-load-Script ohne Joomla?
Ich nutze kein Script, sondern die Brwoser-interne lazy-loading-Funktion. Also so hier z.B.:
-
Woher weißt du das denn? Geladen werden sie schon deutlich bevor sie in den Viewport kommt.
Wenn ich mit Firefox in der Netwerkanalyse mit Filter "Grafiken" bin, sehe ich, dass einige Bilder auf einem Desktop-Bildschirm schon da sind, obwohl noch nicht im Viewport. Wenn ich dann ganz langsam runterscrolle, sehe ich, dass weitere Bilder ebenfalls früher nachgeladen werden.
Das entscheidende ist, dass Bilder noch nicht geladen sind, wenn sie noch "ziemlich weit weg sind."
Wenn du dein Bildbeispiel also sehr weit unten auf die Seite setzt. Netzwerkanalyse > Grafiken anschaust, sollte es erst mal nicht in der Liste sein.
Genau so habe ich das überprüft. Firefox -> Entwicklertools -> Netzwerkanalyse. Dort sehe ich, das bereits alle Bilder geladen sind, obwohl ich noch gar nicht gescrollt habe.
Ich habe mal ohne Joomla eine einfache HTML-Seite erstellt, dort ein paar Bilder eingefügt und dann lokal getestet. Auch hier werden alle Bilder schon im Voraus geladen, obwohl ich noch gar nicht gescrollt habe. Lade ich das ganze auf meinem Webspace hoch, funktioniert das ganze.
Gibt es da einen Unterschied zwischen lokal und onilne?
-
Hi neoman!
Nein, die Standardeinstellung meines Plugins ist das von dir gewünschte automatische Hinzufügen des loading="lazy" Attributs zu jedem Bild, welches du nicht über die Einstellungen ausschließt (Unterstützte Nachladelösungen: Natives Laden auf Browser-Ebene für moderne Browser (nur Pro-Version)". Als Alternative sind noch 2 JavaScript Bibliotheken eingebaut, die du aber explizit auswählen musst, wenn du möchtest.
Hallo Viktor,
sorry, wenn ich hier dein Plugin falsch beschrieben habe, das war keine Absicht sondern leider Unwissenheit. Du hast es zum Glück richtig gestellt.
MfG neoman
Joomla 4 hat das mittlerweile nahezu überall "automatisch" drinnen. Setzt aber voraus, dass man mit Joomla-Hausmitteln arbeitet bzw. die Bilder mit Joomla-Hausmitteln eingesetzt hat (weie oben ja schon gesagt). Einleitungs- und Beitragsbilder z.B. müssen dann auch ein spezifisches Joomla-eigenes JLayout nutzen bzw. ein entsprechend angepasstes nutzen, wenn ein Template das überschreibt. Joomla-Hausmittel verwenden im letzten Schritt https://github.com/joomla/joom…uts/joomla/html/image.php
Was aber immer nur dann entsprechend funktionieren kann, wenn so ein "komischer Wurm" am Bildpfad hängt.
Also: Jain
Manche Bilder per se automatisch, ohne, dass man was mitbekommt oder speziell einstellen muss, andere nein.
Und das o.g. Plugin auch nicht überall, aber nahezu. Bei einem "Eigenen Modul" kann man "Inhalte vorbereiten" aktivieren, wenn om Editor ein Bild ist und das Plugin greift zu. Andere Module haben dieses Feature vielleicht nicht oder sind noch nicht auf aktuell möglichem Stand, weil es auch andere Hausmittel-Wege gibt, die man in sein Werk integrieren könnte.
Das Plugin setzt kein width und height, was aber verständlich ist, mindestens der Seiten-Performance wegen, wenn es jetzt auch noch diese Werte, wenn sie fehlen, ermitteln würde.
Man kann nicht alles haben
Und ich bin froh, dass der Joomla-Core da (noch) nicht zu radikal eingreift, sondern noch überschaubar "aushebelbar".
Vielen Dank für deine ausführliche Anleitung, die mir sehr geholfen hat. Jedoch scheint das lazy-loading aus irgend einen Grund nicht zu funktionieren, alle Bilder werden "eager" geladen.
Was muss ich beachten? Meine Zeile sieht z.B. so aus:
Das Bild wird aber nicht erst geladen, wenn es in den Viewport komt, sondern schon bei Seitenaufruf. Was mache ich falsch, bzw. was habe ich vergessen?
Kann es sein das die Browser-interne lazy-loading Funktionalität nicht lokal funktioniert? z.B. unter Xampp?
-
Genau. Das funktioniert. Aber nur, wenn man den media Manager von Joomla für das Einfügen verwendet.
Ich kann diese Funktion nirgends finden.
Wenn du mit dem Editor die Schaltfläche 'Medien' anklickst und dann ein Biuld einfügst, erscheint es.
Danke, das habe ich gefunden.
-
Also fügt Joomla nicht automatisch zu jedem <img> das loading="lazy" hinzu?
Man muss dies entweder händisch im Editor machen oder das oben genannte Plugin verwenden. Hab ich das so richtig verstanden?
Es sollte doch das mal in den Joomla-Core integriert werden, anstatt das mit dem Plugin, so habe ich das jedenfalls mal irgendwo gelesen.
-
Wo finde ich die Checkbox "Bild wird mit lazyload geladen"? Ich kann diese im Media Manager nirgendwo finden.