Seite 1 von 1

Verwendung von Content Variablen in Schleifen

Verfasst: Di 27. Feb 2007, 11:35
von Robatzen
Hallo zusammen,

bin grad dabei ein kleines Modul zu entwickeln und bin dabei über ein kleines Problem gestolpert, vielleicht kann mir jemand weiterhelfen? Sicher nur ein Denkfehler. :roll:

Habe mit der Suche leider keine Lösung gefunden.

Code: Alles auswählen

$moduleFoot = new ModuleFoot(1);
for($i=200; $i < $moduleFoot->entryCount + 200; $i++) {
	$entry[] = "CMS_HTML[".$i."]";
}
$moduleFoot->showModuleFoot($entry);
Das ist der betreffende Code Ausschnitt, ich möchte an eine Funktion eine flexible Anzahl von Content Feldern des Typs CMS_HTML übergeben. Nun hab ich leider das Problem, dass wenn ich die Content Felder über die Variable $i anspreche, ich in meiner Funktion den Inhalt des Feldes verliere und stattdessen CMS_HTML[200] als String übergeben bekomme.

Übergebe ich dagegen direkt CMS_HTML[200] habe ich in meiner Funktion auch den Inhalt der Content Variable vorliegen.

Vielleicht kann mir jemand weiterhelfen?

Gruß, Rob

Verfasst: Di 27. Feb 2007, 12:02
von MichFress
die Benutzerung von CMS_HTML ist derzeit nicht in Schleifen möglich.
CMS_VAR / CMS_VALUE geht, glaub ich - ein wenig Lesestoff für dich:
http://contenido.org/forum/viewtopic.php?t=3590

Verfasst: Di 27. Feb 2007, 12:32
von _Marc
Es ist zumindest nicht ohne weiteres möglich - bei installierter Simple Cache Engine von emergence oder deren Weiterentwicklung wurde die Möglichkeit ergänzt.

Verfasst: Di 27. Feb 2007, 12:50
von Robatzen
Besten Dank für die Hinweise und den Link.
Werde dann wohl einen schmutzigen WorkAround basteln.

Gruß, Rob

Nachsatz:

Definitiv keine schöne Lösung, aber für eine überschaubare Anzahl von Schleifendurchläufen ein halbwegs praktikabler aber schmutziger Workaround.

Code: Alles auswählen

$moduleFoot = new ModuleFoot(1);
for($i=200; $i < $moduleFoot->entryCount + 200; $i++) {
	switch($i){
		case 200:
			$entry[] = "CMS_HTML[200]";	
		break;
		case 201:
			$entry[] = "CMS_HTML[201]";	
		break;
		case 202:
			$entry[] = "CMS_HTML[202]";	
		break;
		case 203:
			$entry[] = "CMS_HTML[203]";	
		break;
		case 204:
			$entry[] = "CMS_HTML[204]";	
		break;
	}
}
$moduleFoot->showModuleFoot($entry);

Verfasst: Fr 16. Mär 2007, 14:21
von DerWutz
Benutze doch das Article Objekt! Der Konstruktor lautet Article($idart, $client, $lang, $idartlang = 0), danach kriegst du mit $article->getContent('html'); ein Array mit allen HTML-Containern.

Die Klasse ist in contenido/classes/class.article.php definiert und ausführlich kommentiert.