Beiträge von Re:Later

    Da du aber sowieso diverse Nonce-Fehler hast, was Inline-Scripte und Inline-Stile anbelangt

    deshalb bekommt z.B. dieser rote und leere alert-Balken nicht das nötige CSS bzw. es ist dem Browser verboten, es auszuführen. eigentlich steht da nämlich (wenn Nonces deaktiviert sind und 'unsafe-inline' gesetzt ist):

    Code
    <div class="alert alert-danger error-note" style="display: none;"></div>

    Er ist also normalerweise versteckt, bis das Formular was anzuzeigen hat. Umgehen könnte das Visforms, wenn sie statt mit inline-styles mit CSS-Klassen arbeiten würden.

    Weiß ich dann auch nicht. Bei mir in der Free (vor wenigen Tagen installiert), ists wie oben gezeigt. 1 Formular angelegt mit 2 Feldern und schon waren die Tabellen da und werden beim Senden im FE gefüllt, also die _visforms_1-Tabelle dauerhaft) .


    Eben ein zweites angelegt, ganz ohne Felder, nur mal so Neu und speichern mit Pflichteingaben, sowie "Save Result". Und neue DB-Tabellen werden on-the-fly angelegt.


    Allerdings Joomla 4.4.2


    Ein Schattenmenü mit Schattenmenüeintrag braucht man ja heute nicht mehr

    Will dir nicht absolut widersprechen, aber ein Schattenmenü kann eine perfekte Basis sein, um erst mal ein SEO-perfektes Gesamtmenü zu erstellen, wobei andere Menüs nur noch vornehmlich mit Menüalias-Einträgen arbeiten. Diese weiteren Menüs sind so flexibel gestaltbar und Änderungen sind nur noch im Schattenmenü zu machen. Will aber nicht streiten...

    Weiß auch nicht, aber, wenn ich in der verlinkten Anleitung mit rechter Maus auf Bilder klicke und "Bild in neuem Tab öffnen" (Firefox oder Vivaldi) wähle, sind die Bilder eigentlich groß genug und dort ja dann auch weiter zoombar.


    Aber, es kann natürlich sein, dass bei dir das Formular die ID 40 hat. Ist ja abhängig davon, wie viele Formulare man schon angelegt hat, wie viele vielleicht verworfen, wo das sog. AUTOINCREMENT gerade steht usw.


    Was du unter "mein Verständnis" beschreibst, ist das Grundprinzip relationaler Datenbanken. Diverse Tabellen jeweils mit bestimmten "Themen", die bei Bedarf via IDs wechselseitig abgefragt werden. Eine Änderung des Nachnamens kann so an 1 Stelle, in 1 Tabelle eingegeben werden und alle anderen Abfragen ziehen diesen auf aktuellem Stand. Ein Beitrag in Joomla zieht zB so, ohne weiteres Zutun(!), einen geänderten Kategorienamen (Titel), weil Kategorien in einer anderen Tabelle abgelegt sind und Kategorien in der Beitragstabelle lediglich 1x (Feld catid) über die Kategorie-ID referenziert sind.


    EDIT: Dadurch können allerdings Datenbankabfragen ziemlich komplex ("kompliziert") werden, weil z.B. ja der Ersteller-Name eines Beitrags UND/ODER Kategorie wiederum in einer anderen Tabelle liegt usw. usf. Will man nun beide Ersteller in seiner Abfrage haben, wirds noch erheblich trickiger... Ein Hoch auf Joomla Datenbank-PHP-Interface ;) (aber bei dir nicht anwendbar)

    Nur deshalb suche ich in der Joomlawelt, weil Joomla eigentlich recht schön zu bedienen geht.

    Was sich bei Shop-Erweiterungen wie JoomShop und VM erheblich relativiert.


    Zu JoomShop-erweiterungen von Drittanbietern weiß ich nur, dass die Enttäuschung oft groß ist, weil Support und Pflege zu wünschen übrig lässt.


    VM ist ein Kraut-und-Rüben-Hauptsache-funktioniert-irgendwie-Durcheinander (Spaghetticode).


    Kurz: Wenn du sagst

    dann kann ich gleich Shopware nehmen

    dann würde ich dir das empfehlen ;)

    Na ja, wenn du sowieso in der Datenbank bist, ist es einfacher du deaktivierst das SEF-Plugin in der Tabelle _extensions, indem du in der Spalte "enabled" auf 0 setzt. Dann kommst wieder ins Backend, kannst ändern und wieder aktivieren.


    In der selben Tabelle und Zeile findest im Feld/in der Spalte "params" die gesuchte Einstellung, wenn dir das lieber ist, musst aber aufpassen, dass du die json-Struktur im Feld nicht kaputt machst!

    Na gut, wollte ich vermeiden, weil ich Visforms nicht so mag ;)


    Eine Krücke mit aktivierten Nonces, die ich desöfteren für "mal-eben-schnell"-Fixes sonstwo verwende. Am Template-Beispiel Cassiopeia.


    - Lege einen Override, also eine Kopie des JLayouts /com_visforms/layouts/visforms/scripts/validation.php an, also Datei

    Code
    /templates/cassiopeia/html/layouts/com_visforms/visforms/scripts/validation.php

    - Füge in diese Datei ein bzw. ergänze dann den <script>-Tag:


    Siehe Bild, wo ungefähr:



    Bei mir funktioniert das Formular dann und im Browser-Inspektor wird diesbzgl. nicht mehr gemeckert.


    Da du aber sowieso diverse Nonce-Fehler hast, was Inline-Scripte und Inline-Stile anbelangt, die VIELLECIHT wurst sind, ist zu überlegen, ob....


    EDIT: Das ist durchaus legitim das so zu machen, aber Visforms könnte das ab Joomla 4 eleganter machen. Da bin ich jetzt aber zu faul. Ginge auch in einem Override, wie oben erwähnt, mit dem WAM "easy".

    Als Erweiterungsprogrammierer, der seinerzeit seine eigenen Erweiterungen und Kundenseiten umfeilen musste, kann ich nicht mehr dazu sagen.

    Wenn Visforms den von mir gezeigten Block nicht anderweitig in die Seite einsetzt, und Nonces aktiviert sind, funktioniert es halt nicht. Bzw., wenn du sagst, es gibt keine einstellung in Visforms.


    Testen kannst ja, indem du das HTTP-Plugin mal deaktivierst.

    Zeile mit

    Code
    ->registerAndUseStyle('template.user', 'user.css', ['version' => time(), 'weight' => 501], [], ["template.active", "template.active.language"])

    ersetzen.


    Wenn es dir unangenehm ist ein Asset der Templates zu "overrulen". Du kannst auch Abstand von der user.css nehmen, legst eine eigene meine-user.css an und

    Code
    ->registerAndUseStyle('template.meine-user-css', 'meine-user.css', ['version' => time(), 'weight' => 501], [], ["template.active", "template.active.language"])

    Das time() sorgt dafür, das die Version sich bei jedem Aufruf ändert, was den Browsercache aushebelt.


    Natürlich kannst du auch nach jeder Änderung händisch irgendwas hochzählen, was dann etwas ressourcenschonender wäre.

    Code
    'version' => '1'
    
    beim nächsten mal
    
    'version' => '2'

    oder so. Wie es beliebt...

    Kann mir einen Tip geben, warum visforms blockiert wird, denn das script läuft ja auf dem eigenen Server

    Ja, aber deine Einstellungen verbieten jegliche Form von "ungenonceten" Inline-Skripten und da gibt es eine Menge (siehe Bild).


    Ich kenne Visforms nicht. Eigentlich sollte das das richtig machen, also das Skript "noncen", (wenn Nonces aktiviert sind im Plugin). Mit Joomla eigentlich kein Problem. Vielleicht hat visforms eine Einstellung der Art "Im HEAD einbinden" oder so ähnlich?


    Umschiffen kann man das Problem mit einem weiteren Attribut 'unsafe-inline', aber das ist unwirksam, wenn Nonces aktiviert sind. Blöde Geschichte.



    define( 'RG_EMULATION', 0 )

    Die Zeile stammt aus Joomla-1-Zeiten, aaber gehörte damals eigentlich in eine andere Datei, eine Joomla-Datei namens global.php, oder so ähnlich. In einer php.ini hat die und ähnliche nichts zu suchen und ist meines Erachtens auch vollkommen wirkungslos, selbst, wenn die in einem modernen Joomla anderstwo stehen würde.

    Gibt es eine Vorlage, wie die bei Joomla 4 aussehen sollte?

    Nicht wirklich, weil sie ja eigentlich nicht unmitelbar mit Joomla zu tun hat, sondern das PHP auf dem Server konfiguriert. Klar gibt es Empfehlungen, was bei Joomla "eigentlich" aktiv/deaktiv sein sollte. Du kannst deine ja mal posten. Es gibt einige PHP-Einstellungen, die heutzutage generell veraltet sind.


    NACHTRAG, weil ich selber unsicher war, ob das stimmt, was ich geschrieben habe, was für "Historiker": Musst dich nicht zu sehr mit beschäftigen, gerade, wenn dann von Hacking und Security die Rede ist, weil uralter Kram. Falls halt interessiert, was das RG_EMULATION mal war.

    Das mit dem Symlink war jetzt auch mein erster Gedanke.

    Zumindest versteht mittlerweile auch der Joomla-Medienmanager in Joomla 5.0.2 SymLinks. Das war nämlich über viele Versionen nicht der Fall.


    Aaaber leider nicht in Joomla-Version 4.4.2 soweit ich sehe. Hilft nur den JCE zu verwenden.


    Vielleicht gibt es irgendwo eine Einstellung. Ich habe nur ohne Rumgesuche getestet.

    Es hängt schlicht davon ab in Post #1, wen du abhalten willst. Der Token muss ja auch von irgendwem/irgendwas vergeben werden, bekannt sein.

    Und natürlich schützt das nicht vor Abrufen von sonstigen Dateien wie Bilder, PDF und Kram. Aber das würde eine ähnliche "Sperre" in Joomla selbst auch nicht unbedingt schaffen.

    Token-Abfrage geht auch hiermit.

    Aber nur für Backend.

    Die Sprachstrings in administrator\language\de-DE\plg_sampledata_blog.ini sind alle nicht übersetzt. Keine Ahnung, ob das nötig ist bei Beispielinhalten. Müsstest du mal nachfragen.


    Ich denke mal, was du da siehst, sind bei Beispielinhalten automatisch angelegte "custom" Feldgruppen und Felder.

    Lässt sich das Feld The Author in der Beitragsbearbeitung generell im Front -und Backend ausblenden?

    Indem du die Beispiel-Felder unter Inhalt > Eigene Felder löscht, vermute ich.