С помощью какой функции вывести на страницу блок регистрации и входа.

#1 3 марта 2016 в 17:33
Добрый день! С помощью какой функции вывести на страницу блок регистрации и входа на главную, что бы одновременно входить и если впервые на сайте, зарегистрироваться. Например, что бы вывести что то из профиля, нужно вписать
  1. $user = cmsUser::getInstance();
-
  1. <?php html($user->nickname); ?>
А как вывести регистрацию и авторизацию? Заранее спасибо!
#2 3 марта 2016 в 17:51
Авторизацию вывел
  1. <div class="widget_auth">
  2. <form action="<?php echo href_to('auth', 'login'); ?>" method="POST">
  3.  
  4. <?php echo html_input('hidden', 'is_back', 1); ?>
  5.  
  6. <div class="field">
  7. <?php if (cmsCore::getController('auth')->options['auth_login']) { ?>
  8.  
  9. <label><?php echo LANG_LOGIN; ?>:</label>
  10. <a href="<?php echo href_to('auth', 'register'); ?>"><?php echo LANG_REGISTRATION; ?></a>
  11. <?php echo html_input('text', 'login_login'); ?>
  12.  
  13. <?php } else { ?>
  14.  
  15. <label><?php echo LANG_EMAIL; ?>:</label>
  16. <a href="<?php echo href_to('auth', 'register'); ?>"><?php echo LANG_REGISTRATION; ?></a>
  17. <?php echo html_input('text', 'login_email'); ?>
  18.  
  19. <?php } ?>
  20. </div>
  21.  
  22. <div class="field">
  23. <label><?php echo LANG_PASSWORD; ?>:</label>
  24. <a href="<?php echo href_to('auth', 'restore'); ?>"><?php echo LANG_FORGOT_PASS; ?></a>
  25. <?php echo html_input('password', 'login_password'); ?>
  26. </div>
  27.  
  28. <div class="options">
  29. <input type="checkbox" id="remember" name="remember" value="1" />
  30. <label for="remember">
  31. <?php echo LANG_REMEMBER_ME; ?>
  32. </label>
  33. </div>
  34.  
  35. <div class="buttons">
  36. <?php echo html_submit(LANG_LOG_IN); ?>
  37. </div>
  38.  
  39. </form>
  40. </div>
#3 3 марта 2016 в 18:05
Виджет чем не устраивает?
#4 3 марта 2016 в 18:06
А виджеты и маски уже отменили что ли?

Когда начинал писать поста от Kreator еще небыло=)
#5 3 марта 2016 в 21:47


А виджеты и маски уже отменили что ли?

Когда начинал писать поста от Kreator еще небыло=)

Jestik

Я создал запрет главной страницы и хочу что бы пользователь только после регистрации или входа на сайт мог пользоваться сайтом, авторизацию вывел, но регистрацию не могу вывести, виджета регистрации нету, только авторизация есть.
#6 3 марта 2016 в 22:00


А виджеты и маски уже отменили что ли?

Когда начинал писать поста от Kreator еще небыло=)

Jestik

#7 3 марта 2016 в 22:54


Виджет чем не устраивает?

Kreator

Вот посмотрите, вход могу выводить, а вот там де что бы была регистрация не могу (
#8 3 марта 2016 в 23:07
Нико, форму регистрации надо вывести?
Сделайте виджет регистрация)
#9 3 марта 2016 в 23:08


Нико, форму регистрации надо вывести?
Сделайте виджет регистрация)

Jestik

Такой нету?(
#10 3 марта 2016 в 23:11


Нико, форму регистрации надо вывести?
Сделайте виджет регистрация)

Jestik

Не ужели все так сложно, форма ведь есть, на странице site/auth/register
#11 4 марта 2016 в 00:07
Как-то уже поднималась тема реализации просмотра сайта только после авторизации для двойки. Надо поискать по форуму.
#12 4 марта 2016 в 00:08


Как-то уже поднималась тема реализации просмотра сайта только после авторизации для двойки. Надо поискать по форуму.

