Beiträge von Re:Later

    Ich glaube, dieser Link ist nicht korrekt.

    Das wollte ich mit meiner Antwort und dem Konjunktiv darin zum Ausdruck bringen und war eine Antwort auf Post #6.

    Korrekt wäre er halt dann wenn die Datei in einer der beiden genannten Pfade läge, was sie aber im Normalfall nicht tut ;)

    weil kein core-Script überschrieben worden wäre, sondern nur ein eigenes erstellt.

    Ja, ich hatte so was mit ähnlicher Denke schon seit brutal vielen Jahren problemlos laufen und nie geändert. Jetzt überholen mich da aber die Entwicklungen in Joomla 3, wo ja in Vorbereitung auf Joomla 4 auch der eine oder andere Ordner verschoben oder umbenannt wird und, schlimmer, der alte bei jedem Joomla-Update wieder gelöscht wird oder probiert wird (erfolglos) zu löschen.

    Deine eigenen Felder gehören jednefalls mal nicht in den Ordner, den du dir da ausgesucht hast. Das ist Joomla-Core-Bereich.


    Wenn's dir tatsächlich nur um dein einzelnes Modul mod_example geht:

    - Leg dein eigenes Feld z.B. in den Ordner

    /modules/mod_example/fields/ oder /modules/mod_example/myfields/ oder /modules/mod_example/dingsfallera/ (du bist also mehr oder weniger frei. Bei mir ist es halt immer ein Ordner, der nur meine eigenen Felder enthält. Wer's unübersichtlich mag, könnte sogar mehrere Ordner verwenden.)


    Unter'm Strich (nahezu) komplett egal welcher Ordner. Kannst die Felder auch in /media/mod_example/fields/ ablegen oder ...


    Und dann trägst in deiner Manifest-XML (nahezu irgendwo) ein (halt je nach Ordner)

    addfieldpath="modules/mod_example/dingsfallera"

    z.B.

    <fields name="params" addfieldpath="modules/mod_example/dingsfallera">


    oder

    <fieldset name="basic" addfieldpath="modules/mod_example/dingsfallera">


    oder vielleicht auch

    <field name="irgendeinfeld" addfieldpath="modules/mod_example/dingsfallera" ... usw. usf.>


    Hauptsache so was steht irgendwo in der Manifest. Und wie gesagt dürfen das auch mehrere so Einträge sein, mit unterschiedlichen Ordnern.


    Natürlich kannst auch eine eigene Library installieren im /libraries/-Ordner, wennst z.B. felder für mehrere Erweiterungen vorhalten willst. Oder usw.


    Vielleicht ergänzend noch nett, wenn du wie ich ständig Felder bastelst und wie ich irgendwann keine Ahnung mehr hast, ob du evtl. javascriptexec.php schon mal verwendet hast, aber ganz anders als du jetzt willst:

    https://www.ghsvs.de/programmi…ung-konflikte-namespacing

    Ist zwar für Plugins, macht aber keinen Unterschied (noch dazu, weil man auch Plugin-Felder "fremdnutzen" kann)

    Na ja, wenn ich den Seitenquelltext schaue, wird JQuery halt "komplett schräg" geladen. So quasi "irgendwo, wo's keiner mehr braucht" ;)


    Trag in die index.php des Templates möglichst früh, z.B. gleich nach

    defined('_JEXEC') or die;

    die Zeile

    Code
    JHtml::_('jquery.framework');

    Dann sollte jquery immer im HEAD-Block der Seite geladen werden. Bzw. an der Stelle, wo in deinem Template die Zeile

    <jdoc:include type="head" />

    steht (und die sollte im HEAD-Block sein (alles andere ist Experiment)).


    Prüfe dann im Quelltext im Browser, ob jquery irgendwo anders noch mal auftaucht. Das darf nicht sein.


    Prüfe, dann, ob alle Scripte, die JQuery benötigen, HINTER den von Joomla eingefügten Ladezeilen geladen werden.

    accordion.css befindet sich in dem Ordner /templates/protostar/css und accordion.js -> /templates/protostar/js.

    Das ist schon richtig und es reichen die Angaben aus Post #1. Vielleicht mal Browser- und Joomla-Cache löschen.


    ------------------

    JHtml::_('script', 'protostar/accordion.js', array('version' => 'auto', 'relative' => true));


    Das würde des relative wegens dazu führen, dass Joomla

    1. nach /templates/protostar/js/protostar/accordion.js sucht, dann

    2. nach /media/protostar/js/accordion.js


    aber nicht nach /templates/protostar/js/accordion.js

    Als Ergänzüng:

    Wänn ein Ödmin im Backend einen neuen Juser anlegt, wird IMMER eine emaiL mit Paßword geschiekt, egahl, was man einstellt. Wie sollte der User es sonst erfaren?

    Es gibt zusätzlich die Option "Passwortrücksetzung", die mit ausreichend scharf eingestellten Passwort-Kriterien für weitere Sicherheit sorgen kann. Zusätzlich sieht der Admin dann im Backend, wer sich selbst noch nicht ein neues Passwort vergeben hat.

    Letzter Versuch, aber ich denke der ist es ;)

    filter="JComponentHelper::filterText"


    Zumindest arbeitet der mit den Blacklists und Kram der Joomla-Konfiguration.


    Hab aber keine Ahnung, ob der ComponentHelper immer und überall in Joomla verfügbar oder, ab man da das Laden irgendwo anstoßen muss.

    Außerdem weiß keiner woher die GET-Variable mkbuttonfarbe eigentlich kommt.

    ????????

    $_GET['mkbuttonfarbe'];

    ????????


    Kann man nat. niemandem verbieten, aber solche Bequemlichkeits-Formulierungen wie

    <?=$mkbuttonfarbe?> und ähnliche

    verwendet man heute eigentlich nicht mehr so gern. Gibt es verschiedene Gründe.

    Man sollte schon immer <?php echo ... ; ?>verwenden. Zumindest dann, wenn eigener Code vielleicht auch mal in anderen Umgebungen laufen soll.

    Ich hab auch schon was gefunden und ausprobiert, also ein window.onload=function(). Aber da passierte nichts.

    Zur Spielerei:

    Code
    <style>#mkmeldung{display:none}</style>
    
    <div>
    <p id="mkbutton">Show - BLOCK style</p>
    <p class="mkclose">Hide - NONE style</p>
    <p class="mkclose">INACTIVE</p>
    </div>
    <div>
    <p id="mkmeldung">Ich bin die Meldung. Wenn man mich sieht und nicht die Uhr-Zeit läuft was falsch</p>
    </div>


    https://caniuse.com/#feat=domcontentloaded


    https://codepen.io/LukeAskew/pen/LnJsE


    Hatten wir doch schon hier: JoomGallery 3.3.4 und Joomla 3.8.12

    So lange Joomgallery kein Update bringt, wirds wohl nur mit Gefrickel gehen.

    Die Joomla-Form.php ändert sich jedenfalls, wenn überhaupt, von Joomla-Update zu Joomla-Update bzw. wird nur dann überschrieben.

    Habe aber drüben auch geschrieben, dass es mehrere Stellen in JoomGallery gibt, die wohl korrigiert werden müssen.

    weil ich beim Scannen meines Joomlas mit reichlich installierten Erweiterungen nur die JoomGallery finde, die das disabled="true" (siehe Post#10) exzessiv verwendet. Meines Erachtens gar nicht nötig. Wie immer, kann ich mich natürlich täuschen.

    Hast denn die Zeile innerhalb eines document ready? Entweder, so wie ich zeige, damit du $ verwenden kannst oder so wie Elfangor93 sagt eben alles mit JQuery statt $ . Aber jedenfalls innerhalb eines document ready.

    Das ist alles etwas theoretisch. Coder sähen halt gerne Code ;) Wir wissen noch nicht mal, ob du JQuery verwendest oder Vanilla, es5, whatever....


    Zu deinem Button:

    In 99% der fehlerhaften Fälle wird versucht ein DOM-Element anzusprechen (also z.B. ein DIV per id oder class), bevor das element überhaupt geladen ist.


    Wenn du mit JQuery arbeitest, könnte dieser Schnipsel (1. Code im Post) dich auf den richtigen weg bringen. Problem mit Jquery


    document ready meint quasi dilettantisch: Tu was, nachdem das HTML geladen ist. Reicht in den meisten Fällen.

    window load meint quasi dilettantisch: Tu was, nachdem alles geladen ist.


    Es gibt aber auch Pendants im "normalen" JavaScript. Im Unterschied zu JQuery muss man aber evtl. darauf achten, dass ältere Browser nicht unterstütz werden, wenn man keinen Fallback reinbaut.