[Frage] sr_feuser_register, fe_user -> eigene Felder, Eingaben werden nicht gespeichert TYPO3-Version: 6.1.1

  • BlackPixel BlackPixe...
    Sternenflotten-Admiral
    0 x
    230 Beiträge
    3 Hilfreiche Beiträge
    10. 09. 2013, 10:53

    TYPO3 6.1.3, sr_feuser_register 3.0.2

    Ich beschäftige mich seit ca. 10 Stunden mit zwei zusätzlichen Feldern für den fe_user. Ich habe alle Tutorials, Foreneinträge etc. abgearbeitet und doppelt geprüft. Es will nicht.

    Ich habe zwei neue Felder in der fe_users erstellt. "collaboration" ist der Ext-Key, "cnfunction" das erste Feld, ein Input, "cncountry" das zweite Feld, ein select.

    In der ext_localconf.php habe ich folgendes hinterlegt:

    1. if (TYPO3_MODE == 'FE') {
    2. $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['sr_feuser_register']['extendingTCA'][] = 'collaboration';
    3. }

    In der ext_tables.php steht folgendes:

    1. $tmp_collaboration_columns = array(
    2.  
    3. 'cnfunction' => array(
    4. 'exclude' => 0,
    5. 'label' => 'LLL:EXT:collaboration/Resources/Private/Language/locallang_db.xlf:tx_collaboration_domain_model_user.cnfunction',
    6. 'config' => array(
    7. 'type' => 'input',
    8. 'size' => 30,
    9. 'eval' => 'trim'
    10. ),
    11. ),
    12. 'cncountry' => array(
    13. 'exclude' => 1,
    14. 'label' => 'LLL:EXT:collaboration/Resources/Private/Language/locallang_db.xlf:tx_collaboration_domain_model_user.cncountry',
    15. 'config' => array(
    16. 'type' => 'select',
    17. 'foreign_table' => 'tx_collaboration_domain_model_country',
    18. 'minitems' => 0,
    19. 'maxitems' => 1,
    20. ),
    21. ),
    22. );
    23.  
    24. t3lib_extMgm::addTCAcolumns('fe_users',$tmp_collaboration_columns);
    25.  
    26. $TCA['fe_users']['columns'][$TCA['fe_users']['ctrl']['type']]['config']['items'][] = array('LLL:EXT:collaboration/Resources/Private/Language/locallang_db.xlf:fe_users.tx_extbase_type.Tx_Collaboration_User','Tx_Collaboration_User');
    27.  
    28. #$TCA['fe_users']['types']['1']['showitem'] = $TCA['fe_users']['types']['1']['showitem'];
    29. #$TCA['fe_users']['types']['1']['showitem'] .= ',--div--;LLL:EXT:collaboration/Resources/Private/Language/locallang_db.xlf:tx_collaboration_domain_model_user,';
    30. #$TCA['fe_users']['types']['1']['showitem'] .= 'cnfunction, cncountry';
    31.  
    32.  
    33. t3lib_extMgm::addToAllTCATypes('fe_users',',--div--;LLL:EXT:collaboration/Resources/Private/Language/locallang_db.xlf:tx_collaboration_domain_model_user,cnfunction, cncountry');

    Nach einem Check im BE funktioneren die beiden Felder ohne Probleme. Die Eingabe lässt sich speichern und auch das Select behält seinen Wert.

    In den Konstanten habe ich folgendes gesetzt:

    1. plugin.tx_srfeuserregister_pi1.formFields = password, gender, terms_acknowledged, first_name, last_name, email, address, city, cncountry, cnfunction, zip, telephone, language, title, company, module_sys_dmail_html
    2. plugin.tx_srfeuserregister_pi1.requiredFields = password, first_name, last_name, email, terms_acknowledged, cnfunction

    Im TypoScript Setup kommt folgendes zum tragen:

    1. plugin.tx_srfeuserregister_pi1 {
    2. extraLabels = cnfunction, cncountry
    3. _LOCAL_LANG {
    4. de {
    5. missing_cnfunction = Funktion ist ein Pflichtfeld
    6. cnfunction = Funktion
    7. cncountry = Land
    8. }
    9. }
    10.  
    11. create {
    12. evalValues.cnfunction =
    13. evalValues.cncountry
    14. }
    15. }

    Das HTML Template für die Felder schaut so aus:

    1. <!-- ###SUB_INCLUDED_FIELD_cnfunction### -->
    2. <div class="register-labelfield">
    3. <!-- ###SUB_REQUIRED_FIELD_cnfunction### -->
    4. <p class="tx-srfeuserregister-pi1-error">###MISSING_CNFUNCTION###</p>
    5. <!-- ###SUB_REQUIRED_FIELD_cnfunction### -->
    6. <label for="tx-srfeuserregister-pi1-cnfunction">###LABEL_CNFUNCTION###<span class="orange">*</span></label>
    7. <input id="tx-srfeuserregister-pi1-cnfunction" type="text" size="40" maxlength="50" title="###TOOLTIP_cnfunction###" name="FE[fe_users][cnfunction]" class="tx-srfeuserregister-pi1-text" /> <div class="clear"></div>
    8. </div>
    9. <!-- ###SUB_INCLUDED_FIELD_cnfunction### -->
    10.  
    11.  
    12.  
    13.  
    14.  
    15. <!-- ###SUB_INCLUDED_FIELD_cncountry### -->
    16. <div class="register-labelfield">
    17. <!-- ###SUB_REQUIRED_FIELD_cncountry### -->
    18. <p class="tx-srfeuserregister-pi1-error">###MISSING_CNCOUNTRY###</p>
    19. <!-- ###SUB_REQUIRED_FIELD_cncountry### -->
    20. <label for="tx-srfeuserregister-pi1-cncountry">Land<span class="orange">*</span></label>
    21. ###TCA_INPUT_cncountry###
    22. <div class="clear"></div>
    23. </div>
    24. <!-- ###SUB_INCLUDED_FIELD_cncountry### -->

    Und nun die Symptome:

    Bei der Registrierung erkennt die Ext das cnfunction als Pflichtfeld an. Wenn es leer ist, geht es nicht weiter. Die Fehlermeldung dazu wird aber nicht ausgegeben. Auch wenn ein Wert im Feld steht und ein anderes Pflichfeld leer ist, wird nach dem absenden cnfunction nicht mehr gefüllt. Das ist darin begründet dass die js Zeile updateForm() im Quelltext nicht für dieses Feld vorhanden ist.

    Das Select feld wird im FE bei einen required-Fehler des Formulars allerdings auf den Wert gesetzt, welcher ausgefüllt wurde.

    Allerdings werden beide Werte nicht in der Tabelle gespeichert. Ich bin wirklich ratlos und bräuchte dringend Hilfe.

    Besten Dank!

    TYPO3 Slider Revolution: https://www.rutschmann.biz/extensions/typo3-slider-revolution/
    TYPO3 Layerslider Extension: http://www.rutschmann.biz/extensions/typo3-layerslider/
    TYPO3 Responsive Flipbook Extension: http://www.rutschmann.biz/extensions/typo3-responsive-flipbook/
    TYPO3 PayPal Download Checkout: http://www.rutschmann.biz/extensions/typo3-paypal-download/

    http://www.rutschmann.biz/
    ----------------------------------------------------
    Extbase, Fluid, HTML & CSS Development


  • 1
  • 1