Wert einer Modul-Einstellung im Frontend auswerten / ausgeben


#1

Hi alle,

ich hab bisher vor allem Templates gemacht, möchte mich jetzt aber auch etwas in die Modulentwicklung einarbeiten. Die ersten Schritte sind auch schon gemacht, mein erstes Modulchen überschreibt einen Block mit einem eigenen Template-Schnipsel. So weit, so gut :slightly_smiling_face:

Jetzt möchte ich diese Funktion z.B. gerne per Modul-Setting an- und ausschalten können. Dazu habe ich den Settings schon eine entsprechende Checkbox und einen Übersetzungs-String gegeben. Aber was ich jetzt in meinem Buch (Oxid Kochbuch) und den Tutorials noch nicht gefunden habe: Wie kann ich diesen Bool-Wert jetzt im Template (.tpl-Datei im Modul) auswerten?

Das ist wahrscheinlich ganz einfach, aber wenn man nicht weiß, nach welchem Stichwort man googeln muss, findet man’s nicht :thinking:


#2

#3

Ich bin ein Modul-Newbie im Newbie-Forum und das ist mein erstes Modul. Könnte also einen etwas konkreteren Hinweis gebrauchen. :slight_smile: Also z.B. mit welchem Smarty-Tag ich in der .tpl an diese Einstellung rankomme und welche PHP-Programmierung ich dafür ggf. brauche.

Ich freue mich auch über einen schlichten Link auf ein Tutorial, das das zeigt. Hab halt nur keines gefunden …


#4

es gibt prinzipiell mehrere mögliche Ansätze.
Der übliche Weg wäre die Klasse oxViewConfig um eine eigene Funktion erweitern, die diese Einstellung aus der DB ausliest:


oxViewConfig deswegen, weil man es so überall verwenden kann.
Wenn du aber ganz sicher bist, dass du diese Einstellung nur auf einer bestimmten Seite brauchst, kannst du auch den jeweiligen Controller erweitern.


#5

Das steht eigentlich im genannten Beitrag drinne.


#6

With a little help from a friend habe ich das jetzt so gelöst (für eine boolsche Einstellung, die entscheidet, ob ein Block überschrieben werden soll):

In der metadata.php:

'extend'        => [
    "oxviewconfig" => "pfad/zu/modulname_oxviewconfig",
]

In der modulname_oxviewconfig.tpl

public function get_einstellung() {
    if ($this->getConfig()->getConfigParam('name_der_einstellung')) {
        return true;
    }
    return false;
}

In der .tpl-Datei:

[{if $oViewConf->get_einstellung()}]
    Lorem ipsum Sit amet
[{else}]
    [{$smarty.block.parent}]
[{/if}]

#7

Warum einfach, wenn’s auch komplziert geht?:wink:

    [{assign var="oConf" value=$oViewConf->getConfig()}]
    [{if $oConf->getConfigParam('name_der_einstellung')}]

Aber gut, wenn der Wert nicht nur an einer Stelle benötigt wird, hab ich nichts gesagt


#8

@snorri Code-Formatierung geht wohl nicht innerhalb von Listen, ansonsten Leerzeile und dann mit 4 Spaces einrücken.


#9

@rubbercut Ja, die Version habe ich auch getestet, habe mir aber sagen lassen, die ausführlichere sei flexibler.

@leofonic Danke, im anderen Thread hat es dann auch funktioniert. Ich glaube, die Funktion hatte sich mit meinem Copy&Paste nicht recht vertragen. Danke fürs Formatieren!