Comment définir dynamiquement les paramètres d'un composant?

9

Pour récupérer un paramètre que j'utilise:

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

Mais quelle est la bonne méthode pour stocker les paramètres d'un composant?

Développement web COBIZ
la source
Je veux dire en plus d'utiliser le bouton Options
COBIZ webdevelopment
Si vous n'utilisez pas le bouton Options, comment obtenez-vous la valeur que vous souhaitez stocker?
David Fritsch du
Je ne comprends pas vraiment ta question. De n'importe quel endroit, dans un autre contrôleur de composants par exemple, je voudrais définir une nouvelle valeur pour certains autres paramètres de composants.
COBIZ webdevelopment
Vous pouvez essayer de créer un composant à l'aide de component-creator.com et afficher le code qu'il génère lors de l'ajout de paramètres à votre composant.
Søren Beck Jensen

Réponses:

15

De nombreux paramètres de nos composants dépendent de conditions externes, nous devons donc les modifier périodiquement avec un traitement de nuit. Voici le code que nous utilisons (adapté pour une utilisation avec 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
la source
1
Merci. Cela a l'air très bien! Donc je n'écartais pas une méthode existante, elle a vraiment besoin de code supplémentaire. Je marquerai votre réponse BONNE dès que je l'aurai testée. (Mais puisque vous l'utilisez déjà, c'est probablement la bonne réponse de toute façon)
COBIZ webdevelopment
1
Heureux d'aider ... je ne peux pas suivre les versions de Joomla aussi bien que je le voudrais, donc il y a peut-être une méthode, mais celle-ci fonctionne pour nous depuis un certain temps maintenant ... cheers
GDP