Hallo,
ich will cal mit powermail verknüpfen.
Dazu sollen von einem ausgewählten event der Titel, das Datum und ein paar Adressdaten ins powermail formular übertragen werden.
so, Titel und Datum geht ja (fast) einfach:
plugin.tx_powermail_pi1 {
prefill{
#### Seminartitel aus cal event übernehmen
uid239 = COA
uid239.10 = RECORDS
uid239.10 {
wrap =|
source.data = GPvar:tx_cal_controller|uid
tables = tx_cal_event
conf.tx_cal_event = TEXT
conf.tx_cal_event.field = title
}
#### Seminardatum u Zeit aus cal event übernehmen
uid240 = COA
uid240.10 = RECORDS
uid240.10 {
wrap =|
source.data = GPvar:tx_cal_controller|uid
tables = tx_cal_event
conf.tx_cal_event = TEXT
conf.tx_cal_event.field = start_date
}
uid240.20 = RECORDS
uid240.20 {
wrap =|
source.data = GPvar:tx_cal_controller|uid
tables = tx_cal_event
conf.tx_cal_event = TEXT
conf.tx_cal_event.field = start_time
}
Aber bei der Adresse wirds interessant bzw. - da finde ich keine Lösung, denn:
im selektierten Datensatz von tx_cal_event steht nur die uid des tt_address satzes ( = location_id).
Ich müsste also ein select per join etc absetzen, aber wie krieg ich das auf das formularelement?
Grüsse, Kurt
Im Notfall mit einer Mini userFunc - sollte aber auch mit TS machbar sein (auch wenn ich gerade nicht weiß wie)
Mini userFunc ok,
abe rlass uns mal vorab was klären:
Wo muß eine userFunction heute exakt liegen?
Wenn ich es z.B. mit includeLibs.meine_id = fileadmin/meineuserfunktion.php probiere, passiert nix.
Erst wenn ich die function in dieses Verzeichnis lege, tut sich was:
typo3/sysext/cms/tslib/media/scripts/
Gibt es irgendwelche Sicherheitsbedenken oder Systemeinstellungen, die ich nicht kenne?
Grüsse
Kurt
Selbstverständlich kann eine userFunc auch unter fileadmin liegen - wie ist dein TS? includeLibs?
Hallo Alex,
einen Teil der Lösung habe ich schon.
1. das mit dem includeLib war mein Fehler (irgendwo ein Buchstabendreher ...)
2. die userfunc sieht jetzt so aus:
<?
class user_caleventuidtottaddress {
var $cObj;// The backReference to the mother cObj object set at call time
/**
routine holt per tx_cal_event|uid den zugehörigen tt_address satz
kurt knote, 01 2009
**/
function main($content,$conf){
$select='tt_address.uid, tt_address.name, tt_address.phone, tt_address.address, tt_address.zip, tt_address.city';
$from='tt_address INNER JOIN tx_cal_event';
$where='tx_cal_event.uid=128 AND tt_address.uid=tx_cal_event.location_id';
$res = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows($select, $from, $where);
$content.=$res[0][name].', '.$res[0][address].', '.$res[0][zip].' '.$res[0][city].', '.$res[0][phone];
return $content;
}
}
?>
Jetzt fehlt mir nur noch das Auslesen der txcalevent-uid ( oben ist dafür einfach die 128 eingesetzt!).
Da habe ich wieder mal keinen Schimmer, da ich ein verschachteltes Array auslesen muß!
so sieht das Array aus:
Array
(
[tx_cal_controller] => Array
(
[getdate] => 20080501
[view] => event
[lastview] => month-1617|list-1624
[type] => tx_cal_phpicalendar
[uid] => 128
)
[cHash] => f08864def4
)
so, die Frage ist also was muß in der Klammer stehen, um an die uid zu kommen?
$event_uid = t3lib_div::_GET( );
Grüsse Kurt
Hallo,
ich habs endlich rausgefunden, wie ich zur uid in der verschachtelten url komme:
foreach($_GET['tx_cal_controller'] as $parameter => $wert) { // für alle $_GET[$parameter]=$wert
if($parameter == "uid") {$event_uid = $wert;}
};
grüsse, Kurt
PS: ich habe übrigens auch das Auslesen von Datum und Zeit per PHP gelöst, da CAL speziell das Datum seltsamerweise als String ablegt!
typomik schrieb
so, Titel und Datum geht ja (fast) einfach:
Hallo Kurt,
genau dieses Problem bekomme ich nicht in den Griff?!
Ich habe versucht die Daten des aktuellen Events auszulesen,
jedoch ohne erfolgt. Ich verwende dabei als Kalender-Extension
Extendet Calendar.
Ich habe das Powermail-Formular in das Eventformular des Kalenders angefügt.
Somit sollte ich den direkten Zugriff auf die uid des aktuellen Events haben.
Die Userdaten werden angezeigt.
Der url-Eintrag sieht wie folgt aus: .../index.php?id=227&tx_calendar_pi1[f1]=3&cHash=9a586a51e5
plugin.tx_powermail_pi1 {
prefill {
uid23 = COA
uid23.10 = RECORDS
uid23.10 {
wrap =|
source.data = GPvar:tx_calendar_pi1|uid
tables = tx_calendar_item
conf.tx_calendar_item = TEXT
conf.tx_calendar_item.field = title
}
}
}
Es wird einfach garnichts angezeigt 🙁
Habe ich irgendwas übersehen?
Sind sonst noch Einstellungen in Typo3 notwendig?
Gruß
Max
Hi Max,
vielleicht hilft dir dieser Beitrag weiter:
#87081
Grüße, Alex
Hallo Alex,
diesen Tipp hatte ich schon gelesen, danke.
Da ich schon auf der Eventseite bin, möchte ich den
User die Möglichkeit geben, sich genau für dieses Event anzumelden.
Also ist da eine Auswahlliste nicht das was ich suche.
Irgendwie verstehe ich das auch nicht so richtig.
Ich habe sämtliche Daten auf der Seite (Even und Userdaten).
Ich möchte nur noch die Eventdaten in die Anmelde-Mail übertragen.
Daher war dieses Beispiel genau das, was ich gesucht habe.
Leider funktioniert das nicht, keine Ahnung warum #angry#
Ich habe schon versucht, systematisch an das Problem heran zu gehen.
So kann ich noch nicht einmal die Parameter auslesen:
plugin.tx_powermail_pi1 {
prefill {
uid23 = TEXT
uid23.data= GPvar:var
}
}
Das gibt mir schon mal zu denken.
Übrigens, Dein Tipp funktioniert.
Ich erhalte nun eine Liste sämtlicher Events aus dem Kalender (tx_calendar_item).
Nur ist das nicht das was ich umsetzen möchte...
Gruß
Max
Ich weiß das es funktioniert, müsste es aber auch erst selbst ausprobieren...
Ich denke auch das es funktioniert.
Das Problem liegt, so glaube ich, in dem auslesen des 2. Parameters:
.../index.php?id=227&tx_calendar_pi1[f1]=3&cHash=9a586a51e5
uid23 = TEXT
uid23.data = GPvar:id
Ergebnis: 227 = OK
uid23 = TEXT
uid23.data = GPvar:cHash
Ergebnis: 9a586a51e5 = OK
uid23 = TEXT
uid23.data = GPvar:tx_calendar_pi1
Ergebnis: nix?!
Auch die Änderung: uid23.data = GPvar:tx_calendar_pi1[f1] bringt nix?!
Jetzt weiß ich einfac nicht mehr weiter...
Gruß
Max
Maximus schrieb
uid23 = TEXT
uid23.data = GPvar:tx_calendar_pi1
Ergebnis: nix?!
Auch die Änderung: uid23.data = GPvar:tx_calendar_pi1[f1] bringt nix?!
Jetzt weiß ich einfac nicht mehr weiter...
Gruß
Max
Wenn überhaupt dann so:
uid23 = TEXT
uid23.data = GPvar:tx_calendar_pi1|f1
Hallo,
genau das war es, danke Dir.
Naja, manchmal sieht man den Wald vor lauter Bäumen nicht...
Es funktioniert Prima.
Leider "zerschießt" mir die Anmeldungsbestätigung von Powermail
nun meine Eventseite. Beim anzeigen der Anmeldungsdaten werden
die Daten des Events, durch die Löschung der URL-Parameter, geleert.
Das ist äußerst unschön und läßt sich wohl nur durch eine eigene
Anmeldungsseite richten. Also müßte ich nun die Parameter auf die
eigene Anmeldungsseite weiterleiten... nur wie?!
Du kannst den Form-Tag von Powermail im HTML Template manuell überschreiben und auf ein powermail Formular auf einer anderen Seite leiten...
Hallo,
schon mal danke für all die Hinweise.
Die Typoscript Einträge (ins Setup des Templates, nehme ich an) leuchten mir ein.
Aber wie realisiere ich den Link zum powermail-Anmeldeformular in der Detailansicht des Events?
Kommt vermutlich direkt in phpicalendar_event.tmpl. Was muss da rein?
Gruß
Dirk