Come impostare dinamicamente un parametro di un componente?


9

Per recuperare un parametro che uso:

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

Ma qual è il metodo giusto per memorizzare i parametri di un componente?


Voglio dire a parte l'utilizzo del pulsante Opzioni
Sviluppo web COBIZ

Se non stai utilizzando il pulsante delle opzioni, come stai ottenendo il valore che desideri memorizzare?
David Fritsch,

Non capisco davvero la tua domanda. Da qualsiasi posizione, ad esempio in un altro controller di componenti, vorrei impostare un nuovo valore su alcuni parametri di altri componenti.
Sviluppo web COBIZ

Puoi provare a costruire un componente usando component-creator.com e visualizzare il codice che genera quando si aggiungono parametri al componente.
Søren Beck Jensen,

Risposte:


15

Molti dei parametri dei nostri componenti dipendono da condizioni esterne, quindi è necessario modificarli periodicamente con alcune elaborazioni durante la notte. Ecco il codice che usiamo (adattato per l'uso con 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
Grazie. Sembra molto bello! Quindi non stavo trascurando un metodo esistente, ha davvero bisogno di un po 'di codice extra. Contrassegnerò la tua risposta BUONA al più presto, quando l'ho testata. (Ma poiché lo stai già utilizzando, probabilmente è comunque la risposta giusta)
Sviluppo web COBIZ

1
Felice di aiutarti ... non riesco a tenere il passo con le versioni di Joomla come vorrei, quindi potrebbe esserci un metodo, ma questo ha funzionato per noi ormai da un po 'di tempo ... salute
PIL
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.