Zum Inhalt springen

Typolink für JavaScript-Aufruf mit Parameter

Erstellt am 22. September 2008 · 2 Antworten · letzte Antwort am 23. September 2008

Tags: Frage

Thilo84 ·

Hallo zusammen

Ich habe ein Problem mit einem typolink im Zusammenhang mit einem Javascript-Aufruf. Ich würde gerne ein Bild inklusive Bild-Beschreibung per JavaScript austauschen. Dazu wird die JS-Funktion showProductContent ( image, desc ) aufgerufen.
Da ein solches Produkt in einem FCE gespeichert wird möchte ich diesen Link per Typoscript erstellen.

10.stdWrap.typolink.parameter = javascript:showProductContent('{TSFE:lastImageInfo|origFile}','{field:field_desc}')
10.stdWrap.typolink.parameter.insertData = 1

Dies funktioniert soweit schon fast. Allerdings gibt es da ein Problem mit dem typolink Objekt. Sobald in der Beschreibung ein Leerzeichen vorhanden ist, wird der Link nicht mehr richtig generiert. Nun müsste ich sowas wie die PHP-Funktion urlencode() auf das {field:field_desc} anwenden.

Hat mir jemand eine Idee für dieses Problem?

Vielen Dank & Mit freundlichen Grüssen
Thilo

Der komplette Auszug aus dem FCE.

<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<t3datastructure>
	<meta type="array" />
		<langdisable>1</langdisable>
	</meta>
	<root type="array">
		<tx_templavoila type="array">
			<title>ROOT</title>
			<description>Select the HTML element on the page which you want to be the overall container element for the template.</description>
		</tx_templavoila>
		<type>array</type>
		<el type="array">
			<field_title type="array">
				<tx_templavoila type="array">
					<title>Product Title</title>
					<sample_data type="array">
						<numindex index="0"></numindex>
					</sample_data>
					<etype>input_h</etype>
					<tags>p</tags>
				</tx_templavoila>
				<tceforms type="array">
					<config type="array">
						<type>input</type>
						<size>48</size>
						<eval>trim</eval>
					</config>
					<label>Product Title</label>
				</tceforms>
			</field_title>
			<field_image type="array">
				<tx_templavoila type="array">
					<title>Product Image</title>
					<sample_data type="array">
						<numindex index="0"></numindex>
					</sample_data>
					<etype>image</etype>
					<tags>img</tags>
					<typoscript>
	10 = IMAGE
	10.file.import = uploads/tx_templavoila/
	10.file.import.current = 1
	10.file.import.listNum = 0
	10.file.maxW = 80
	10.file.maxH = 50

	10.stdWrap.typolink.parameter = javascript:showProductContent('{TSFE:lastImageInfo|origFile}','{field:field_desc}')
	10.stdWrap.typolink.parameter.insertData = 1
							</typoscript>
				</tx_templavoila>
				<tceforms type="array">
					<config type="array">
						<type>group</type>
						<internal_type>file</internal_type>
						<allowed>gif,png,jpg,jpeg</allowed>
						<max_size>1000</max_size>
						<uploadfolder>uploads/tx_templavoila</uploadfolder>
						<show_thumbs>1</show_thumbs>
						<size>1</size>
						<maxitems>1</maxitems>
						<minitems>0</minitems>
					</config>
					<label>Product Image</label>
				</tceforms>
			</field_image>
			<field_desc type="array">
				<tx_templavoila type="array">
					<title>Product Description</title>
					<sample_data type="array">
						<numindex index="0"></numindex>
					</sample_data>
					<etype>rte</etype>
					<proc type="array">
						<hsc type="integer">0</hsc>
					</proc>
					<typoscript><![CDATA[
	10 = TEXT
	10.current = 1
	10.parseFunc = < lib.parseFunc_RTE
							]]></typoscript>
				</tx_templavoila>
				<tceforms type="array">
					<config type="array">
						<type>text</type>
						<cols>48</cols>
						<rows>5</rows>
						<softref>typolink_tag,images,email[subst],url</softref>
					</config>
					<label>Product Description</label>
					<defaultextras>richtext:rte_transform[flag=rte_enabled|mode=ts_css]</defaultextras>
				</tceforms>
				<type>no_map</type>
			</field_desc>
		</el>
	</root>
</t3datastructure>
steffenk ·

versuch doch mal sowas

10.stdWrap.typolink.parameter.cObject = TEXT
10.stdWrap.typolink.parameter.cObject {
   data = javascript:showProductContent('{TSFE:lastImageInfo|origFile}','{field:field_desc}')
   rawUrlEncode = 1
   insertData = 1
}

ungetestet

edit: kann so nicht gehen da er dann alles encoded.
Auch wenn ichs jetzt nicht aus dem Ärmel schütteln kann, vom Prinzip:
1. mit setCurrent field_desc rawUrlEncoden, dann mit current=1 holen und einfügen

Thilo84 ·

Also meine aktuell funktionierende Lösung sieht wie folgt aus...
Danke vielmals für die Hinweise!

	10.stdWrap.typolink.parameter.cObject = COA
	10.stdWrap.typolink.parameter.cObject {
		10 = TEXT
		10.value = javascript:showProductContent('{TSFE:lastImageInfo|origFile}','
		10.insertData = 1
		
		20 = TEXT
		20.field = field_desc
		20.rawUrlEncode = 1
		
		30 = TEXT
		30.value = ')
	}