Seite 1 von 1

Verwendung von CMS_VAR und CMS_VALUE

Verfasst: Sa 10. Dez 2005, 15:55
von henning83
Hallo!

In welchem Bereich kann ich diese Variablen verwenden?
CMS_VAR[1..?]

Wie verhalten sie sich wenn sie in verschiedenen Modulen
vorkommen?
also VAR[1] in 2 Modulen?

Wenn es schon einen Forumseintrag zu diesem Thema gibt
wäre ein Link sehr nett. Oder gibt es irgendwo eine Beschreibung?

Vielen dank mal wieder :)

gruß und einen geruhsamen 3. advent

Re: Verwendung von CMS_VAR und CMS_VALUE

Verfasst: Sa 10. Dez 2005, 17:23
von mvf
as usual: bin ein rookie, but ....

im adminhandbuch steht das unter 3.2 recht gut beschrieben und ein blick in die standardinstallation einer 4.6.x zeigt mir, dass z.b. 2 unterschiedliche module text html existieren, die doch das selbe resultat liefern, um die gemeinsam in einem template einzusetzen steht in einem

CMS_HTML[1]

im anderen

CMS_HTML[2]

das sollte deine fragen erlären denke ich.

btw eine parallel standardinstallation mit allen beispielen und mandanten, kannich nurimmer wieder empfehlen zu spicken, für mich als rookie seeeeehr dienlich ;)

Verfasst: Sa 10. Dez 2005, 17:44
von timo
CMS_VAR's sind Modulabhängig und 2x CMS_VAR[1] in 2 Modulen ist kein Problem

CMS_HTML (und alle anderen Contenttypen) sind global, d.h. 2x CMS_HTML[1] überschreiben sich gegenseitig

Verfasst: Sa 10. Dez 2005, 17:46
von mvf
wieder was gelertn ;) merci

Verfasst: Sa 10. Dez 2005, 18:13
von henning83
Aha!

das ist schon mal was...
ich hatte nämlich das problem, dass ich ein modul mehrmals
einsetzen wollte...
und da kam es dann zu problemen...
es hat zwar funktioniert... aber wenn man in der vorkonfig
was änderte hat er es bei allen geändert... nicht nur bei einem...

was mich jetzt noch interessieren würde:
kann ich in den CMS_VAR auch Arrays speichern?

danke auch für prompten antworten bisher :)

gruß

Verfasst: Sa 10. Dez 2005, 18:27
von HerrB
Die Frage ist IMHO noch offen: Der Index ist relativ beliebig, d.h. ein CMS_VAR[1000] geht auch.
kann ich in den CMS_VAR auch Arrays speichern?
Jein. Von Hause aus nicht. Da CMS_VALUEs nur in der Konfiguration (d.h. im Backend) definiert werden, kannst Du aber ein wenig JavaScript verwenden, um dies zu realisieren (denn da muss JS verfügbar sein).

Das Modul Newsletter Handler verwendet diesen Trick z.B. im Eingabe-Bereich (Gruppen-Auswahl).

Es sei noch erwähnt, dass es von kummer einen Vorschlag gibt, wie man arrays speichern kann (mal im Forum suchen).

Gruß
HerrB

Verfasst: Sa 10. Dez 2005, 21:10
von henning83
Ok.
Ich hab nun auch mein Problem lösen können...
Der Autor des Moduls welches ich mehrmals verwende hat
- wie eigentlich normal -
seine Variablen am Ende des Moduls nicht gelöscht
daher stand beim 2., 3. und 4. Einsatz desselbigen
in eben diesen jede Menge Datengrütze drin :)
ein freundliches unset(varname) am ende konnte dieses Problem
beheben.

Ist das nicht eigentlich eine Idee für so ziemlich jedes Modul welches
man mehrmals verwenden will?
Nur um das Umbenennen der Variablen zu vermeiden...

Und was das Abspeichern von Arrays angeht...
Also wenn das von Hause aus erstmal arg kompliziert ist...
zur Not kann ich den Inhalt des Arrays auch per Trennzeichen
zusammenpacken und als laaangen String reinschreiben...
das wäre denke ich ein etwas einfacherer Weg... oder irre ich mich da?

Gruß

Verfasst: Sa 10. Dez 2005, 21:26
von timo
Naja in der Regel sollte man in seinen Modulen keine uninitialisierten Variablen verwenden...finde ich auch den besseren Ansatz als jeden zu "zwingen", ein unset für alle Variablen am Ende des Moduls zu machen...

Verfasst: So 11. Dez 2005, 01:13
von HerrB
Außerdem gibt es Module, bei denen das ausdrücklich gewünscht ist - z.B. bei geteilter Navigation ermittelt das erste Modul alle benötigten Daten, das zweite gibt sie nur (an anderer Stelle) aus.

Gruß
HerrB

Verfasst: Mo 12. Dez 2005, 10:44
von henning83
Hallo!

Naja...
zwingen ist auch ein sehr schlechter Ausdruck dafür...
ich hatte im konkreten Fall das Problem mit einer BannerRotation gehabt
eingesetzt werden soll sie 4 mal auf einer Seite... in einem Template spätestens beim 3. mal kam es zu Problemen weil aus dem letzten Einsatz noch die Daten im Array standen :)
und da ich es mir gerne kompliziert mache... hab ich anstatt die Variable
am Anfang neu zu initialisieren... sie eben am Ende gelöscht ;)
außerdem wollte ich die Überlegung vermeiden ob ein
$bla = "";
auch bei arrays alle belegten Elemente löscht...

was das besagte Modul angeht:
Gefunden wurde es (BannerRotation) wohl hier im Forum
ich hab - da nötig - beim Input die Möglichkeit hinzugefügt
Höhe und Breite des Bilder zu spezifizieren... inklusive Strecken oder Stauchen des Bildes... damit man nicht im Code rumbasteln muss
desweiteren fungiert das Bild auch gleich als Link... leider noch statisch...
d.h. gleicher Link bei allen Bildern...
Wenn mir jemand sagt, wo in der DB ich die Beschreibung des Bildes finde, dann könnte ich diese evtl. auslesen und den Link dynamisch setzen...
und falls interesse an diesem Modul besteht kann ich den code hier gerne noch mal posten... oder auch in einem Thread mit passendem Titel :)
in dem Sinne auch gleich einen Dank an denjenigen der das Original schrieb... leider hab ich seinen Namen nicht gefunden setze ihn aber sogleich rein wenn ich ihn erfahre...

gruß