Як динамічно встановити параметр компонента?


9

Щоб відновити парам, я використовую:

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

Але який правильний метод зберігання парамєнта компонента?


Я маю на увазі, крім використання кнопки «Параметри»
веб-розробка COBIZ

Якщо ви не використовуєте кнопку параметрів, як ви отримуєте значення, яке хочете зберегти?
Девід Фрітш

Не дуже розумію ваше запитання. Наприклад, з будь-якого місця, в іншому контролері компонентів, я хотів би встановити нове значення для деяких інших параметрів компонентів.
розробка COBIZ

Ви можете спробувати створити компонент за допомогою компонента-creator.com та переглянути код, який він створює, додаючи параметри до свого компонента.
Søren Beck Jensen

Відповіді:


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 так добре, як хотілося б, тому, можливо, існує метод, але цей вже деякий час працює на нас ... ура
ВВП
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.