Zum Inhalt springen

calendar Base Event mit Powermail verknüpfen

Erstellt am 3. Februar 2009 · 14 Antworten · letzte Antwort am 14. April 2011

Tags: Powermail, Kalender & Termine, Frage

typomik ·

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

typomik ·

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

typomik ·

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

typomik ·

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!

Maximus ·
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

Maximus ·

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

Maximus ·

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

einpraegsam.​net ·
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
Maximus ·

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?!

einpraegsam.​net ·

Du kannst den Form-Tag von Powermail im HTML Template manuell überschreiben und auf ein powermail Formular auf einer anderen Seite leiten...

dirk.​f ·

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