Hi Champs
Versuche einen Hook für sr_feuser_register zu schrieben, stehe aber grundlegend an einigen Punkten an.
I) IDEE DES HOOKS
Admins können FE_GROUPS erstellen und bei jeder Gruppe einen beliebigen Code hinterlegen (eine art referenzcode). Der Code soll bei der User-Registration wie folgt zum Zuge kommen: die FE_GROUPS sind Arbeitsgruppen. Der Arbeitsgruppen-Manager kann seinen Teilnehmern einen Code aushändigen. Wenn sich die Teilnehmer nun registrieren, können Sie den Code eingeben und werden automatisch der Arbeitsgruppe des jeweiligen Arbeitsgruppen-Managers zugeordnet. Der Code muss und soll nicht beim User gespeichert werden.
II) INSTALLATION / KONFIGURATION
Versionen und Einstellungen
TYPO3: Ver. 4.7.0
EXTENSIONS: sr_feuser_register (Ver. 3.0.1), fe_groups_fields (Ver. 0.0.0 - eigenentwicklung)
fe_groups_fields ist Dreh- und Angelpunkt für die Integration des Hooks:
typo3conf/ext/fe_groups_fields/ext_localconf.php:
<?php
if (!defined ('TYPO3_MODE')) {
die ('Access denied.');
}
$TYPO3_CONF_VARS['EXTCONF']['sr_feuser_register']['tx_srfeuserregister_pi1']['confirmRegistrationClass'][] = 'EXT:fe_groups_fields/hooks/class.registrationHooks.php:®istrationHooks';
$TYPO3_CONF_VARS['EXTCONF']['sr_feuser_register']['tx_srfeuserregister_pi1']['addGlobalMarkers'][] = 'EXT:fe_groups_fields/hooks/class.registrationHooks.php:®istrationHooks';
if (TYPO3_MODE=='FE'){
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['sr_feuser_register']['extendingTCA'][] = 'dtnewmarker';
}
?>
typo3conf/ext/fe_groups_fields/hooks/class.registrationHooks.php
<?php
class registrationHooks {
public function registrationProcess_beforeConfirmCreate(&$recordArray, &$controlDataObj) {
echo '<h1>registrationProcess_beforeConfirmCreate</h1>';
var_dump($recordArray);
}
public function registrationProcess_afterSaveEdit($recordArray, &$invokingObj) {
echo '<h1>registrationProcess_afterSaveEdit</h1>';
var_dump($recordArray);
}
public function registrationProcess_beforeSaveDelete($recordArray, &$invokingObj) {
echo '<h1>registrationProcess_beforeSaveDelete</h1>';
var_dump($recordArray);
}
public function registrationProcess_afterSaveCreate($recordArray, &$invokingObj) {
echo '<h1>registrationProcess_afterSaveCreate</h1>';
var_dump($recordArray);
}
public function confirmRegistrationClass_preProcess(&$recordArray, &$invokingObj) {
echo '<h1>confirmRegistrationClass_preProcess</h1>';
var_dump($recordArray);
}
public function confirmRegistrationClass_postProcess($recordArray, &$invokingObj) {
echo '<h1>confirmRegistrationClass_postProcess</h1>';
var_dump($recordArray);
}
public function addGlobalMarkers(&$markerArray, &$invokingObj) {
echo '<h1>addGlobalMarkers</h1>';
Tx_Extbase_Utility_Debugger::var_dump($recordArray, 'FrontendUserGroup controller createAction - newFrontendUserGroup', 25);
var_dump($recordArray);
}
}
?>
III) PROBLEME
a) HOOKS reagieren nicht.
Problem 1: Ich erkenne trotz löschen aller Caches keinen Output.
Schreibe ich jedoch direkt in die Datei "sr_feuser_register/hooks/class.tx_srfeuserregister_hooksHandler" in den entsprechenden Hook, so erhalte ich die gewünschten ausgaben.
b) Eigene Felder ohne DB?
Problem 2: Ich habe bislang nirgends was gefunden, wie ich via Hook einen Marker komplett überschreiben / erstellen kann.
sprich wie ich die Werte hier bearbeiten kann habe ich mittlerweile raus - halt eben via Hook.: Wie aber komme ich an die effektive Ausgabe ran und kann entsprechend eingreifen und z.B. ein Pulldown-Menü erstellen?
<?php
markerArray:
Array
(
[###FIELD_module_sys_dmail_html###] => 0
[###FIELD_usergroup###] => [b][u]7[/u][/b]
[###FIELD_disable###] => 1
....
[###FIELD_by_invitation###] => 0
[###FIELD_name###] =>
[###FIELD_image###] =>
)
?>
c) ANREDE SELECT-Menü statt radio
Problem 3: Die Formatierung der Radio-Buttons ist ehrlichgesagt schlecht. (Mehr verwirrend als hilfreich!) Kennt jemand eine Möglichkeit, den Radio-Button zu einem Select-Menü umzuformen?
Danke für eure Hilfe
Aloha
Longnose