Funktionsweise von CMS_VALUE?

Gesperrt
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Funktionsweise von CMS_VALUE?

Beitrag von kloevekorn »

Liebe Leute,

die Frage habe ich vor ein paar Tagen schon in einem vorhanden Thread in "misc" gestellt, aber leider noch keine Hilfe bekommen.

Ich verstehe die Anwendung von CMS_VALUE und die dauerhafte Abspeicherung des Wertes nicht.

Ich verwende das folgende Modul um eine Stylesheetklasse zuweisen zu können:

Code: Alles auswählen

INPUT:
$selected = "CMS_VALUE[0]";

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n".
"<tr valign=\"top\">\n".
"<td colspan=\"2\">Rubriken-Style\n".
"</td>\n".
"</tr>\n".
"<tr>\n".
"<td>Diesen Style verwenden:</td>\n".
"<td align=\"left\">\n".
"<select name=\"CMS_VAR[0]\" size=\"1\">".
"<option value=\"rubrik1\" selected style=\"background-color:#FF0000; color:#000000;\">Rubrik 1</option>
<option value=\"rubrik2\" style=\"background-color:#FF6666; color:#000000;\">Rubrik 2</option>
</select>";
echo "</td></tr></table>"; 
das oben genannte Modul hat die unschöne Eigenschaft, dass die einmal gewählte Einstellung in der Kategorien-Konfiguration nicht beibehalten wird und die Einstellung also immer wieder neu vorgenommen werden muss.

Meine Versuche laufen in die Richtung, alle Kategorien nacheinander mit "echo" auszugeben und dabei jeweils den Wert von $selected (=CMS_VALUE) mit dem String zu vergleichen, der mal vom User ausgewählt wurde.

Prinzipiell also so:

Code: Alles auswählen

//erste Auswahlmöglichkeit:
echo '<option value="rubrik1" ';
if ($selected == "Rubrik 1")       //auch 'Rubrik 2' ausprobiert
         {echo'selected ';}
echo 'style="background-color:white;background:white;">Rubrik 1</
option>';

//zweite Auswahlmöglichkeit:
echo '<option value="rubrik2" ';
if ($selected == "Rubrik 2")        
         {echo 'selected ';}
echo 'style="background-color:#FF0000;background:#FF0000;">Rubrik 2</option>'; 
Das funtioniert natürlich Wink nicht.

In diesem Zusammenhang verstehe ich die Funktionsweise von CMS_VALUE nicht:
- Dient CMS_VALUE nur zum "Durchschleusen" von Variablen vom INPUT zum OUTPUT?
- Wenn nicht, muss der Wert doch irgendwo gespeichert werden. D.h. die Frontendanzeige "merkt" sich den Wert ja irgendwie.

Wenn ich mir zum Beispiel andere Module ansehe, in denen Werte vergleichbar gespeichert werden, z.B. Sitemap-Module, in denen die gewünschte Verzeichnistiefe ebenfalls per CMS_VALUE eingestellt wird, kann ich keine Verbindung zur DB erkennen.

Kann wer helfen?
trixta
Beiträge: 165
Registriert: Di 26. Apr 2005, 12:53
Kontaktdaten:

Beitrag von trixta »

glaube ich habe dein problem nicht ganz verstanden, aber vielleicht hilft dir das

-> value dient nur zum durchschleusen von input zu output. die eingaben können daher nur für input und output des entsprechenden moudls genutzt werden. da die einstellungen natürlich auch in der db enthalten sind, könnte man umständlich abfragen und so auch für andere module verwenden.

-> die untere abfrage sieht vom prinzip her richtig aus. nehme an dass die abfrage der output desselben moduls ist und im outout bereich so wie du das im input auch gemacht hast. am anfang $selected = cms_value[0] steht. poste doch mal den gesamten input und putput und beschreibe mal

-> ich weiss nicht genau, ob dass was du da gepostet hast nur ein beispiel ist oder ob du dem redakteur wirklich diese aufgabe geben willst. 1. besteht die gefahr, dass er das nicht immer (richtig) auswählt. 2. die dass er mehr arbeiten muss. das dürfte sich doch erleichtern lassen. wenn die stylesheet klassen nach einem "logischen" prinzip vergeben werden (je nach kategorie oder so).

