Como definir o parâmetro de um componente dinamicamente?

9

Para recuperar um parâmetro, eu uso:

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

Mas qual é o método certo para armazenar os parâmetros de um componente?

Desenvolvimento web COBIZ
fonte
Quero dizer além de utilizar o botão Opções
COBIZ webdevelopment
Se você não está usando o botão de opções, como está obtendo o valor que deseja armazenar?
David Fritsch
Realmente não entendo sua pergunta. De qualquer local, em outro controlador de componentes, por exemplo, gostaria de definir um novo valor para alguns outros parâmetros de componentes.
COBIZ webdevelopment
Você pode tentar criar um componente usando component-creator.com e visualizar o código que ele gera ao adicionar parâmetros ao seu componente.
Søren Beck Jensen

Respostas:

15

Muitos dos parâmetros de nossos componentes dependem de condições externas; portanto, precisamos alterá-los periodicamente com algum processamento durante a noite. Aqui está o código que usamos (adaptado para uso com 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;
}
PIB
fonte
11
Obrigado. Isso parece ótimo! Portanto, eu não estava ignorando um método existente, ele realmente precisa de algum código extra. Vou marcar a sua resposta como BOM o mais rápido possível, quando tiver testado. (Mas como você já está usando isso, provavelmente é a resposta certa)
COBIZ webdevelopment
11
Feliz em ajudar ... não consigo acompanhar as versões do Joomla como eu gostaria, então pode muito bem haver um método, mas este está trabalhando para nós há algum tempo agora ... Saúde
PIB