Zum Inhalt springen

Powermail:MM Relation speichern

Erstellt am 2. Oktober 2008 · 6 Antworten · letzte Antwort am 7. Oktober 2008

Tags: Powermail, Datenbank, Frage

pulponair ·

Mahlzeit,

ich moechte den inhalt eines Formulars in 2 Tabellen schreiben (A und B) B ist dabei eine MM tabelle, deren Rechte seite wiederum auf eine andere Tabelle verweisst, in der Linken Seite steht die UID des "eigentlichen Formular Eintrags". Der Inhalt der Rechten seite kommt Powermailseitig aus einer selectbox. Wie ist das mit Typoscript zu bewerkstelligen. Meine Hauptfragen hierbei:

1. Wie komme ich an die UID des Daten satzes aus A
2. Wie sorge ich dafuer das 1-n Einträge in B gemacht werden. Nochmal links uid von A rechts die 1-n Eintraege aus der selectbox. Soll dann spaeter so aussehen:
A
-----------------
| UID | x |.....|
-----------------
| 1 | abc |.....|

B
---------
| L | R |
---------
| 1 | 1 |
---------
| 1 | 2 |

Ich hoffe das Problem ist nachvollziehbar, falls nicht Fragen 🙂

Bye,
nik

einpraegsam.​net ·

tt_address Beispiel:

# POWERMAIL PLUGIN #
plugin.tx_powermail_pi1 {
	dbEntry {
		# enable or disable db entry for tt_address
		tt_address._enable = TEXT
		tt_address._enable.value = 1
		
		# add mm relation to uid 2 of tt_address_group (via mm table)
		tt_address._mm = COA
		tt_address._mm.10 = COA
			# 1 is always the mm table
		tt_address._mm.10.1 = TEXT
		tt_address._mm.10.1.value = tt_address_group_mm
			# 2 is always the other table
		tt_address._mm.10.2 = TEXT
		tt_address._mm.10.2.value = tt_address_group
			# 3 is always the uid of the other table to get a relation to this (in this case uid2 of tt_address_group)
		tt_address._mm.10.3 = TEXT
		tt_address._mm.10.3.value = 2
	
		# table "tt_address" with field "email" is a static value => alexander.kellner@einpraegsam.net
		tt_address.email = TEXT
		tt_address.email.value = alexander.kellner@einpraegsam.net
	
		# table "tt_address" with field "pid" is the current pid (e.g. 12)
		tt_address.pid = TEXT
		tt_address.pid.field = uid
		
		# table "tt_address" with field "tstamp" is the current time as timestamp (like 123456789)
		tt_address.tstamp = TEXT
		tt_address.tstamp.data = date:U
		
		# table "tt_address" with field "address" is the current formatted time (like "Date: 20.01.2009")
		tt_address.address = TEXT
		tt_address.address.data = date:U
		tt_address.address.strftime = Date: %d.%m.%Y
		
		# table "tt_address" with field "name" is the value from powermail (tt_content uid 88-) field uid18 (###uid18###)
		tt_address.name = TEXT
		tt_address.name.data = TSFE:fe_user|sesData|powermail_88|uid18
		
		# table "tt_address" with field "last_name" is the value from powermail (tt_content uid 88-) field uid18 (###uid18###)
		tt_address.last_name = TEXT
		tt_address.last_name.data = TSFE:fe_user|sesData|powermail_88|uid18
		
		# table "tt_address" with field "company" is the value from powermail (tt_content uid 88-) field uid21_1 (###uid21_1###) (e.g. a checkbox value)
		tt_address.company = TEXT
		tt_address.company.data = TSFE:fe_user|sesData|powermail_88|uid21|1
	}
	
}
pulponair ·

Mja, das manual kann ich auch lesen, das ist aber ne statische UID auf die da referenziert wird und nicht die des aktuellen Eintrags. Auch geht daraus nicht hervor wie man eine Dynamische Anzahl von Relationen behandelt.
So Far,
nik

einpraegsam.​net ·
pulponair schrieb

Mja, das manual kann ich auch lesen, das ist aber ne statische UID auf die da referenziert wird und nicht die des aktuellen Eintrags. Auch geht daraus nicht hervor wie man eine Dynamische Anzahl von Relationen behandelt.

ok, du kannst lesen - auch denken? 😃

Nur Spaß, du kannst die Statische UID auch durchaus dynamisch machen - ist doch nur Typoscript.
Erste Relation 10, Zweite Relation 20, and so on...

So far,

Alex

pulponair ·

Ja klar, nur weiss ich nicht wieviele es maximal werden koennen, da die betreffende Selectbox ja dynamisch befuellt wird, das ist das Problem 😐. Daher wuerde ich gern über die komplette selectbox, bzw die untermenge der ausgewaehlten Einträge, traversieren. In meinem Fall ist das :

TSFE:fe_user|sesData|powermail_32|uid16|1-n

Ich kann natuerlich die selectbox auf maximal 100 gleichzeitige selectiebare Eintraege setzen und 100 Faelle definieren aber das ist irgendwie echt schmutzig 😐

Problematik erkannt?
bye,
nik

pulponair ·
einpraegsam.net schrieb

Dann würde ich einen Hook nutzen und die Daten selbst abspeichern oder mit einer userFunc in den Powermail Prozess eingreifen

Mja, hook waere plan b gewesen aber ich hab gehofft, das liese sich vermeiden.
Naja was solls "life ain't no ponyhof" 😉

Dank Dir trotzdem.
niki