Zum Inhalt springen

Variable zwischen Seiten übergeben/übernehmen?

Erstellt am 8. Februar 2008 · 4 Antworten · letzte Antwort am 9. Februar 2008

Tags: Links, Frage

MagusDigitalis ·

Hallo zusammen,

vor lauter cObj, GPvar,TSFE und linkVar schwirrt mir nun seit Stunden nur noch der Kopf #angry# , deshalb wende ich mich jetzt an Euch mit der Bitte um Hilfe bei der Wiederherstellung meiner geistigen Gesundheit 😉

Ich möchte einfach nur einen String von einer Seite auf eine andere transportieren und dort ausgeben lassen.

Klingt einfach - ist es vermutlich auch ... wenn man es rein in PHP machen würde zumindest ja.
Aber mit TS muss sowas doch auch gehen - da bin ich sicher, wenn ich nur wüßte wie...!?

Bisher habe ich mich soweit eingearbeitet das ich einen normalen Typolink erzeugen kann, der ans Ende der auf static umgeschriebenen Seitenadresse den String dranhängt.
Beispiel:
seitenname.html?res='hier steht der string'

Den Typolink erzeuge ich im Moment so:

BOOKER.typolink{
		parameter		= 32
	#	no_cache		= 1
	
	ATagParams = class="BOOKER"

	additionalParams.cObject = COA
	additionalParams.cObject {
        	              	1 = TEXT
				1.field = title
	        		1.rawUrlEncode = 1
			        1.wrap = &res='|'
		                }
	addQueryString 	= 1
	addQueryString.method 	= GET
	}

Hintergrund:
Ich arbeite an einem sehr einfachen Reservierungssystem für ein Theater. Der als TS-Markerobjekt dynamisch eingesetzte Link wird nur auf den Stückbeschreibungsseiten eines bestimmten Seitenbaum-Bereichs eingeblendet. Wird die Seite später ins "Archiv" (also schlicht einen anderen Seitenbaum-Bereich) verschoben verschwindet damit auch der Link.

Der Link leitet über "parameter = 32" zur Reservierungsseite weiter, was ohne Probleme geht.

Auf der Reservierungsseite wiederum soll als Text der übergebene String mit dem Namen des Stücks erscheinen das zu reservieren ist.

Mir fehlt jetzt also nur noch das Wissen wie man auf der Zielseite einen Marker mit dem übergebenen Wert/Variable/Parameter befüllen kann - vorausgesetzt der vorherige Schritt funktioniert überhaupt, denn an *.html hängt man doch normalerweise keine Parameter an, oder geht das hier wegen der mod_rewrite-Maskierung doch?

Was muss ich denn nun im TS-Setup der Zielseite eintragen um an den Inhalt meiner Variablen $res zu gelangen?

Ich bin für jeden konstruktiven Tipp dankbar ... und damit meine ich nicht klassisches "RTFM" bzw. "RTFTSref", denn da komm ich ja "piu molto confuso" her.

just2b ·

Hallo,

erstell zuersteinmal den link zB so:

typolink {
parameter = 32
additionalParams = &book[title]=
additionalParams.field = title
}

damit bekommst du so einen link: index.php?id=32&book[title]=Test

anschließend kannst du dann einfach mit

temp.foo = TEXT
temp.foo.data = GPvar:book|tile

den titel zurück.

noch hinweise:
- benütze ein typolink.useCacheHash = 1 um die Folgeseite cachen zu können
- benütze statt einem title doch besser eine uid von dem Datensatz/Seite
- realurl macht das ganze nichts aus

georg

MagusDigitalis ·

Schnell und hilfreich - Georg, Du bist der Held
- für heute Abend auf jeden Fall 😉

Deine erste Empfehlung zur alternativen Linkerstellung umzusetzen gelang mir nicht, obwohl ich Sie (Dank TSRef) als richtig nachvollziehen konnte und Deine Schreibweise und Varianten davon probierte.

Nutze ich aber meine Version mit additionalParams.cObject = COA usw. erscheint der Link - also muss ich nur etwas mehr tippen, komme aber zum gleichen Ergebnis.

Der zweite Code war jetzt genau der Schubs den ich gebraucht habe um wieder geradeaus denken zu können -DANKE!!!

Für alle die an ähnlichen Stellen stehen oder ähnliches planen hier nochmal Details zum Reservierungssystem:

