Verwendung von Content Variablen in Schleifen

Gesperrt
Robatzen
Beiträge: 84
Registriert: Di 27. Jan 2004, 17:03
Kontaktdaten:

Verwendung von Content Variablen in Schleifen

Beitrag von Robatzen » Di 27. Feb 2007, 11:35

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

MichFress
Beiträge: 750
Registriert: Mo 5. Jan 2004, 22:32
Wohnort: Bochum
Kontaktdaten:

Beitrag von MichFress » Di 27. Feb 2007, 12:02

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
"Es wird keine Handlung geben, keine Geschichte mit ihrer Versprechung auf einen Anfang und ihrer Hoffnung auf ein Ende." (Andrzej Stasiuk)

_Marc
Beiträge: 76
Registriert: Di 12. Sep 2006, 11:38
Kontaktdaten:

Beitrag von _Marc » Di 27. Feb 2007, 12:32

Es ist zumindest nicht ohne weiteres möglich - bei installierter Simple Cache Engine von emergence oder deren Weiterentwicklung wurde die Möglichkeit ergänzt.

Robatzen
Beiträge: 84
Registriert: Di 27. Jan 2004, 17:03
Kontaktdaten:

Beitrag von Robatzen » Di 27. Feb 2007, 12:50

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);

DerWutz
Beiträge: 6
Registriert: Fr 16. Mär 2007, 14:05
Kontaktdaten:

Beitrag von DerWutz » Fr 16. Mär 2007, 14:21

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.

Gesperrt