0

joomla 1.6/2.5 で無効/まだアクティブになっていないプラグインからいくつかのパラメータを取得するにはどうすればよいですか?

$module = JPluginHelper::getPlugin('system','myplugin');
$moduleParams = new JParameter($module->params);
$val = $moduleParams->get("key");

要素 JFormField ジェネレーター内で使用する必要があるため、このメソッドは機能しませんでした。

手伝ってくれてありがとう!

4

3 に答える 3

2

有効なプラグインに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;
于 2013-06-11T11:28:47.347 に答える
0

おそらく、これを試してみたいかもしれません:

// 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'];
于 2013-06-11T12:06:43.307 に答える