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?


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;
}

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.