Wie kann man den Parameter einer Komponente dynamisch einstellen?


9

Um einen Parameter abzurufen, verwende ich:

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

Aber was ist die richtige Methode, um den Parameter einer Komponente zu speichern?


Ich meine, abgesehen von der Schaltfläche Optionen
COBIZ Webentwicklung

Wenn Sie die Optionsschaltfläche nicht verwenden, wie erhalten Sie den Wert, den Sie speichern möchten?
David Fritsch

Verstehe deine Frage nicht wirklich. Von jedem Ort aus, zum Beispiel in einem anderen Komponenten-Controller, möchte ich einen neuen Wert für einige andere Komponentenparameter festlegen.
COBIZ Webentwicklung

Sie können versuchen, eine Komponente mit component-creator.com zu erstellen und den Code anzuzeigen, der beim Hinzufügen von Parametern zu Ihrer Komponente generiert wird.
Søren Beck Jensen

Antworten:


15

Viele der Parameter unserer Komponente hängen von den äußeren Bedingungen ab, daher müssen wir sie regelmäßig über Nacht verarbeiten. Hier ist der Code, den wir verwenden (angepasst für die Verwendung mit 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
Vielen Dank. Das sieht sehr gut aus! Ich habe also eine vorhandene Methode nicht übersehen, sie benötigt wirklich zusätzlichen Code. Ich werde Ihre Antwort so schnell wie möglich gut vermarkten, wenn ich sie getestet habe. (Aber da Sie dies bereits verwenden, ist es wahrscheinlich sowieso die richtige Antwort)
COBIZ Webentwicklung

1
Gerne helfen wir ... können nicht so gut mit den Joomla-Versionen mithalten, wie ich es gerne hätte, also gibt es vielleicht eine Methode, aber diese arbeitet schon eine Weile für uns ... Prost
BIP
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.