hoffe das konnte dir helfen
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

danke für die Antwort!

Nochmal:
Ich lasse den Redakteur (je nach Kategorie) einen Style auswählen. Das funktioniert, der Style wird im Frontend dauerhaft richtig ausgegeben. Aber leider "merkt sich" das Backend die Einstellung nicht. D.h. sobald eine Kategorie im Backend geöffnet wird, muss die Style-Einstellung wiederholt werden.

Ist das Problem nur mit einer DB-Abfrage zu lösen? Wenn ja, welches Feld in welcher Tabelle wird durch das CMS_VALUE angesprochen?

Bezüglich der prinzipiellen Frage, ob ich das wirklich will... am allerliebsten würde ich den (ja relativ feststehenden) Kategorien einen Style zuweisen wollen und neue Unterkategorien bzw. Artikel würden automatisch den Kategorienstyle zugewiesen bekommen. Aber das bekomme ich mit in angemessener Zeit nicht hin. Die manuelle Auswahl erscheint mir nicht so fehlerintensiv, die Benennung ist ja später nicht "rubrik 1" und "rubrik 2", sondern bekommt die echten Kategoriennamen. Wenn es für die automatische Zuweisung eines solchen Parameters einen erprobten Weg gibt, bin ich für einen Denkanstoß dankbar. Aber auch so natürlich :-)

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
* contenido v. 4.4.5
************************************************/
$selected = "CMS_VALUE[0]";

// Tabellenaufbau für den Modulkonfigurator im Template erzeugen

echo  "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n".
         "<tr valign=\"top\">\n".
         "<td colspan=\"2\">Rubriken-Style\n".
         "</td>\n".
         "</tr>\n".
         "<tr>\n".
         "<td>Diesen Style verwenden:</td>\n".
         "<td align=\"left\">\n".
         "<select name=\"CMS_VAR[0]\" size=\"1\">".
"<option value=\"rubrik1\" selected style=\"background: #FF0000; color: #000000;\">kein style</option>
<option value=\"rubrik1\" style=\"background-color:#FF0000; color:#000000;\">Startseite</option>
<option value=\"rubrik2\" style=\"background-color:#FF6666; color:#000000;\">Kinderhaus</option>
<option value=\"rubrik3\" style=\"background-color:#FF9999; color:#000000;\">Betreuung</option>
<option value=\"rubrik4\" style=\"background-color:#FFFF00; color:#000000;\">Fortbildung</option>
<option value=\"rubrik5\" style=\"background-color:#FFFF99; color:#000000;\">F&ouml;rderverein</option>
<option value=\"rubrik6\" style=\"background-color:#0066FF; color:#000000;\">Beratung</option>
<option value=\"rubrik7\" style=\"background-color:#6699FF; color:#000000;\">Aktuelles</option>
<option value=\"rubrik8\" style=\"background-color:#99CCFF; color:#000000;\">Kontakt</option>
</select>";

echo "</td></tr></table>";


Versuch zum INPUT (Ausschnitt):

Code: Alles auswählen

//erste Auswahlmöglichkeit: 
echo '<option value="rubrik1" '; 
if ($selected == "Kinderhaus") 
         {echo'selected ';} 
echo 'style="background-color:white;background:white;">Kinderhaus</ 
option>'; 

//zweite Auswahlmöglichkeit: 
echo '<option value="rubrik2" '; 
if ($selected == "Aktuelles")        
         {echo 'selected ';} 
echo 'style="background-color:#FF0000;background:#FF0000;">Aktuelles</option>'; 

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
* - für Contenido v4.4.5
************************************************/

$selected = "CMS_VALUE[0]";
echo $selected;
?>
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

CMS_VALUE und CMS_VAR sind NUR im Kontext der jeweiligen Templatekonfiguration zu sehen. Wenn du globale Einstellungen brauchst, solltest du auf Mandanten- bzw Systemeinstellungen ausweichen.
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

