2017-07-13 4 views
0

Ich habe gerade angefangen Joomla zu verwenden und ich habe das Erstellen einer Hello World-Komponente Tutorial folgen. Nach einigen großen Kopfschmerzen und immer wieder neu beginnen, bin ich endlich irgendwoJoomla 3.x Komponente Update-Konfiguration in die Datenbank

Ich habe jetzt eine funktionierende Komponente und in meiner Komponente Optionen habe ich eine Dropdown-Liste mit einer SQL-Abfrage gefüllt, wie in meinem admin/config.xml gezeigt

<?xml version="1.0" encoding="utf-8"?> 
<config> 
    <fieldset 
     name="greetings" 
     label="COM_HELLOWORLD_CONFIG_GREETING_SETTINGS_LABEL" 
     description="COM_HELLOWORLD_CONFIG_GREETING_SETTINGS_DESC" 
    > 
     <field 
      name="greeting" 
      type="sql" 
      label="Select an article" 
      query="SELECT id, greeting FROM #__helloworld" 
      key_field="id" /> 
    </fieldset> 
    <fieldset 
     name="permissions" 
     label="JCONFIG_PERMISSIONS_LABEL" 
     description="JCONFIG_PERMISSIONS_DESC" 
    > 
     <field 
      name="rules" 
      type="rules" 
      label="JCONFIG_PERMISSIONS_LABEL" 
      class="inputbox" 
      validate="rules" 
      filter="rules" 
      component="com_helloworld" 
      section="component" 
     /> 
    </fieldset> 
</config> 

ich habe das gleiche Problem wie dieser Kerl bekam diese Frage How to set Component parameters in J2.5?

ich mag fragen, um eine Option auszuwählen und meine Komponententabelle zu aktualisieren, um die ID der ausgewählten Option in einer anderen Spalte aktualisiert wird (default) .

Das Parameterfeld ist nicht aktualisiert und es scheint, als würde es nichts tun, obwohl es wahrscheinlich ist.

Gibt es im Ordner admin/models eine Klasse, die ich aktualisieren sollte, um die Datenbank zu aktualisieren, und wenn ja, was soll ich sagen? Ich habe Stunden gesucht und jede Antwort, die ich rufe gibt nur den Code und nicht, welche Funktion es in

Antwort

0

Extension Config Daten werden in der Tabelle #__extensions unter der Params Spalte als Json gespeichert.

Wenn ich durch die Joomla-Quelle in meiner IDE schaue, scheint es keinen Wrapper zum Aktualisieren von Erweiterungsparametern zu geben, so dass eine Abfrage wie unten ausgeführt werden muss.

$query = $db->getQuery(true) 
    ->update('#__extensions') 
    ->set('params= ' . json_encode($params)) 
    ->where('element= ' . $extensionName) 
; 

$db->setQuery($query); 

$result = $db->execute(); 

FYI die Abfrage ist nicht getestet und ist nur ein Beispiel für den erforderlichen Ansatz

Verwandte Themen