th_biedermann
Occasional Collector

Variabeln über eine pageref oder ohne pageref befüllen

Hallo zusammen

Ich hätte folgendes vor 🙂

Ich habe eine Seitenvorlage mit CMS_INPUT_COMBOBOX die den Wert in das Feld st_marke schreibt.

Dieser Absatz wäre dann auch als Seitenreferenz vorhanden.

 

  <CMS_INPUT_COMBOBOX name="st_marke" allowEmpty="yes" hFill="yes" hidden="yes" singleLine="no" useLanguages="no">
    <CMS_INCLUDE_OPTIONS type="database">
      <LABELS>
        <LABEL lang="*">#item.Marke</LABEL>
      </LABELS>
      <TABLE>sfs_inserate_erecruiting.sfs_inserate_marke</TABLE>
    </CMS_INCLUDE_OPTIONS>
    <LANGINFOS>
      <LANGINFO lang="*" label="Marke"/>
      <LANGINFO lang="*" label="Marke"/>
    </LANGINFOS>
  </CMS_INPUT_COMBOBOX>

 

Kann dies irgendwie über eine Variable ausgelesen werden? -> pageref oder ohne pageref.

Ich möchte umgehen, dass der Redakteur nichts falsches eingeben kann. Die Daten kommen aus einer Datenbank.

Grüsse. Thomas

0 Kudos
1 Reply
hoebbel
Crownpeak employee

Hallo Thomas,

tut mir leid, die Anfrage verstehe ich nicht.

Der Redakteur kann nur Werte auswählen, die in der entsprechenden Drop-Down-Liste stehen. Wenn er anfängt zu tippen, wird der nächste passende Wert ausgewählt.

Der Wert aus der Datenbank kann dann direkt mittels $CMS_VALUE(st_marke.value.Marke)$ ausgegeben werden (ich gehe mal davon aus, dass dasselbe Feld verwendet werden soll, dass in der Eingabekomponente sichtbar ist [falls es mehr als eine Spalte in der Datenbank gibt].

Auffällig für mich ist nun noch, dass die Eingabekomponente versteckt ist (hidden="yes") {dann kann man nichts eingeben} und dass die Beschriftung der Eingabekomponente doppelt ist (<LANGINFO lang="*" label="Marke"/>).

Oder geht es darum, dass in dem Absatz dasselbe ausgewählt werden soll wie in der Seite? Wenn ja, warum?
Ich rate mal, dass der Wert aus der Combobox dazu verwendet werden soll, in einer anderen Auswahlkomponente einen Query entsprechend anzupassen. Wenn ja, würde ich das so lösen:

Auf Seitenebene eine zusätzliche Eingabekomponente definieren, die versteckt ist und die Marke als Text beinhaltet. Per Regel den Wert der COMBOBOX mit der Markenauswahl in diese Textkomponente schreiben. Das braucht man, um dei Daten im nächsten Teil in den Absatz zu "holen".

<RULE>
	<WITH>
		<PROPERTY name="ENTRY" source="pt_marke"/>
	</WITH>
	<DO>
		<PROPERTY name="VALUE" source="pt_marke_text"/>
	</DO>
</RULE>

Jetzt in dem Zielabsatz über eine Regel den Wert der Eingabekomponente auf Seitenebene auslesen. Dafür gibt es in FirstSpirit den mitgelieferten FormDataValueService (seit 2020-12)

<RULE>
	<SCHEDULE delay="0" id="Marke" service="FormDataValueService">
		<PARAM name="UID">
			<PROPERTY name="PAGE_UID" source="#global"/>
		</PARAM>
		<PARAM name="UIDTYPE">
			<TEXT>PAGESTORE</TEXT>
		</PARAM>
		<PARAM name="FIELD">
			<!-- Der Name der Eingabekomponente, deren Wert verwendet werden soll -->
			<TEXT>pt_marke_text</TEXT>
		</PARAM>
		<PARAM name="LANGUAGE">
			<TEXT>DE</TEXT>
		</PARAM>
	</SCHEDULE>
	<DO>
		<PROPERTY name="query.Marke" source="st_markenauswahl"/>
		<!-- und /oder, wenn der Wert im Absatz ebenfalls in ein Textfeld geschrieben werden soll [auch hilfreich, wenn man es mal ausprobieren will] -->
		<PROPERTY name="VALUE" source="st_marke_text"/>
	</DO>
</RULE>

Mehr Informationen zu dem Service findest Du wie üblich in der Dokumentation 🙂

Wenn ich es falsch interpretiert habe (wie gesagt, ich habe nur geraten) - kannst Du dann versuchen, den Anwendungsfall für mich verständlicher zu beschrieben?

Viele Grüße
Holger

0 Kudos