LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 18:48:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Вопрос по статье "Добавляем в форму регистрации поле"  (Прочитано 3011 раз)
0 Пользователей и 1 Гость смотрят эту тему.
mijsvit
Давно я тут
****

Репутация: +6/-0
Offline Offline

Пол: Мужской
Сообщений: 206



« : 25.07.2008, 00:51:49 »

Спасибо за статью!
Интересует вопрос почему при добавлении формы в админку (com_users) данные формы не сохраняются в БД?
Как обрабатываются формы там?
Спасибо!
Записан
beliyadm
Профи
********

Репутация: +1438/-61
Offline Offline

Пол: Мужской
Сообщений: 8893


Севастополь==Россия


« Ответ #1 : 25.07.2008, 01:47:30 »

спрашиваешь по этой статье? прочитай еще раз и повтори все шаги, ибо все по ней работает (в том числе доступность нового поля в массиве $my)
Записан
mijsvit
Давно я тут
****

Репутация: +6/-0
Offline Offline

Пол: Мужской
Сообщений: 206



« Ответ #2 : 25.07.2008, 02:07:48 »

спрашиваешь по этой статье?
Да, все сделал как написано, информация сохраняется. Но не пойму, почему указано как вводить новые данные в БД, но нигде не указано как их выводить (смысл модификации теряется).

Я пытался сформировать в файлах: admin.users.php и user.html эту переменную так:
Код:
<?php $my->birthDate_m; ?>
а также так:
Код:
<?php $row->birthDate_m; ?>
- без результата Sad

Кстати, если вывод/редактирование вывести удастся, стоить добавить эту переменную в параметр ввода Value="" , чтобы избежать повторного ввода данных.
Записан
beliyadm
Профи
********

Репутация: +1438/-61
Offline Offline

Пол: Мужской
Сообщений: 8893


Севастополь==Россия


« Ответ #3 : 25.07.2008, 02:15:00 »

если все сделал по инструкции то например в админке при редактировании данных юзверя новое поле будет доступно в функции function edituser как $row->newfield
на фронте при авторизованном юзвере через массив $my - $my->newfield
ну и если на то пошло то нужно выводить не так
Код:
<?php $row->birthDate_m; ?>
а так
Код:
<?php echo $row->birthDate_m; ?>
почему указано как вводить новые данные в БД, но нигде не указано как их выводить (смысл модификации теряется).
а это уже как тебе угодно Azn Я лично в данный момент подобным образом делаю личный кабинет пользователя для магазина
Записан
mijsvit
Давно я тут
****

Репутация: +6/-0
Offline Offline

Пол: Мужской
Сообщений: 206



« Ответ #4 : 25.07.2008, 02:28:28 »

хм, не получается так.

Цитировать
а это уже как тебе угодно  Я лично в данный момент подобным образом делаю личный кабинет пользователя для магазина
Это хорошо, я б тоже личный кабинет начал делать если бы хоть одно значение показалось с БД Azn

Перепробывал все методы перед тем, как обратится за помощью - уже и сторонние файлы перечитывал - но если говоришь, что должно работать и на этом, почему ж тогда высше указаный код не работает? Хелп ми !!

/*Уже не нужный код выбросил с поста*/
« Последнее редактирование: 25.07.2008, 04:36:00 от mijsvit » Записан
beliyadm
Профи
********

Репутация: +1438/-61
Offline Offline

Пол: Мужской
Сообщений: 8893


Севастополь==Россия


« Ответ #5 : 25.07.2008, 03:07:53 »

mijsvit - если не получится - стукни опять же в субботу, вместе пошагово пройдем, а то поздно уже Azn
Записан
MuraDweb
Support Team
*****

Репутация: +121/-1
Offline Offline

Пол: Мужской
Сообщений: 666



« Ответ #6 : 25.07.2008, 03:33:00 »

В данной статье из трех полей ввода (день, месяц, год)
формируется одна единственная новая переменная birthDate.
И именно она в последствии вызывается из БД, естественно никакие $row->birthDate_d; и подобное толку не дадут.
Записан
mijsvit
Давно я тут
****

