如何从joomla 1.6/2.5中禁用/未激活的插件中获取一些参数?
$module = JPluginHelper::getPlugin('system','myplugin');
$moduleParams = new JParameter($module->params);
$val = $moduleParams->get("key");这个方法不起作用,因为我需要在一个元素JFormField生成器中使用。
感谢您的帮助!
发布于 2013-06-12 06:53:15
我自己找答案就行了。
$data = null;
foreach ((array) $this->form as $k => $v) {
if($val instanceof JRegistry){
$data = &$v;
break;
}
}
$data = $data->toArray();
$val = $data['params']['key'];谢谢!再见!
发布于 2013-06-11 19:28:47
使用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对象中,以便在case字段中多次保存数据库查询。
protected $results = null;发布于 2013-06-11 20:06:43
也许你想试试这个:
// 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'];https://stackoverflow.com/questions/17042639
复制相似问题