コンポーネントのパラメーターを動的に設定する方法は?


9

パラメータを取得するには、次を使用します。

$myparam = JComponentHelper::getParams('com_mycomponent')->get('myparam');

しかし、コンポーネントのパラメーターを格納する適切な方法は何ですか?


オプションボタンの使用とは別に
COBIZ webdevelopment 2015

オプションボタンを使用していない場合、保存したい値をどのように取得していますか?
David Fritsch、2015

あなたの質問を本当に理解しないでください。任意の場所から、たとえば別のコンポーネントコントローラーで、他のいくつかのコンポーネントのパラメーターに新しい値を設定したいと思います。
COBIZ webdevelopment 2015

component-creator.comを使用してコンポーネントを作成し、コンポーネントにパラメーターを追加するときに生成されるコードを表示することができます。
セーレンベック・イェンセン

回答:


15

コンポーネントのパラメータの多くは外部条件に依存しているため、夜間処理を行うことで定期的に変更する必要があります。これが使用するコードです(com_contentでの使用に適合)。

// Load the current component params.
$params = JComponentHelper::getParams('com_content');
// Set new value of param(s)
$params->set('show_title', 1);

// Save the parameters
$componentid = JComponentHelper::getComponent('com_content')->id;
$table = JTable::getInstance('extension');
$table->load($componentid);
$table->bind(array('params' => $params->toString()));

// check for error
if (!$table->check()) {
    echo $table->getError();
    return false;
}
// Save to database
if (!$table->store()) {
    echo $table->getError();
    return false;
}

1
ありがとう。これはとても素晴らしいです!だから私は既存のメソッドを見落とさなかった、それは本当にいくつかの追加のコードを本当に必要とする。私がそれをテストしたとき、私はあなたの答えをできるだけ早くマークします。(しかし、あなたはすでにこれを使用しているので、とにかく正しい答えです)
COBIZ webdevelopment

1
喜んでお手伝いします...私が望むJoomlaバージョンに追いつくことができないので、方法があるかもしれませんが、これはしばらくの間私たちのために働いています...乾杯
GDP
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.