1

これで私を助けてください

コンポーネントを作成しています。コンポーネントにconfig.xmlがあります。userCheck.phpにカスタムJFormFieldUserCheckを記述します。config.xmlからパラメーターまたはフィールドをロードします。

使用しました

$param = JComponentHelper::getParams('com_my-component');
var_dump($param);

結果は

object(stdClass)#214 (0) { }

しかし、com_my-componentをcom_content(Joomlaのデフォルトコンポーネント)に変更すると。次にvar_dump、結果は問題ありません。

前もって感謝します

4

3 に答える 3

13

ブログエントリからの抜粋を追加しました:

プラグイン内からのプラグインパラメータ

$param = $this->params->get('paramName', 'defaultValue'); 

プラグインの外部からのプラグインパラメータ

$plugin = &JPluginHelper::getPlugin('exampleType', 'example');
$pluginParams = new JParameter($plugin->params);
$param = $pluginParams->get('paramName', 'defaultValue'); 

モジュール内からのモジュールパラメータ

$param = $params->get('paramName', 'defaultValue'); 

モジュール外部からのモジュールパラメータ

$module = &JModuleHelper::getModule('example');
$moduleParams = new JParameter($module->params);
$param = $moduleParams->get('paramName', 'defaultValue'); 

コンポーネント内部からのコンポーネントパラメータ

$componentParams = &JComponentHelper::getParams('com_example');
$param = $componentParams->get('paramName', 'defaultValue'); 

コンポーネントの外部からのコンポーネントパラメータ

$componentParams = &JComponentHelper::getParams('com_example');
$param = $componentParams->get('paramName', 'defaultValue'); 

テンプレート内からのテンプレートパラメータ

$param = $this->params->get('paramName'); 

テンプレートの外部からのテンプレートパラメータ

jimport('joomla.filesystem.file');
$mainframe = &JFactory::getApplication();
$params = $mainframe->getParams(JFile::read(JURI::root() .'/templates/template_name/params.ini'));
$param = $params->get('paramName', 'defaultValue'); 

Joomlaフレームワーク外のインクルードファイルからのテンプレートパラメータ

// Get params.ini relative to the current file location (use your own relative path here)
$paramsFile = dirname(__FILE__) . '/../../params.ini';

// Only continue if the file exists
if(file_exists($paramsFile)) {
// Get contents from params.ini file
$iniString = file_get_contents($paramsFile);

// Escape double quotes in values and then double-quote all values (because Joomla doesn't do that for us..)
$iniQuoted = preg_replace('/=(.*)\\n/', "=\"$1\"\n", addcslashes($iniString, '"'));

// Parse the ini string to an associative array
$iniParsed = parse_ini_string($iniQuoted);
} else {
$iniParsed = '';
}

// Set params to obtained values or empty array
$params = (!empty($iniParsed)) ? $iniParsed : array();

// Get param value from array
$param = $params['paramName']; 
于 2012-11-18T12:46:20.060 に答える
1

明らかに、Joomlaはあなたのコンポーネントを理解していません。Joomlaに正しくインストールされていること、およびコンポーネントのxmlファイルが正確で正しく形成されていることを確認してください。Joomlaがコンポーネントを検出した場合、またはXMLをロードできない場合、パラメーターをPHPで使用できるようにすることはできません。これらの手順は、データベース内の有効なエントリとXMLを使用して実行されます。どちらも通常、コンポーネントのインストールで実行されますが、すべてが正しい場合は手動で実行できます。

于 2012-08-02T20:31:42.533 に答える
0

同じ問題がありました。コンポーネントの構成に移動して保存するまで、結果は空でした(ただし、テキストフィールドにはデフォルト値が出力されていました)。

于 2014-04-25T10:09:56.307 に答える