私はここに問題があり、それを解決することはできません:-/
バックエンドでJoomlaコンポーネントを開発しています。バックエンドでdashboardId
というパラメーターを設定しましたが、ビューでそれらにアクセスできません。常に_data:protected
_を取得します(params
をダンプするとき)。オブジェクトへのアクセスが許可されていないようです。
以下が_default.xml
_です。
_<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="Dashboard">
<message>
<![CDATA[dashboard LAYOUT DESCRIPTION]]>
</message>
</layout>
<fields name="params">
<fieldset name="params">
<field
name="dashboardId"
type="text"
label="Dashboard ID"
description="com_dashboard_desc"
default="1"
>
</field>
</fieldset>
</fields>
</metadata>
_
ここで、_view.html.php
_で、次のようにパラメーターにアクセスしようとします。
_$app = &JFactory::getApplication();
$params = JComponentHelper::getParams('com_dashboard');
$dashboardId = $params->get('dashboardId');
var_dump($dashboardId);
_
var_dump($dashboardId);
を実行するとNULL
を取得しますが、_$app
_をダンプすると、dashboardID
が表示されます
すべての助けをいただければ幸いです!ありがとう
もっと簡単な方法があります。最初のJoomlaコンポーネントヘルパーのインポート:
jimport('joomla.application.component.helper'); // not required in Joomla 3.x
そして、次のように必要な属性を取得します。
$params = JComponentHelper::getParams('com_dashboard');
$dashboardID = $params->get('dashboardID');
ご挨拶。
$app = JFactory::getApplication('site');
$componentParams = $app->getParams('com_example');
$param = $componentParams->get('paramName', defaultValue);
LoboXが提供する答えと同様に、コンポーネントヘルパーを使用してコンポーネントパラメーターを取得することをお勧めします。
_jimport('joomla.application.component.helper'); // Import component helper library
$params = JComponentHelper::getParams(JRequest::getVar('option')); // Get parameter helper (corrected 'JRquest' spelling)
$params->get('parameter_name'); // Get an individual parameter
_
JRequest::getVar('option')
は、コンポーネントの名前にcom_プレフィックスを付けて返します。それとは別に、設定ファイルに1.5/1.6構文を少し混ぜようとしているようです。まだ見たことがない場合は、ドキュメントの 2.5バージョン を読んでみてください。それがお役に立てば幸いです!
J.Tに似ていますBlumは答えますが、Joomla 3.xではJRequestは廃止されました。アプリケーションのパラメータを取得する別の方法です。
$app = JFactory::getApplication();
$input = $app ->input;
$componentName = $input ->get('option');
$params = JComponentHelper::getParams($componentName);
print_r($params);
同様の問題がありました。コンポーネントの構成に移動して保存するまで、data:protectedの結果しか得られませんでした。テキストフィールドにはデフォルト値が印刷されていましたが、「保存」をクリックする前にJoomlaはそれらを読み取ることができませんでした。
すべてのJoomlaバージョン1.5/2.5 /3.xでParamsオブジェクトを取得するヘルパー関数
class myCompoHelper{
public static function getParams($option)
{
if (version_compare(JVERSION, '1.5', 'g'))
{
$application = JFactory::getApplication();
if ($application->isSite())
{
$params = $application->getParams($option);
}
else
{
jimport('joomla.application.component.helper');
$params = JComponentHelper::getParams($option);
}
}
else
{
jimport('joomla.application.component.helper');
$params = JComponentHelper::getParams($option);
}
return $params;
}
}
$params=myCompoHelper::getParams('com_mycomponent');
echo $params->get('myParamName',null);
バージョン3.1のJoomlaはすべてのJ
クラスを非推奨とするプロセスであるため、実質的に、バージョン4.0はほとんどすべてのJ
クラスを非推奨とします。名前空間関数:
Joomla\CMS\Component\ComponentHelper::getParams('com_dashboard')->get('dashboardID');
または、モデルで作業している場合は、use
キーワードを呼び出してファイルをインポートし、ドキュメント内でクラスを使用できます。
use Joomla\CMS\Component\ComponentHelper;
function myFunction() {
$param = ComponentHelper::getParams('com_dashboard');
$dashboardID = $param->get('dashboardID');
}