Jak dynamicznie ustawić parametry komponentu?

9

Aby uzyskać parametr, używam:

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

Ale jaka jest właściwa metoda przechowywania parametrów komponentu?

Rozwój stron internetowych COBIZ
źródło
Mam na myśli, oprócz używania przycisku Opcje
opracowanie stron internetowych COBIZ
Jeśli nie używasz przycisku opcji, w jaki sposób otrzymujesz wartość, którą chcesz zapisać?
David Fritsch,
Naprawdę nie rozumiem twojego pytania. Z dowolnego miejsca, na przykład w innym kontrolerze komponentów, chciałbym ustawić nową wartość dla param innych komponentów.
Rozwój stron internetowych COBIZ
Możesz spróbować zbudować komponent za pomocą component-creator.com i wyświetlić kod, który generuje podczas dodawania parametrów do komponentu.
Søren Beck Jensen

Odpowiedzi:

15

Wiele parametrów naszego komponentu zależy od warunków zewnętrznych, dlatego musimy je okresowo zmieniać za pomocą nocnego przetwarzania. Oto kod, którego używamy (dostosowany do użycia z 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;
}
PKB
źródło
1
Dzięki. To wygląda bardzo świetnie! Więc nie przeoczyłem istniejącej metody, naprawdę potrzebuje ona dodatkowego kodu. Od razu zaznaczę twoją odpowiedź jako DOBRA, kiedy ją przetestuję. (Ale ponieważ już tego używasz, i tak prawdopodobnie jest to właściwa odpowiedź)
COBIZ webdevelopment
1
Chętnie pomogę ... nie mogę nadążyć za wersjami Joomla, tak jak chciałbym, więc może być metoda, ale ta działa już od jakiegoś czasu ... okrzyki
PKB z