2017-07-13 9 views
0

Joomlaを使い始めたばかりで、Hello Worldコンポーネントの作成チュートリアルに従っています。いくつかの重大な頭痛と何度も何度も何度もやり直した後、私は最終的にどこかに行っていますデータベースへのJoomla 3.xコンポーネントの更新設定

私は現在、私は、私が選択したオプションのIDが別の列(デフォルト)に更新されるようにオプションを選択して、私の部品表を更新したいHow to set Component parameters in J2.5?

この質問をして、この男と同じ問題を持っている

<?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> 

paramsフィールドは更新されておらず、恐らく何も起こっていないようです。

admin/modelsフォルダには、データベースを更新するための更新が必要なクラスがありますか?その場合は何を入れますか?私は何時間も探していましたが、私が見つけたのは何のコードでも、コードを入力するだけではありません。

答えて

0

拡張設定データは、params列の下の#__extensionsテーブルのjsonに格納されます。

私のIDEでjoomlaソースを見ると、拡張パラメータを更新するためのラッパーがないようですので、以下のようなクエリを実行する必要があります。

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

$db->setQuery($query); 

$result = $db->execute(); 

FYIクエリがテストされ、必要なアプローチの一例であり

関連する問題