Habe das hier angerissene Plugin für die explizite Freigabe per E-Mail von Auto-Updates veröffentlicht: Auto Update Approval Guard (AUAG)
Beiträge von Kubik-Rubik
-
-
Hallo hcohl,
du hast volle Kontrolle über die URL und kannst einen beliebigen Parameter setzen, um solche Klicks zu erkennen (zum Beispiel ga=1). Aber das brauchst du nicht, in der Regel erkennst du solche Aufrufe auch über den Auto-Tagging-Parameter gclid. Du könntest auch die utm_ Parameter als Erkennungszeichen verwenden.
Deine Idee mit einem separaten Popup-Fenster solltest du aber überdenken, besser wäre ein Onpage-Modalfenster.
-
Das Problem ist, dass die Ajax-Requests auf die Variante ohne www gehen. Wenn man deine Website aber mit www aufruft, dann kommt es zum besagten CORS-Fehler.
Stelle sicher, dass die Variante mit www auf die Hauptdomain ohne www umleitet (zum Beispiel mit einer .htaccess-Regel).
-
Hallo Stefan,
das funktioniert auch im Firefox nicht. Du hast ein CORS-Problem:
Erkärung und Lösung: https://developer.mozilla.org/de/docs/Web/HT…singAllowOrigin
-
Moin Dirk,
danke noch mal für die Zusendung, ich habe eine neue Version meines Wiederherstellungsskripts veröffentlicht. Im Changelog beschreibe ich auch das Kollation-Problem etwas genauer.
-
Hallo Dirk,
könntest du mir den Dump (am besten Link zum Komplettbackup) per Mail für eine Analyse zur Verfügung stellen?
Das kann man sicher abfangen und optimieren, damit es zu keinem Fehler kommt.
-
Hallo Christine,
natürlich ist das okay, aber meine Lösung ist ja nur ein Workaround, um den bereits fertigen String mit Hilfe eines Template Overrides zu manipulieren, damit man nicht die Core-Dateien anfassen muss.
Wenn man das im Core korrekt implementieren möchte, dann muss man entweder in die HtmlView (components/com_content/src/View/Archive/HtmlView.php) oder noch besser in das dazugehörige Model für die Jahre (\Joomla\Component\Content\Site\Model\ArchiveModel::getYears) eingreifen.
-
Hallo Shuffle,
du musst die normale default.php bearbeiten.
-
Hallo Kato,
wie hattest du den Verzeichnisschutz umgesetzt? Manuell?
Versuche es mal über die Weboberfläche von HostEurope: https://www.hosteurope.de/faq/cpanel-hos…rzeichnisschutz
Was dein anderes Problem betrifft:
Deine JS-Dateien können vom Browser wegen einer fehlerhaften Kodierung nicht gelesen und ausgeführt werden. Öffne doch mal diese Datei und schau, was der Browser dir ausgibt: https://www.emilfischerschule.de/media/system/js/core.min.js
-
Hallo Courtino,
es ist möglich, die Liste auch in einem Template Override zu manipulieren. Jedoch ist es etwas komplizierter, weil du da nur den fertigen HTML-String abgreifen kannst (wie Viviana es bereits sehr gut zusammengefasst hat) und nicht das Objekt selbst, das dieses Feld generiert.
Im Grunde kannst du alle Strings beliebig mit Hilfe von regulären Ausdrücken manipulieren. In diesem Fall haben wir ja stets eine vordefinierte Struktur, was uns die Sache wesentlich vereinfacht.
1) Erstelle ein Override für das Archiv-Template (im Template Manager dein Template auswählen -> Overrides estellen -> Komponenten -> com_content -> archive)
2) Suche die Zeile:
3) Erseze sie mit folgendem Code:
PHP
Alles anzeigen<?php $html = $this->form->yearField; preg_match('/<option value=""[^>]*>' . Text::_('JYEAR') . '<\/option>/', $html, $placeholderMatch); preg_match_all('/<option value="(\d{4})">(\d{4})<\/option>/', $html, $yearMatches, PREG_SET_ORDER); $years = []; foreach ($yearMatches as $match) { $years[] = [ 'value' => $match[1], 'html' => $match[0], ]; } usort($years, fn($a, $b) => $b['value'] <=> $a['value']); $placeholder = $placeholderMatch[0] ?? ''; $optionsSorted = array_map(fn($y) => $y['html'], $years); $selectYear = '<select id="year" name="year" class="form-select">' . "\n"; $selectYear .= ' ' . $placeholder . "\n"; $selectYear .= ' ' . implode("\n ", $optionsSorted) . "\n"; $selectYear .= '</select>'; echo $selectYear; ?>Das war's schon!
-
Hallo Christine,
ich verstehe schon, wie das funktioniert. Mir ging es nur darum, ob man nach dem Klick in der E-Mail das Update direkt anstoßen muss oder ob das System es selber noch mal versucht.
Zu deiner Frage: David meinte damit, dass ein Entwickler, der so ein Plugin schreibt, sich nicht um den eigentlichen Update-Prozess kümmern muss.
-
-
Der verlinkte Pull Request würde genau das erlauben: man könnte ein Plugin programmieren, dass den ersten automatischen Updateversuch erstmal ablehnt und die Mail an den Admin verschickt. Klickt der auf den fraglichen Link, dann würde der zweite Updateversuch durchlaufen.
Hey David,
das Abfangen, Versenden der E-Mail und Verarbeiten des aufgerufenen Links ist klar.
Wie genau kann man aber diesen "zweiten Updateversuch" manuall im Plugin anstoßen? (sorry, habe mir die Implementation noch nicht im Detail angeschaut)
-
Habe es gerade mit der aktuellen JCH Optimize Pro und QCC Pro getestet. QCC Pro leert auch den JCH Cache bei allen Löschvorgängen komplett (manuell nach Klick, oder automatisch über CLI oder Events - Artikel- und Benutzerspeichervorgängen).
LG
-
Würde damit auch der JCH Optimize Cache geleert?
Hi oakmountain!
Es kommt drauf an, wo JCH den eigenen Cache ablegt. QCC Pro löscht den Cache an drei Stellen:
/administrator/cache, /cache und /media/cache -
Kubik-Rubik gibt es noch eine aktuelle Version für J5?
Nein, aber hier hat ein Benutzer bestätigt, dass diese Version auch in Joomla! 5 funktioniert: RE: Meine jos_session Tabelle hat über 100.000 Einträge innerhalb 24 Std
Könnte auch eine dedizierte Version für Joomla! 5 veröffentlichen, ist einfach anzupassen. Aber lohnt sich nicht als "Pro"-Version...
-
Moin Dirk,
das hattest du doch bereits vor ein paar Monaten und wir hatten es auch gelöst: Joomla Modul "Besucher - Online" zählt nur noch hoch seit Update von 5.2.2 auf 5.2.3
-
Hallo Qfe,
so eine automatische Generierung in leichter Sprache lässt sich sehr einfach über die OpenAI API generieren. Die Schnittstelle ist zwar kostenpflichtig, aber ein durschnittlicher Artikel wird mit dem aktuellen Modell weniger als 1 Cent kosten.
Ich habe das für die Generierung von Kurzbeschreibungen von Artiklen für den description Meta-Tag im letzten Update von EFSEO eingebaut. Dabei kam ich auf einen durchschnittlichen Testverbrauch von 0,5 Cents pro 10.000 Artikelzeichen. In deinem Szenario wird es geringfügig mehr, weil du ja keine Zusammenfassung, sondern eine vollständige Übersetzung als Rückantwort erwartest, was mehr Token verbraucht. Da es sich aber um einen einmaligen Prozess handelt (du speicherst die Übersetzung ja und musst sie nicht bei jedem Aufruf neu generieren), sind die Kosten vernachlässigbar.
Ich würde es so umsetzen: Ein Sytem-Plugin, das auf das Speicherevent von Artikeln hört. Wir das Event ausgeführt, prüft das Plugin, ob es sich um einen neuen Artikel handelt. Wenn ja, wird die Schnittstelle von OpenAI mit einem vorbereitetem Prompt aufgerufen und die Rückantwort als neuer Artikel gespeichert. Dabei kann man zum Beispiel den initialen Titel verwenden und einen Suffix wie "(Leichte Sprache)" hinzufügen. Man könnte den Artikel auch direkt in eine vordefinierte Kategorie abspeichern, usw.
Viel Erfolg!
-
Abend!
Habe das Skript ein bisschen optimiert und den Stream in Safari für Video-Dateien implementiert:
readmedia.php for Joomla 4 and 5readmedia.php for Joomla 4 and 5. GitHub Gist: instantly share code, notes, and snippets.gist.github.com
David, kannst du bei dir übernehmen, wenn du möchtest. -