Репутация: +6/-0
Offline Offline

Пол: Мужской
Сообщений: 206



« Ответ #7 : 25.07.2008, 04:27:00 »

Все, решил. Меня сбила с толку огромная функция поля даты и предпоследнее действие со статьи "исправление сохранения информации пользователя", в которую среди ночи вьехать не смог Grin
Упростил себе задачу - форму даты заменил обычным textarea - и следовал статье Как добавить дополнительное поле для материала (В моем случае, соответственно, оперируя другими файлами и таблицой в БД).

Вобщем всё гуд, спасибо всем за участие!

----------------------------------------------

Маленький вопросик:
Как сделать новые поля обязательными для заполнения?
« Последнее редактирование: 25.07.2008, 04:37:37 от mijsvit » Записан
MuraDweb
Support Team
*****

Репутация: +121/-1
Offline Offline

Пол: Мужской
Сообщений: 666



« Ответ #8 : 25.07.2008, 05:07:55 »

В registration.html.php находишь скрипт валидации
Код:
<script language="javascript" type="text/javascript">
function submitbutton_reg() {
var form = document.mosForm;
var r = new RegExp("[\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-]", "i");

// do field validation
if (form.name.value == "") {
alert( "<?php echo addslashes( html_entity_decode(_REGWARN_NAME) );?>" );
} else if (form.username.value == "") {
alert( "<?php echo addslashes( html_entity_decode(_REGWARN_UNAME) );?>" );
} else if (r.exec(form.username.value) || form.username.value.length < 3) {
alert( "<?php printf( addslashes( html_entity_decode(_VALID_AZ09_USER) ), addslashes( html_entity_decode(_PROMPT_UNAME) ), 2 );?>" );
} else if (form.email.value == "") {
alert( "<?php echo addslashes( html_entity_decode(_REGWARN_MAIL) );?>" );
} else if (form.password.value.length < 6) {
alert( "<?php echo addslashes( html_entity_decode(_REGWARN_PASS) );?>" );
} else if (form.password2.value == "") {
alert( "<?php echo addslashes( html_entity_decode(_REGWARN_VPASS1) );?>" );
} else if ((form.password.value != "") && (form.password.value != form.password2.value)){
alert( "<?php echo addslashes( html_entity_decode(_REGWARN_VPASS2) );?>" );
} else if (r.exec(form.password.value)) {
alert( "<?php printf( addslashes( html_entity_decode(_VALID_AZ09) ), addslashes( html_entity_decode(_REGISTER_PASS) ), 6 );?>" );
} else {
form.submit();
}
}
</script>
и добавь ещё одну - две - три "конструкции" (сколько надо)
Код:
} else if (form.birthDate.value == "") {
alert( "<?php echo addslashes( html_entity_decode('Заполните это поле') );?>" );
где birthDate имя поля, к примеру:
<input type="text" name="birthDate" class="inputbox" size="40" maxlength="25" />

Короче по аналогии, должно работать.
Записан
mijsvit
Давно я тут
****

Репутация: +6/-0
Offline Offline

Пол: Мужской
Сообщений: 206



« Ответ #9 : 25.07.2008, 05:21:38 »

Спасибо большое - все работает!
Записан
MuraDweb
Support Team
*****

Репутация: +121/-1
Offline Offline

Пол: Мужской
Сообщений: 666



« Ответ #10 : 25.07.2008, 05:25:48 »

Вот и славненько   Wink
Записан
mijsvit
Давно я тут
****

Репутация: +6/-0
Offline Offline

Пол: Мужской
Сообщений: 206



« Ответ #11 : 26.07.2008, 17:54:19 »

Если форму не выводить юзеру, то теоретически, он может ее эмулировать.
Как можно избежать этого и защитить таблицу от не контролированого добавления данных??
Записан
alegcool
Новичок
*

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 3


Временнами злой.


« Ответ #12 : 29.10.2009, 20:13:36 »

Интересно а если нет многого из перечисленного? !
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet