gpt4 book ai didi

joomla - J2.5如何设置组件参数?

转载 作者:行者123 更新时间:2023-12-01 07:41:39 25 4
gpt4 key购买 nike

我已经使用组件的 admin 文件夹中的 config.xml 创建了一个带有一些配置字段的 J2.5 组件。

如何以编程方式在配置中设置参数?

我试过下面的代码,但它显然没有将结果保存到数据库中:

$params = & JComponentHelper::getParams('com_mycomponent');
$params->set('myvar', $the_value);

任何人都可以展示一些如何实现这一目标的例子吗?

最佳答案

最安全的方法是包含 com_config/models/component.php并使用它来验证和保存参数。但是,如果您可以以某种方式自己验证数据参数,我会坚持以下(更简单的解决方案):

// Get the params and set the new values
$params = JComponentHelper::getParams('com_mycomponent');
$params->set('myvar', $the_value);

// Get a new database query instance
$db = JFactory::getDBO();
$query = $db->getQuery(true);

// Build the query
$query->update('#__extensions AS a');
$query->set('a.params = ' . $db->quote((string)$params));
$query->where('a.element = "com_mycomponent"');

// Execute the query
$db->setQuery($query);
$db->query();

请注意我如何将参数转换为字符串(在构建查询时),它将 JRegistry 对象转换为 JSON 格式的字符串。

如果您遇到任何缓存问题,您可能需要在编辑参数后运行以下命令:

从模型:
 $this->cleanCache('_system');

或者,其他地方:
$conf = JFactory::getConfig();

$options = array(
'defaultgroup' => '_system',
'cachebase' => $conf->get('cache_path', JPATH_SITE . '/cache')
);

$cache = JCache::getInstance('callback', $options);
$cache->clean();

关于joomla - J2.5如何设置组件参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13219774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com