0

我刚刚开始使用 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>

我遇到了和这个章节一样的问题,问这个问题如何在 J2.5 中设置组件参数?

我想选择一个选项并更新我的组件表,以便所选选项的 id 在另一列中更新(默认)。

params 字段没有更新,它似乎没有做任何事情,尽管它可能是。

文件夹中是否有admin/models我应该更新以更新数据库的类,如果有,我应该放什么?我一直在寻找几个小时,我遇到的任何答案都只是给出代码而不是把它放在什么函数中

4

1 回答 1

0

扩展配置数据以 json 格式存储在 params 列下的 #__extensions 表中。

查看我的 IDE 中的 joomla 源代码,似乎没有用于更新扩展参数的包装器,因此必须执行如下查询。

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

$db->setQuery($query);

$result = $db->execute();

仅供参考,查询未经测试,只是所需方法的一个示例

于 2017-07-16T16:25:31.947 回答