Beiträge von LukasHH

    Ich vermute mal, dass etwas mit dem Modul selbst etwas nicht stimmt. Wenn man sich den generierten Quellcode anschaut, dann werden beide Module ausgegeben. Es wird irgendwas per iframe geladen.

    Was ebenfalls auch auf schlechte Programmierung hinweist ist, dass in beiden DIVs die gleiche ID verwendet wird. Wenn man mittels JS oder CSS dann auch noch das direkt ansprechen möchte, dann braucht man sich nicht wundern.

    Nachtrag: Genau darunter wird das Script zum laden des Widget jeweils geschrieben. Es wird in beiden Fällen die gleiche ID verwendet. Ändere die ID beim zweiten, dann sollten auch 2 ausgegeben werden. Wenn das nicht geht, dann einmal die Ersteller des Widgets fragen.


    Spielt es eine Rolle wo und wie das Script eingebunden ist?

    Wichtig ist ja, dass das Script bzw. die Datei überhaupt geladen ist. Danach kannst Du prüfen, ob das Script ausgeführt wird. Das prüfst Du ggf. mit der Entwicklerkonsole.

    Im der Manifest XML des Modul gibst Du das <media> Verzeichnis an und ja es sollte möglichst vom media-Verzeichnis aus geladen werden. Darin gibt es für jedes Modul, Komponente usw. jeweils sein eigenes Unterverzeichnis.

    Step 7 Adding Javascript | Joomla! Programmers Documentation
    Introduction
    pr-240.manual.joomlacode.org

    kann ich das machen?

    Ja - es ist machbar aber schon etwas komplexer, wenn die Kategorien miteinander vermischt sind. Was wer zu sehen bekommt (wer darf was sehen), steuert man über die Zugriffsebenen. Die Rolle (wer darf was machen) wird über die Berechtigungsgruppe gesteuert.

    Zugriffsebenen enthalten Berechtigungsgruppen und werden (z.B.) im Menü, zugewiesen. Berechtigungen, werden in der Kategorie, Beitrag usw. vergeben.

    Ggf. kann es erforderlich sein, für jede Kategorie eine eigene Benutzergruppe und Zugriffsebene zu erstellen.

    Das von mir erstellte Modul stellt einen einfachen Kalender dar, über dem man irgendwelche Belegungen anzeigen lassen kann. Er ist nicht speziell für Ferienwohnungen - man kann ihn lediglich auch für Ferienwohnungen einsetzen.

    Er ist absichtlich klein und einfach gehalten. Soll jetzt ein Formular dazu kommen, wird das schon wieder komplexer. Zumal das Formular dazu nicht immer benötigt wird. In der Pro Version kann man einen Link hinterlegen, welcher aufgerufen wird, wenn man auf einem freien Tag klickt.

    Wenn man mehr möchte, dann empfiehlt es sich auf speziell zugeschnittene Erweiterungen zu setzen.

    Du könntest doch direkt eine Default Ausgabe angeben, welche bei dem Change Event dann überschrieben wird. Entweder direkt in der HTML-Ausgabe eintragen oder über Dein Skript außerhalb des foreach()

    also durch: Zusatz: .site-grid, bleibt unten vor dem (.footer ...) ein weißer Streifen:

    Wenn man nur

    Code
    .hintergrund_marmor {...}

    angibt, dann wird der Hintergrund auf der gesamten Seite (<body>) gesetzt. Da header und footer einen eigenen Hintergrund haben, wird der Hintergrund vom body überdeckt. Mit dem Zusatz ".site-grid" wirkt sich das nur auf den mittleren Teil aus.

    Der weiße Streifen kommt bei der Angabe mit ".site-grid", weil ".footer" einen Außenabstand von oben (margin-top) hat.

    aus irgendeinem Grund werden die Klassen zusammengeschrieben ausgegeben.

    So sollte es passen:

    CSS
    .com-content-article.item-pagehintergrund_marmor {
        background-image: url('/images/Hintergründe/Hintergrundbild_marmor.jpg');
        background-repeat: repeat;
    }

    Habe aber gerade gesehen, dass es an 2 Stellen ausgegeben wird:

    Wenn es oben im Body-Tag bleibt, dann wäre das nachfolgende vielleicht besser geeignet:

    CSS
    .hintergrund_marmor .site-grid {
        background-image: url('/images/Hintergründe/Hintergrundbild_marmor.jpg');
        background-repeat: repeat;
    }

    ob der gewünschte String überhaupt zur Verfügung steht

    Genau das war scheinbar das Problem. Ich habe mir das noch einmal angeschaut und Joomla.Text._() holt sich die Strings aus den Options, wo die natürlich nicht vorhanden waren. Ich habe das jetzt so gemacht, dass die benötigten Strings in der View in die Options geladen werden.

    PHP
    $app->getDocument()->addScriptOptions('joomla.jtext',
        array(
            'JYES' => Text::_('JYES'),
            'JNO' => Text::_('JNO'),
            'COM_USERFILES_USER_FILES_MANAGED_FILE_DELETE' => Text::_('COM_USERFILES_USER_FILES_MANAGED_FILE_DELETE'),
            'COM_USERFILES_USER_FILES_MANAGED_RETURN' => Text::_('COM_USERFILES_USER_FILES_MANAGED_RETURN'),
            'COM_USERFILES_USER_FILES_MANAGED_NEW_FOLDER_TITLE' => Text::_('COM_USERFILES_USER_FILES_MANAGED_NEW_FOLDER_TITLE')
    );
            

    Ich vermute mal dass die Extensions und dabei auch die eigens programmierte Komponente nicht J4 / J5 tauglich sind und erst einmal dafür umgestellt werden müssten.

    Ich bin auch gerade dabei eine eigene Komponente zu bauen und mache die gleich fit für die nächsten Versionen. Dabei hat mit diese Anleitung schon ganz gut geholfen: https://www.techfry.com/resources/how-…oomla-component

    Wenn man sich dabei einige Core-Funktionen anschaut, dann wird sich mit J6 auch nochmal einiges ändern, was mit J4 bereits als depracted deklariert wird und mit J6 aus dem Core verschwindet.

    Hallo zusammen,

    ich baue gerade meine erste Komponente in der ich einiges über javascript realisiere. Nun möchte ich mittels Javascript einige Texte ausgeben, die mittels Language-Strings übersetzbar sein sollen. Ich habe gesehen, dass es innerhalb des Javascript mittels Joomla.Text._() funktionieren soll. Doch leider wird mir die Übersetzung nicht angezeigt.

    Ich habe zum Beispiel in der JS-Datei folgende Code-Zeile eingebaut

    JavaScript
    console.log(Joomla.Text._("JYES"))

    Die Ausgabe lautet dabei: "JYES" und nicht wie erwartet "JA" für Deutsch oder "Yes" für Englisch.

    In der joomla.asset.json habe ich bei Aufruf der Datei mit angegeben:

    JSON
        {
          "name": "com_userfiles.userfiles_upload",
          "type": "script",
          "uri": "com_userfiles/userfiles_upload.js",
          "dependencies": [
            "core"
          ]
        }

    Fehlt hier noch etwas?

    JS-Fehler werden keine angezeigt.

    Ah - habe ich fast übersehen.

    Eine entschiedene Zeile fehlte noch. Das JSON muss natürlich auch registriert werden, sonst findet der WA das nicht:

    PHP
    $wa = Factory::getApplication()->getDocument()->getWebAssetManager();
    $wa->getRegistry()->addRegistryFile('media/mod_ws_test/joomla.asset.json');
    $wa->useStyle('mod_ws_test');
    $wa->useScript('mod_ws_test');

    In der JSON habe ich den Namen einheitlich mit mod_ws_test umbenannt. Du musst da keine unterschiedlichen Namen verwenden.

    Du musst in der XML auch das JSON-File mit angeben.

    in der Modul PHP am Ende kein ?>

    Aus JModuleHelper wird einfach nur ModuleHelper (ohne J)

    Was noch dazu nicht passt, das sind die unterschiedlichen Schreibweisen des Moduls. Mal mit Unterstrich und im Media-Verzeichnis mit Bindestrich. Das passt nicht zusammen. Die Verzeichnisse müssen einheitlich sein und ich würde auf Bindestrich in Dateinamen / Verzeichnisse sowieso verzichten.