PDA

Просмотр полной версии : Добавление новых полей в форму регистрации


Fearless Goblin
30.07.2008, 21:14
Всем добрый день.
В форме регистрации требуется добавить чекбокс, при отметке которого пользователь согашается с правилами и т.д.

Делал всё так точно, как написано в этом руководстве: http://wiki.typo3.org/index.php/Adding_fields_to_sr_feuser_register_registration_f orm
1. С помощью kickstarter-а создал расширение, которое добавляет в fe_users поле tx_lvregisterupdate_agree tinyint(3) DEFAULT '0' NOT NULL так, как описано здесь: http://wiki.typo3.org/index.php/Extending_typo3_tables
2. В шаблоне формы в части ###TEMPLATE_CREATE### вставил следующее:
<!-- ###SUB_INCLUDED_FIELD_agree### -->
<dt>
<label for="tx-srfeuserregister-pi1-agree"><span class="attention">###LABEL_AGREE###</span> ###REQUIRED_AGREE###</label>
</dt>
<dd>
<!-- ###SUB_ERROR_FIELD_agree### -->
<p class="tx-srfeuserregister-pi1-error">###EVAL_ERROR_FIELD_agree###</p>
<!-- ###SUB_ERROR_FIELD_agree### -->
<!-- ###SUB_REQUIRED_FIELD_agree### -->
<p class="tx-srfeuserregister-pi1-error">###MISSING_AGREE###</p>
<!-- ###SUB_REQUIRED_FIELD_agree### -->
###TCA_INPUT_agree###
</dd>
<!-- ###SUB_INCLUDED_FIELD_agree### -->
3. В plugin.tx_srfeuserregister_pi1.formFields и plugin.tx_srfeuserregister_pi1.requiredFields добавил agree.
4. В Setup шаблона прописал:
plugin.tx_srfeuserregister_pi1.create.evalValues.a gree =
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.default .agree = I agree all terms.
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.default .missing_agree = You should agree the terms!

Но в итоге на страничке регистрации вместо ожидаемого вижу:
###LABEL_AGREE###
###REQUIRED_AGREE###
###MISSING_AGREE###
###TCA_INPUT_agree###

В чём может быть проблема?

Fearless Goblin
30.07.2008, 21:47
Проблема решена.
Я не учёл тот факт, что кикстартер создаёт поле с именем tx_lvregisterupdate_agree, потому ничего и не работало. Мой промах.
Исправил - теперь всё в порядке :)

R.E.S.T.Art
24.06.2010, 20:19
Всем доброго времени суток!
Возникла необходимость добавить "свои" поля при регистрации пользователя. Целый день воюю - никак победить не получается. Все делаю в соответствии с руководствами, указанными в первом посте по данной теме.
Что сделал:
1) Создал своё расширение, которое добавило новые поля в таблицу fe_users.
2) Установил созданное расширение.
3) В шаблоне формы в части ###TEMPLATE_CREATE### вставил следующее:

<!-- ###SUB_INCLUDED_FIELD_tx_feusersfieldsforpromo_ope rational_exp### -->
<dt>
<label for="tx-srfeuserregister-pi1-tx_feusersfieldsforpromo_operational_exp">###LABEL_tx_feusersfieldsforpromo_operational_exp# ##</label>
<span class="tx-srfeuserregister-pi1-required">###REQUIRED_tx_feusersfieldsforpromo_operational_e xp###</span>
</dt>
<dd>
<!-- ###SUB_ERROR_FIELD_tx_feusersfieldsforpromo_operat ional_exp### -->
<p class="tx-srfeuserregister-pi1-error">###EVAL_ERROR_FIELD_tx_feusersfieldsforpromo_opera tional_exp###</p>
<!-- ###SUB_ERROR_FIELD_tx_feusersfieldsforpromo_operat ional_exp### -->
<!-- ###SUB_REQUIRED_FIELD_tx_feusersfieldsforpromo_ope rational_exp### -->
<p class="tx-srfeuserregister-pi1-error">###MISSING_tx_feusersfieldsforpromo_operational_ex p###</p>
<!-- ###SUB_REQUIRED_FIELD_tx_feusersfieldsforpromo_ope rational_exp### -->
###TCA_INPUT_tx_feusersfieldsforpromo_operational_ exp###
</dd>
<!-- ###SUB_INCLUDED_FIELD_tx_feusersfieldsforpromo_ope rational_exp### >

где tx_feusersfieldsforpromo_operational_exp - поле добавленное к fe_users.

4) Добавил следующий TS в setup шаблона:

plugin.tx_srfeuserregister_pi1.create.evalValues.t x_feusersfieldsforpromo_operational_exp =
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.default .tx_feusersfieldsforpromo_operational_exp = Опыт работы
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.default .missing_tx_feusersfieldsforpromo_operational_exp = Не указан опыт работы
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.default .missing_invitation_tx_feusersfieldsforpromo_opera tional_exp = Не указан опыт работы
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.default .evalErrors_evalRuleName_tx_feusersfieldsforpromo_ operational_exp = Неверный формат опыта работы

5) В папке с, созданным мною, расширением файла ext_localconf.php не оказалось, поэтому поступил как рекомендуется в руководстве - создал его. Содержимое файла (кодировка utf-8):

<?php
if (TYPO3_MODE=='FE') {
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['sr_feuser_register']['extendingTCA'][] = 'fe_users_fields_for_promo';
}
?>

6) Добавил поле tx_feusersfieldsforpromo_operational_exp (в formFields) в список полей формы.

В результате в форме регистрации нового пользователя:

<!-- ###SUB_INCLUDED_FIELD_tx_feusersfieldsforpromo_ope rational_exp### -->
<dt>
<label for="tx-srfeuserregister-pi1-tx_feusersfieldsforpromo_operational_exp">###LABEL_tx_feusersfieldsforpromo_operational_exp# ##</label>
<span class="tx-srfeuserregister-pi1-required">###REQUIRED_tx_feusersfieldsforpromo_operational_e xp###</span>
</dt>
<dd>


###TCA_INPUT_tx_feusersfieldsforpromo_operational_ exp###
</dd>
<!-- ###SUB_INCLUDED_FIELD_tx_feusersfieldsforpromo_ope rational_exp### >


Попробовал добавить тестовое echo в файл ext_localconf.php, чтобы убедиться, что он инклудится. Оказалось - не инклудится - тестовы текст не был обнаружен в коде страницы.
Прошу Вашей помощи.
Заранее благодарен.

R.E.S.T.Art
25.06.2010, 19:17
разобрался со всем - проблема не решалась из-за кэша, в котором сохранилось старое значение

greysells
09.07.2010, 10:55
R.E.S.T.Art подскажите пожалуйста подробнее, что нужно делать в Ваших пунктах 5 и 6 -ом. Буду очень признателен.