Komponente Configuration parmters beim laden / speichern anpassen

  • In der Komponente wurden die Konfiguration in einer eignen Tabelle gespeichert. Nun bewege ich die Werte zum Standard Platz für J3.x d.h. über die config.xml ... Bislang enthält die "Exif" variable ein array das mit "|" beim speichern verbunden (implode) und beim laden entsprechend wider aufgeteilt wird (explode).


    An welcher Stelle der Standard save / load Funktion der Komponenten Konfiguration kann ich diesen Code einbauen.

  • Die zu verwendeten exifTags sind eine dynamische Liste vom User auszuwählen


    Altes Model Config:


    Config lesen

    Code
    //------------------------------------------
    // special variables exifTags ...
    //------------------------------------------
    if (isset ($data['exifTags'])){   
        $data['exifTags'] = explode('|', $data['exifTags']);
    }


    sichern

    Code
    if ($row->name == 'exifTags' && is_array($row->value)){   
        $row->value = implode('|', $row->value);
    }
    $row->check();
    $row->store();




  • Du hast eine eigene Komponente geschrieben und in der config.xml hast du Parameter definiert.

    Diese Parameter möchtest du in eine eigene Tabelle speichern statt als Parameter in der Komponente selber, was von Joomla standardmäßig gemacht wird?

    Reicht es nicht, wenn die Params bei der Komponente gespeichert sind?

    Ich würde da an ein Plugin denken - onAfterSave vielleicht - aber sehe den Vorteil davon nicht, denn die Komponenteparameter sind ja immer da.

  • Ich möchte wenn möglich das Standardverhalten der Komponenten Konfiguration benutzen. Bislang wurden die Konfigurationsparameter in einer eigenen SQL Tabelle gespeichert. (Die Komponente RSGallery2 stammt aus den 2005er Jahren) Jetzt ziehen die Parameter um und ich weiss nicht ob eine Stelle gibt (oder Event) wo ich manche Parameter ändern kann bevor sie gespeichert werden oder nachdem sie geladen werden.

  • Irgendwie verstehe ich die Frage nicht richtig. Grundsätzlich hast Du als Entwickler doch jederzeit die Möglichkeit die Daten zu speichern. Wenn Du z.B. auch auf den Schließen Button ein speichern legen möchtest, dann rufst du in deinem controller halt in der function "close" erst die function "save" auf und schließt dann. Wenn es um die Überprüfung der Daten geht dann halt hier:


    Grüßkes datTom
    Das Leben ist zu kurz um sich zu ärgern.

  • Im Regelfall gibt es für jeden View einen Controller, ein Model etc. Wenn die Aktion die auf dem Button Save liegt jetzt den Task save übergibt , ist es die Funktion save in deinem Controller.
    Das ist so lange gültig, bis in dem Konstruktor deines Controllers tasks "weitergeleitet" werden auf eine andere Funktion.

    Grüßkes datTom
    Das Leben ist zu kurz um sich zu ärgern.

  • togo Ich glaube, so alt wie die Komponente ist, hält sie sich nicht an das MVC pattern.

    finnern Deine Komponente hat eine eigene Konfiguration und dort einen Button Save. Wenn du mit dem Inspector schaust, oder im Quelltext: Wie sieht der Code unter dem Button aus?

    Kann es sein, dass da nur mit Javascript auf den Klick reagiert wird?

    Ich habe leider keine Ahnung wie wir da erraten könnten was passiert.


    Frage: Warum möchtest du eine so alte Komponente, die voraussichtlich auch ein Sicherheitsrisiko ist, irgendwie bearbeiten? Es gibt doch aktuelle und gute Erweiterungen für Galerien?

  • Ich glaube, so alt wie die Komponente ist, hält sie sich nicht an das MVC pattern.

    Das Backend ist zu 95 % umgestellt. Das Frontend kommt demnächst


    Deine Komponente hat eine eigene Konfiguration und dort einen Button Save. Wenn du mit dem Inspector schaust, oder im Quelltext: Wie sieht der Code unter dem Button aus?

    Ich nutze die Gallery selbst und habe Tausende von Bildern und die Struktur macht es schwer umzusteigen. Es gibt einige aktive Benutzer und sehr viele nicht mehr gepflegte Seiten mit der RSGallery2.

    Wie sieht der Code unter dem Button aus

    Siehe Code Oben