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?


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.