Im Seitenbaum wurde eine Seite namens Spielplan sowie eine Seite Archiv angelegt
Eine fl_seo_sitemap sorgt auf beiden Seiten für die Auflistung aller jeweils untergliederten Seiten zu Stücken und Veranstaltungen

Spielplan untergliedert heisst die oberste Seite Reservierung und ist auf "im Menü versteckt" gesetzt
mailformplus ist die technische Grundlage für das Formular auf Reservierung

Es folgen in gleicher Ebene wie Reservierung die Einzelseiten mit den Stückbeschreibungen. Alle Beschreibungen erhalten durch das nachstehende TypoScript automatisch einen korrekt codierten Link zur Reservierungsseite.

Ist ein Stück gelaufen wird es einfach manuell aus dem Bereich Spielplan so auf Archiv gezogen das es via "Verschiebe Seite in" dort drin wieder abgelegt wird. Damit verschwindet auch der Reservierungslink.

SETUP von Spielplan
Nur der Ausschnitt der innerhalb von seite.10.marks. den Link erzeugt
BOOKER ist der Marker im Spielplan-Template den ich zur Ausgabe des Links zur Reservierung nutze.

seite=PAGE
seite{

	#andere templateanweisungen gekürzt

	10.marks{

		[globalVar = TSFE:id>10]
		#id>10 ist die ID von Spielplan

			BOOKER = TEXT
			BOOKER.value=<p><strong>Klicken für Reservierung<br /></strong></p>
			BOOKER.typolink{	
					parameter	= 32
					# 32 ist die ID der Reservierungsseite
					no_cache	= 1
					# Seite mit ID 32 nicht cachen
					useCacheHash	= 1
					#erzeuge zur Sicherheit einen Hash
				
			                ATagParams 	= class="BOOKER"
					#Füge dem a-Tag eine CSS-Klasse hinzu

					additionalParams.cObject = COA
					# erzeuge das COA für die Parameterübergabe
					additionalParams.cObject {
								1 = TEXT
								1.field = title
								# Datenfeld für String
								1.rawUrlEncode = 1
								# URLSonderzeichen encoden
								1.wrap = &res[title]= |
								# bringt den gewünschten
								# String in die Variable 
								# $res
								}				                
					}

		[global]

		}
	}

Setup von Reservierung
Nur der für die Wiedergabe des Titels wichtige Teil gleich in die ersten drei Zeilen gesetzt.
Alle weiteren TS-Anweisungen für die Wiedergabe hier gestrichen

reserve ist der Marker im mailformplus-Template den ich zur Ausgabe des übergebenen Stücktitels nutze.
Einmal als sichtbaren Text und ein zweites Mal als value-Teil eines Formularfeldes vom Typ "hidden"

temp.reserve = TEXT
temp.reserve.data = GPvar:res|title 
plugin.tx_thmailformplus_pi1.markers.reserve < temp.reserve

Und genau diese drei Zeilen waren es die ich gesucht hatte...

just2b ·

noch einen Kommentar zu deinem Script:

die condition wird nicht funktionieren bzw nicht geprüft werden, weil die nie innerhalb von {...} stehen dürfen und die letzten 3 Zeilen würden so schöner aussehen

      plugin.tx_thmailformplus_pi1.markers.reserve = TEXT
      plugin.tx_thmailformplus_pi1.markers.reserve.data = GPvar:res|title

georg

MagusDigitalis ·

Und wieder was gelernt!

Du hattest natürlich recht was die Conditions angeht.
Da ich das TS für diesen Block ins SETUP der Startseite des Seitenbaumbereichs gelegt hatte erschien es mir nur als würde das funktionieren. Tatsächlich tat's das aber, wie Du richtig sagst, nicht.

Bei genauerer Betrachtung hätte mir auch selbst auffallen müssen, dass bei einer Condition [globalVar = TSFE:id>10] der Link auf der Seite mit ID 10 (der Bereichsstarseite) gar nicht hätte erscheinen dürfen, es aber dennoch tat.

Ich hab das inzwischen entsprechend angepasst und siehe da... 😉

Und stimmt, die drei Zeilen auf 2 zu reduzieren hat mehr Stil 😉

Danke Dir nochmals für die Hilfe und die willkommenen Tipps!