我如何从 joomla 1.6/2.5 中禁用/尚未激活的插件中获取一些参数?
$module = JPluginHelper::getPlugin('system','myplugin');
$moduleParams = new JParameter($module->params);
$val = $moduleParams->get("key");
此方法不起作用,因为我需要在元素 JFormField 生成器中使用。
感谢帮助!
我如何从 joomla 1.6/2.5 中禁用/尚未激活的插件中获取一些参数?
$module = JPluginHelper::getPlugin('system','myplugin');
$moduleParams = new JParameter($module->params);
$val = $moduleParams->get("key");
此方法不起作用,因为我需要在元素 JFormField 生成器中使用。
感谢帮助!
由于JPluginHelper::getPlugin
只能访问已启用的插件,因此这里是直接访问数据库的代码。
// Build query
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select( 'params' )
->from( '#__extensions' )
->where( 'type = ' . $db->q('plugin') )
->where( 'folder = ' . $db->q('authentication') ) // Plugin type
->where( 'element = ' . $db->q('gmail') ) // Plugin element
;
// Execute query
$db->setQuery($query);
try
{
$result = $db->loadResult();
}
catch (RuntimeException $e)
{
return false;
}
// Parse parameters
if (!empty($result))
{
$params = new JRegistry($result);
$val = $params->get('key', 'defaultValue');
}
您可以将查询结果存储在 JFormField 对象中,以便在字段多次可用的情况下保存数据库查询。
protected $results = null;
也许你可能想试试这个:
// Get plugin parameters
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('`params`')
->from ('`#__extensions`')
->where ("`type` = 'plugin'")
->where ("`folder` = 'system'")
->where ("`element` = 'myplugin'");
$db->setQuery($query);
$res = json_decode($db->loadResult(), true);
$val = $res['key'];
只能自己找答案了。
$data = null;
foreach ((array) $this->form as $k => $v) {
if($val instanceof JRegistry){
$data = &$v;
break;
}
}
$data = $data->toArray();
$val = $data['params']['key'];
谢谢!再见!