我刚开始使用Joomla,我一直在关注创建Hello World组件教程。经过一些重大的头痛并一遍又一遍地开始,我终于到了某个地方
我现在有一个工作组件,在我的组件选项中,我有一个由SQL查询填充的下拉列表,如我的admin/config.xml
<?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>
我遇到了同问这个问题How to set Component parameters in J2.5?
的问题我想选择一个选项并更新我的组件表,以便在另一列(默认)中更新所选选项的ID。
params字段没有更新,看起来似乎没有做任何事件,尽管它可能是。
admin/models
文件夹中是否有一个类我应该更新以更新数据库,如果有,我该放什么?我一直在寻找几个小时,我遇到的任何答案只是给出了代码,而不是将它放在什么功能
答案 0 :(得分: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();
仅供参考,查询未经测试,只是所需方法的一个示例