Zum Inhalt springen

"Seiteneigenschaften -> Resourcen ->Dateien" an Plugin übergeben

Erstellt am 23. Juli 2009 · 3 Antworten · letzte Antwort am 23. Juli 2009

Tags: Seiten & Seitenbaum, Dateien & FAL, Frage

sunixzs ·

Hallo Forum,

In den "Seiteneigenschaften" bei den "Resourcen" im Feld "Dateien" kann man Dateien auswählen und per TS weiter verarbeiten. Diese Dateien sind bei mir Bilder. Die Bildernamen will ich als Wert in einem Plugin übernehmen:

# Bilder aus den Seiteneigenschaften holen
flashRightImages = TEXT
flashRightImages {
	data = levelmedia:-1, slide
	wrap = |
}

Dies gibt mir auch korrekt meine Bilder aus wie ich sie zur weiteren Verarbeitung im Plugin benötige (getestet, indem ich die Ausgabe an einen Marker leite):

Beispiel:
bild1.jpg,bild2.jpg,bild3.jpg

Nun gehe ich her und lade mein Plugin in einen Marker:

page.10.marks.FLASH_RIGHT = COA
page.10.marks.FLASH_RIGHT {
	10 < plugin.tx_xpflashimageline_pi1
	10 {
		swf_height = 141
		swf_width = 252
		rotationTime = 3000
		aniTime = 500
		effect = fade
		
		# Uebernahme der Bildernamen aus levelmedia

		#images = bild1.jpg,bild2.jpg,bild3.jpg

		# Hier ist mein Problem
		images < flashRightImages

		path = uploads/media/
		links = 
		noFlash = Please activate JavaScript and Flashplayer to see the content
	}
	wrap = <div id="flashRight">|</div> 
}

Der Parameter für die Bilder im Plugin ist "images". Dort möchte ich die Ausgabe von "flashRightImages" setzen. Im oben gezeigten Beispiel steht dort aber nur "TEXT". Probiert habe ich schon verschiedene Schreibweisen der Zuordnung ("=", "<.", ...) und z. B. "levelmedia" direkt "images" zuzuweisen. Ebenso mit "images.stdWrap" oder "images.cObj" hatte ich keinen Erfolg.

Vllt. kennt einer das oder ein ähnliches Problem und könnte einen Tipp geben.

Vielen Dank

sunixzs

PS: Achso, in "flashRightImages" kann ich den Flash-Player vom Plugin nicht einfügen/wrappen, da die Daten für den Flash-Player per urlencoded XML übergeben werden. Falls es möglich ist die Dateinamen urlencoded zu schreiben, könnte ich evtl. diesen Weg gehen.

just2b ·

Hallo und willkommen im Forum,

analysieren wir mal die Ausgangslage. Dein Code produziert

images = TEXT
images.data = levelmedia:-1, slide

wenn du in deiner Ext $conf['images'] abfragst, erhältst du "TEXT", also genau richtig.

Lösung
du willst natürlich nicht TEXT sondern das "Ergebnis" des cObj TEXT haben, daher läuft das ganze so

$out = $this->cObj->TEXT($conf['images.']);

der . ist wichtig, weil als Parameter willst du natürlich das data übergeben.

weitere Lösung
das ganze funktioniert natürlich nur mit einem cObj TEXT und nicht mit anderen cObjs wie IMAGE oder was auch immer. Damit das ganze generisch gelöst werden kann, ist sowas empfehlenswert:

$out = $this->cObj->cObjGetSingle($conf['images'], $conf['images,']);

Man übergibt also als 1. Parameter den Namen des cObj und als 2. dessen Konfiguration.

viel erfolg
lg georg

sunixzs ·

Vielen Dank an Georg für die superschnelle Hilfe.

Ich dachte, dass ich da auf TS-Seite was machen könnte. Nun habe ich es in das Plugin geschrieben:

if ($this->conf['images'] == "TEXT"){
	/*
		Wahrscheinlich ein cObj vom Typ TEXT.
	*/
	$this->conf['images'] = $this->cObj->TEXT($this->conf['images.']); 
}

Auf folgendes habe ich verzichtet:

$this->conf['images'] = $this->cObj->cObjGetSingle($this->conf['images'], $this->conf['images.']);

Das Plugin benötigt nur die Dateinamen. Hier müsste ich beim Typ "IMAGE" den Bilderpfad zurückgeben ("images.returnUrl = 1" oder so?) und dann wiederum den Pfad zum Bild abschneiden.

Schönen Gruß

sunixzs