Zum Inhalt springen

sr_feuser_register Marker für radio-button greift nicht.

Erstellt am 9. Dezember 2013 · 4 Antworten · letzte Antwort am 13. Januar 2014

Tags: TCA, Frontend-Benutzer, TYPO3 4, Frage

romihue ·

Hallo,

Ich habe meine sr_feuser_register erweitert wie in den Tutorials per extension und funktioniert auch soweit. Allerdings will der TCA INPUT nicht greifen für radiobuttons.
Ist doch richtig, oder?:
Im Template:
Code:

<!-- ###SUB_INCLUDED_FIELD_tx_feuserextrafields_esc_graduacao### -->
    <dt>
        <label for="tx-srfeuserregister-pi1-tx_feuserextrafields_esc_graduacao">###LABEL_TX_FEUSEREXTRAFIELDS_ESC_GRADUACAO### ###REQUIRED_TX_FEUSEREXTRAFIELDS_ESC_GRADUACAO###</label>
    </dt>
    <dd>
        <!-- ###SUB_ERROR_FIELD_TX_FEUSEREXTRAFIELDS_ESC_GRADUACAO### -->
        <!-- ###SUB_ERROR_FIELD_TX_FEUSEREXTRAFIELDS_ESC_GRADUACAO### -->
        <!-- ###SUB_REQUIRED_FIELD_TX_FEUSEREXTRAFIELDS_ESC_GRADUACAO### -->
        <!--<p class="tx-srfeuserregister-pi1-error">###MISSING_TX_FEUSEREXTRAFIELDS_ESC_GRADUACAO###</p>-->
        <!--<input id="tx-srfeuserregister-pi1-tx_feuserextrafields_esc_graduacao" type="text" class="tx-srfeuserregister-pi1-text" size="40" maxlength="50" title="###TOOLTIP_TX_FEUSEREXTRAFIELDS_ESC_GRADUACAO###" name="###NAME_TX_FEUSEREXTRAFIELDS_ESC_GRADUACAO###" />-->
        ###TCA_INPUT_tx_feuserextrafields_esc_graduacao###
    </dd>
    <!-- ###SUB_INCLUDED_FIELD_ltx_feuserextrafields_esc_graduacao### -->

wobei der letzte Teil klein geschrieben wird. Das Label dafür erscheint.
esc_graduacao heißt das Feld und ist auch angelegt. In der ext_localconfig.php hat der Kickstarter schon
Code:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['sr_feuser_register']['extendingTCA'][] = 'feuserextrafields';

angelegt
und in der ext_table.php hab ich das hier:
Code:

'tx_feuserextrafields_esc_graduacao' => array(
        'exclude' => 0,
        'label' => 'LLL:EXT:feuserextrafields/locallang_db.xml:fe_users.tx_feuserextrafields_esc_graduacao',
        'config' => array(
            'type' => 'radio',
            'items' => array(
                array('LLL:EXT:feuserextrafields/locallang_db.xml:fe_users.tx_feuserextrafields_esc_graduacao.I.0', 'Sim'),
                array('LLL:EXT:feuserextrafields/locallang_db.xml:fe_users.tx_feuserextrafields_esc_graduacao.I.1', 'Não'),
            ),
        )
    ),

Nach einigem Suchen scheint mir alles richtig, aber trotzdem erscheinen die radiobuttons überhaupt nicht. Im quelltext erscheint aich nichts, nur das Label. Auch erscheinen die normalen Inputfelder. In MySql ist das Feld als Int angelegt.
Was mach ich falsch?

Wäre super wenn jemand eine Idee hat.

VG roman

Unbekannter Benutzer ·

Leider nein.

Wir hatten für das Typo3.net Projekt auch auf die Extention sr_feuser_register gesetzt.

Unsere Syntax sah auch so ähnlich wie deine aus.

ext_tables.php

$addColumnArray = Array(
[...]
	'gender' => Array (
		'exclude' => 0,
		'label' => 'LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.gender',
		'config' => Array (
			'type' => 'radio',
			'items' => Array (
				Array('LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.gender.I.99', '99'),
				Array('LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.gender.I.0', '0'),
				Array('LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.gender.I.1', '1')
			),
		)
	),
);
t3lib_extMgm::addTCAcolumns('fe_users', $addColumnArray);

Was dir helfen sollte den Fehler zu finden ist denke ich in der class.tx_srfeuserregister_marker.php in der Funktion addLabelMarkers().

			$label = preg_replace_callback('/{([a-z_]+):([a-zA-Z0-9_]+)}/', array(&$this, 'replaceVariables'), $label);
			$markerkey = $this->cObj->caseshift($value, 'upper');
			$markerArray['###LABEL_' . $markerkey . '###'] = $label;

Ich würde dir raten, einmal $markerkey auszugeben, um zu schauen, welchen Marker er versucht zu ersetzen. Vielleicht hat sich hier nur ein Zeichen versetzt, oder so ein ähnlicher Fehler 🙂

Gruß,
Ruven

romihue ·

Hallo Ruven,

Hat inzwischen funktioniert. Lag an der extension für extrfields. Hab eine älter von einem Kollegen benutzt und voilá hat ohne probleme funktioniert.

Gruß
Romihue