Hallo liebes Forum,
nachdem ich nun schon ziemlich lange gesucht und probiert habe, bringe ich meine Fragen mal hierher - vielleicht hat ja jemand einen Ansatz.
Ich möchte gern die "fe_users" erweitern. Das geht ja auch relativ unkompliziert (z.B. ein Haken setzen für AGB's). Nun möchte ich aber ein paar komplexere Sachen umsetzen. Anstatt "zip" und "city" einzupflegen, möchte ich gerne ein Pulldownmenü anbieten, mit einer Vorauswahl - zusammengesetzt aus "zip city" - die Werte dann aber wieder getrennt speichern (um z.B. nur bestimmte PLZs zu erlauben).
Das ist die eine Sache. Wenn ich dafür einen konkreten Ansatz bekommen könnte, schaffe ich die zweite Sache hoffentlich auch so. Meine derzeitige Überlegung ist, mit Hooks zu arbeiten. Steige da aber (trotz längerem Lesens) noch nicht so recht durch.
Hat jemand eine Idee für mein geschildertes Problem? Bin für jede Hilfe dankbar.
Lieben Gruß,
Niels
Ok, bin (denke ich) einen Schritt weiter. Keine Ahnung, warum ich das gestern noch nicht sehen konnte... Bin zur Zeit in
/sr_feuser_register/hooks/class.tx_srfeuserregister_hooksHandler.php
...und dort in der Funktion
registrationProcess_beforeConfirmCreate()
Vielleicht lässt sich mein Problem hier lösen. Ich bin guter Dinge 😉 und warte mal ab, was der Tag noch so bringt. Bin trotzdem noch für Tipps offen. Sollte ich das Problem so lösen können, werde ich es hier posten.
Gruß,
Niels
Ich werde hier noch zum Alleinunterhalter... 😉
function registrationProcess_beforeConfirmCreate(&$recordArray, &$invokingObj) {
// fuer Forumausgabe gekuerzt (...)
$zipcityArray['config']['type'] = 'select';
if( t3lib_extMgm::isLoaded('tic_feuser_exp') ) {
$select_fields = 'uid, zip, city';
$from_table = 'tx_ticfeuserexp_zip';
$orderBy = 'zip,city';
$resultArray = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows($select_fields,$from_table,$where_clause='','',$orderBy);
if( !empty($resultArray) ) {
foreach( $resultArray as $key => $value ) {
$zipcityArray['config']['items'][$key][0] = $value['zip'].' '.$value['city'];
$zipcityArray['config']['items'][$key][1] = $value['uid'];
}
} else {
$zipcityArray['config']['item'][0][0] = '';
$zipcityArray['config']['item'][0][1] = '';
}
}
$invokingObj->TCA['columns']['tx_ticfeuserexp_zipcity'] = $zipcityArray;
$invokingObj->markerArray['###LABEL_TX_TICFEUSEREXP_ZIP###'] = $invokingObj->LOCAL_LANG['de']['tx_ticfeuserexp_zip'];
}
So habe ich es bisher umgesetzt. Die entsprechenden Daten werden aus meiner Datenbanktabelle ausgelesen. Die Speicherung der zipcity ID und die entsprechenden Einträge in 'zip' und 'city' passiert dann hier:
function registrationProcess_afterSaveCreate()
Das ist soweit auch alles schön und gut. Ärgerlich ist nur, dass ich z.B. meinen Marker neu/selbst setzen muss. Und auch alle anderen ergänzten Felder sowie die 'usergroup' neu abfragen muss und dann per Update in die DB puste... Das kommt mir noch nicht wirklich optimal vor...
Ist vermutlich zu speziell, aber weiß jemand, woran es liegen kann, dass meine vorherige Speicherung der Daten nicht mehr läuft? Habe ich mir das durch die Hooks "kaputt" gemacht?
Gruß,
Niels