Ja, ist mir klar (hoffe ich doch).

Aber die Template-Konfiguration lässt sich für jede Kategorie anpassen und ist so eine gewollte Vorgehensweise. Mein Vorhaben entspricht dem doch, ich brauche ja eben keine globalen Einstellungen.

Wie sollte man Kategorienkonfigurationen global speichern? (Für jede Kategorie ein hart gecodetes Layout mit Klasseneinstellungen anzulegen, scheint mir nicht sinnvoll)

Oder habe ich dich falsch verstanden?
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

Achso, je nach Templatekonfiguration? Dann ist dein Ansatz schon richtig

nur warum du 3 Codefragmente gepostet hast, ist mir nicht ganz klar...
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

timo hat geschrieben:Achso, je nach Templatekonfiguration? Dann ist dein Ansatz schon richtig

nur warum du 3 Codefragmente gepostet hast, ist mir nicht ganz klar...
- das erste Fragment ist der aktuelle INPUT-code, der sich aber leider nichts merken kann.
- das zweite Fragment ist mein Versuch des Vergleichs von CMS_VALUE mit dem Listeneintrag, damit das "selected" in die Auswahl automatisch eingetragen wird. Also modifizierter Ausschnitt des INPUTs.
- Das dritte ist einfach nur der simple Output.

Mein Problem: Wie komme ich in INPUT an den gespeicherten Wert für die jeweilige Kategorie ran Das Frontend zeigt den jeweiligen Wert korrekt an.
trixta
Beiträge: 165
Registriert: Di 26. Apr 2005, 12:53
Kontaktdaten:

Beitrag von trixta »

hi timo,

3 scheint es deshalb zu sein, weil das ein codeschnipsel zum testen für den input bereich ist.

also ich habe das nicht installiert, deshalb kann ich jetzt nichts genaues sagen. (beim normalen unveränderten input-bereich ist dir ja anscheinend selber klar, warum es nicht funzt)

bei deinem versuch fragst du z.B. ab, ob Aktuelles ausgewählt ist, dass ist aber nicht richtig, da der value von Aktuelles nicht Aktuelles (und auch nicht Rubrik 7), sondern rubrik7 ist. (also klein und ohne leerzeichen)

beispiel
dein post:

Code: Alles auswählen

//zweite Auswahlmöglichkeit:
echo '<option value="rubrik2" ';
if ($selected == "Aktuelles")       
         {echo 'selected ';}
echo 'style="background-color:#FF0000;background:#FF0000;">Aktuelles</option>'; 
richtig wäre (wenn Aktuelles = rubrik2 ist || bei dir ändern sich diese angaben ja ständig von post zu post):

Code: Alles auswählen

//zweite Auswahlmöglichkeit:
echo '<option value="rubrik2" ';
if ($selected == "rubrik2")       
         {echo 'selected ';}
echo 'style="background-color:#FF0000;background:#FF0000;">Aktuelles</option>'; 
wenn das nicht funzen sollte gib mal im input bereich - nur zum testen - selected aus (echo $selected), um zu gucken was der überhaupt genau speichert.

ich nehme an, dass der redakteur nur beim erstellen der kategorie die konfiguration machen muss und das - wie das i.d.R. der fall ist - selten neue kategorien hinzukommen. anonsten finde ich deinen ansatz nämlich vom workflow nicht gut.
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

trixta hat geschrieben: bei deinem versuch fragst du z.B. ab, ob Aktuelles ausgewählt ist, dass ist aber nicht richtig, da der value von Aktuelles nicht Aktuelles (und auch nicht Rubrik 7), sondern rubrik7 ist. (also klein und ohne leerzeichen)

Es geht!! Da habe ich was mit den HTML-Formularen durcheinander bekommen. Ich meine, ich hätte das schon mal versucht versucht, bin aber wohl an Flüchtigkeitsfehlern oder sowas gescheitert.

Wie blöd von mir .... Trixta und Timo, danke für eure Hilfe und Zeit.
Gesperrt