Вопрос
Зарегистрировавшийся пользователь переходит после регистрации к себе в профиль.
Но так же может спокойно выйти от туда не заполнив необходимые поля.
Как сделать что бы пользователь пока не заполнит обязательные поля не смог перейти на другие страницы.
Это как раз и от спамеров и для тех кто регистрируется через uLogin. Человек ЕСТЬ а кто он и от куда это тоже нужно знать.
Помогите осуществить или опишите подробнее как это можно сделать.
Всем спасибо!
Но можно немного исправить main.tpl.php вашего шаблона, добавив в самый верх шаблона после
<?php $core = cmsCore::getInstance(); ?>
<?php if (cmsUser::isLogged()){ if (!cmsUser::get('icq') && $this->controller->name != "users"){ cmsUser::addSessionMessage("Заполните поле icq", 'error'); }} ?>
В этом коде:
1 строка: проверяем, заполнено ли поле icq. Вторая проверка в этой строке нужна, чтобы не получить бесконечное перенаправление2 строка: добавляем уведомление о нужном поле
3 строка: перемещаем пользователя на страницу редактирования профиля
Если вы хотите заставить заполнить несколько полей, то код нужно немного модифицировать
<?php if (cmsUser::isLogged()){ if ((!cmsUser::get('icq')|| !cmsUser::get('phone')) && $this->controller->name != "users"){ cmsUser::addSessionMessage("Заполните поля телефон и icq", 'error'); }} ?>
Вах-вах!
Теперь мне нужно все это понять и поправить на те поля которые должны быть обязательными к заполнению.
Так как полей у меня к заполнению около 3-5… Обязательных.
1)День рождения
2)Город
3)Телефон
4)Почта (для тех кто регистрировался через uLogin)
Админка — компоненты — профили пользователей — поля профилейТеперь мне нужно все это понять и поправить на те поля которые должны быть обязательными к заполнению.
Имена полей тут
Добавлять во вторую строку, не забывая про скобочки
if ((!cmsUser::get('icq') || !cmsUser::get('phone') || !cmsUser::get('skype') || !cmsUser::get('city')) && $this->controller->name != "users"){
<?php $core = cmsCore::getInstance(); ?>
<?php if (cmsUser::isLogged()){ if ((!cmsUser::get('icq')|| !cmsUser::get('phone')) && $this->controller->name != "users"){ cmsUser::addSessionMessage("Заполните поля телефон и icq", 'error'); }} ?>
if ((!cmsUser::get('icq') || !cmsUser::get('phone') || !cmsUser::get('skype') || !cmsUser::get('city')) && $this->controller->name != "users"){
НО в тоже время надоедливая… Как раз то что нужно.