Dynamischer Zugriff auf n CMS_VAR[]

Gesperrt
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Dynamischer Zugriff auf n CMS_VAR[]

Beitrag von rethus »

Ich erstelle im Adminbereich >> Content >> Artikel >> Konfiguration dynamisch checkboxen variable anzahl.
Bennant sind diese CMS_VAR[$i]

Nun möchte ich in der Modulausgabe genau diese Checkboxen-Werte, welche angeklickt wurden auslesen. Beispiel, CMS_VAR[2] und CMS_VAR[34] wurden gewählt.
Welche Möglichkeit gibt es dazu, dies zu machen?
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Dynamischer Zugriff auf n CMS_VAR[]

Beitrag von rethus »

Eine Idee wäre mir gekommen, wäre aber nicht so wirklich sauber.
Nimmt man JavaScript zur hilfe, kann man beim aktivieren einer Checkbox, ein hidden-input-feld mit dem Value der Checkbox versehen.
Bei mehreren auswahlen, wird einfach eine komma-separierte Liste erzeugt.

Da das Feld ein hinput-feld ist, wird das Ergebnis an PHP geschickt und mann kann die Parameter auslesen, um an die Value-Werte zu kommen.

Sauberer würde ich es allerdings finden, wenn der Core-Code so erweitert würde, dass neben dem Parsen ein Array temporär zur Verfügung steht, welcher die geparsten Element-ID's inkl des Typs (CMS_IMG, CMS_HTML etc.) enthält. Damit wäre das Problem ein für allemal vom Tisch, weil man dann Modulspezifisch eine Aufstellung der zur Verfügung stehenden Platzhalter bzw. Variablen hätte.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: Dynamischer Zugriff auf n CMS_VAR[]

Beitrag von Dodger77 »

Die Idee funktioniert allerdings ganz gut, z.B. in der Article List Advanced mit Hilfe der enthaltenen Datei functions.input.helper.php:

http://forum.contenido.org/viewtopic.php?f=60&t=24508
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Dynamischer Zugriff auf n CMS_VAR[]

Beitrag von rethus »

Wo würdest du denn nach der Klasse suchen, welche die CMS_VAR-Werte der Module parst?
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Dynamischer Zugriff auf n CMS_VAR[]

Beitrag von rethus »

Wie es scheint, ist folgender Codeblock in functions.con2.php für die Umsetzung der Platzhalter in Variablen zuständig:

Code: Alles auswählen

			foreach ($tmp1 as $key1 => $value1)
			{

				$tmp2 = explode("=", $value1);
				foreach ($tmp2 as $key2 => $value2)
				{
					$varstring["$tmp2[0]"] = $tmp2[1];
				}
			}

			$CiCMS_Var = '$C'.$value.'CMS_VALUE';
			$CiCMS_VALUE = '';

			foreach ($varstring as $key3 => $value3)
			{
				$tmp = urldecode($value3);
				$tmp = str_replace("\'", "'", $tmp);
				$CiCMS_VALUE .= $CiCMS_Var.'['.$key3.']="'.$tmp.'"; ';
				$output = str_replace("\$CMS_VALUE[$key3]", $tmp, $output);
				$output = str_replace("CMS_VALUE[$key3]", $tmp, $output);
			}

			$output = str_replace("CMS_VALUE", $CiCMS_Var, $output);
			$output = str_replace("\$".$CiCMS_Var, $CiCMS_Var, $output);

			$output = preg_replace("/(CMS_VALUE\[)([0-9]*)(\])/i", "", $output);
gleiches Codesegment findet sich auch in :
  • include.pretplcfg_edit_form.php
  • include.pretplcfg_edit.php
  • include.tplcfg_edit_form.php
  • include.tplcfg_edit.php
IDEE:
Man könnte ja bei den Platzhaltern für dynamische Platzhalter einfach ein weiteres [] anfügen.

Beispiel:
statischer Platzhalter wie bisher:
CMS_VAR[0]
CMS_VAR[1]

dynamischer Platzhalter:
CMS_VAR[0][0]
CMS_VAR[0][1]

Was sagt Ihr dazu? Schainbar wäre das auf den ersten Blick auch nicht übermäßig viel Aufwand, da lediglich die Programmblöcke geändert werden müssen, welche diese Platzhalter einlesen, bzw. ausgeben. Und scheinbar beschränkt sich das auf die von mir oben angegebenen Dateien.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
Gesperrt