Val
Это я сделал авторизацию вывел но регистрацию не могу формы нету (
#13 4 марта 2016 в 00:12


Как-то уже поднималась тема реализации просмотра сайта только после авторизации для двойки. Надо поискать по форуму.

Val

Вот форма для авторизации (Входа)

  1. <form action="<?php echo href_to('auth', 'login'); ?>" method="POST">
  2.  
  3. <?php echo html_input('hidden', 'is_back', 1); ?>
  4.  
  5. <div class="field">
  6. <?php if (cmsCore::getController('auth')->options['auth_login']) { ?>
  7.  
  8. <label><?php echo LANG_LOGIN; ?>:</label>
  9. <a href="<?php echo href_to('auth', 'register'); ?>"><?php echo LANG_REGISTRATION; ?></a>
  10. <?php echo html_input('text', 'login_login'); ?>
  11.  
  12. <?php } else { ?>
  13.  
  14. <label><?php echo LANG_EMAIL; ?>:</label>
  15. <a href="<?php echo href_to('auth', 'register'); ?>"><?php echo LANG_REGISTRATION; ?></a>
  16. <?php echo html_input('text', 'login_email'); ?>
  17.  
  18. <?php } ?>
  19. </div>
  20.  
  21. <div class="field">
  22. <label><?php echo LANG_PASSWORD; ?>:</label>
  23. <a href="<?php echo href_to('auth', 'restore'); ?>"><?php echo LANG_FORGOT_PASS; ?></a>
  24. <?php echo html_input('password', 'login_password'); ?>
  25. </div>
  26.  
  27. <div class="options">
  28. <input type="checkbox" id="remember" name="remember" value="1" />
  29. <label for="remember">
  30. <?php echo LANG_REMEMBER_ME; ?>
  31. </label>
  32. </div>
  33.  
  34. <div class="buttons">
  35. <?php echo html_submit(LANG_LOG_IN); ?>
  36. </div>
  37.  
  38. </form>
а вот регистрация есть, но такой код, мне с этим кодом тяжело код движка, поэтому не пойму (
#14 4 марта 2016 в 01:13
Вот я накидал последовательность действий:
1. В админке добавляете виджет "Авторизация" (в дефолтном шаблоне он по умолчанию стоит в позиции right-top). Для большего удобства советую добавить в шаблон еще одну позицию специально для виджетов, которые будут показываться не авторизованным пользователям. Далее я привожу код для дефолтного шаблона и буду использовать позицию right-top.

2. В файле шаблона ..\templates\default\main.tpl.php добавляем код (сразу после тега <div id="layout">):
  1. ... тут вывод шапки страницы ...
  2. <body>
  3. <div id="layout">
  4.  
  5. <?php if (!cmsUser::isLogged()) { // если пользователь не авторизован ?>
  6. <?php $this->widgets('right-top'); // выводим виджеты из позиции 'right-top' ?>
  7. <?php if ($core->uri_controller == 'auth') { // если работает контроллер авторизации... ?>
  8. <div id="body">
  9. <section>
  10. <article>
  11. <?php $this->body(); //... показывает тело страницы ?>
  12. </article>
  13. </section>
  14. </div>
  15. <?php } ?>
  16.  
  17. <?php } else { // если пользователь авторизован выводим все остальное ?>
  18.  
  19. <?php if (!$config->is_site_on){ ?>
  20. <div id="site_off_notice"><?php printf(ERR_SITE_OFFLINE_FULL, href_to('admin', 'settings', 'siteon')); ?></div>
  21. <?php } ?>
  22.  
  23. ... тут много стандартного кода ...
  24.  
  25. <?php } // закрывающая скобка от else который выше был ?>
  26. </div>
  27.  
  28. </body>
  29. </html>
  30.  
Приведенный выше код — пример логики. В проекте лишние пояснения следует удалить, а для не стандартного шаблона воссоздать необходимую структуру тела страницы.

Т.е. мы обернули всю страницу в условие — если пользователь не авторизован ему выводится виджет авторизации, со всей необходимой логикой, если пользователь авторизовался то показывается обычная страница (которая в скобках после else). Также, если пользователь жмет в виджете авторизации ссылки "Регистрация" или "Забыл пароль" — выводятся ($this->body();) стандартные формы либо регистрации либо восстановления пароля.

Сохраняем и тестируем smile
#15 4 марта 2016 в 01:17
А нельзя сразу форму регистрации вывести на главную как и блок авторизации я вывел на фотке, как в соц сетях вк, фб и твиттер
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.