Форма регистрации/авторизации в окне. Как?


#1

Есть простая вроде бы задачка: нужно вывести во всплывающем окне на любой странице сайта для незарегистрированного (или неавторизованного) пользователя модальное окно с формой авторизации и регистрации.

С модальным окном более-менее понятно.
С проверкой по $user_id тоже понятно. И даже как-то кривовато, но форму авторизации вывел: https://outlet.co.il/

Правда хотелось бы спрятать кнопку, закрывающую окно.

Но гораздо больше хочется добавить в это окно закладку с формой для регистрации.

Можно это как-то красиво сделать? Или придется засовывать весь шаблон формы в блок, как я сделал и для формы авторизации :frowning:

@ecomlabs подскажете что-нибудь? У вас это обычно неплохо получается.


#2

Да, нужно перезаписывать будет. Простого пути нет


#3

Нагородил что-то такое (много букв :slight_smile:)

{if $auth.user_id eq 0}
<div class="outlet_reg hidden cm-dialog-auto-open cm-dialog-auto-size" id="open_id" title="התחבר">
   <div class="outlet_form">
      <ul class="outlet_tab-group">
         <li class="tab active"><a href="#login">Log In</a></li>
         <li class="tab "><a href="#signup">Sign Up</a></li>
      </ul>
      <div class="outlet_tab-content">
         <div id="login">
            <div class="object-container ">
               <div class="ty-login-popup">
                  <form name="popup99799_form" action="https://outlet.co.il/" method="post" class="cm-processed-form">
                     <input type="hidden" name="result_ids" value="login_error_popup99799">
                     <input type="hidden" name="error_container_id" value="login_error_popup99799">
                     <input type="hidden" name="quick_login" value="1">
                     <input type="hidden" name="return_url" value="index.php?dispatch=profiles.add">
                     <input type="hidden" name="redirect_url" value="index.php?dispatch=profiles.add">
                     <div class="ty-control-group">
                        <label for="login_popup99799" class="ty-login__filed-label ty-control-group__label cm-required cm-trim cm-email">דואר אלקטרוני</label>
                        <input type="text" id="login_popup99799" name="user_login" size="30" value="" class="ty-login__input cm-focus" >
                     </div>
                     <div class="ty-control-group ty-password-forgot">
                        <label for="psw_popup99799" class="ty-login__filed-label ty-control-group__label ty-password-forgot__label cm-required">סיסמה</label><a href="https://outlet.co.il/index.php?dispatch=auth.recover_password" class="ty-password-forgot__a" tabindex="80" title="שכחת סיסמא?">שכחת סיסמא?</a>
                        <input type="password" id="psw_popup99799" name="password" size="30" value="" class="ty-login__input" maxlength="32" >
                     </div>
                     <div class="ty-login-form__wrong-credentials-container" id="login_error_popup99799">
                        <!--login_error_popup99799-->
                     </div>
                     או כניסה עם שם הספק אחר:
                     <p class="ty-text-center">
                        <input type="hidden" name="redirect_url" value="index.php?dispatch=profiles.add"><a class="cm-login-provider ty-hybrid-auth__icon" data-idp="google" tabindex="83"><img src="https://outlet.co.il/design/themes/responsive/media/images/addons/hybrid_auth/icons/flat_32x32/google.png" title="google" alt="google"></a><a class="cm-login-provider ty-hybrid-auth__icon" data-idp="facebook" tabindex="84"><img src="https://outlet.co.il/design/themes/responsive/media/images/addons/hybrid_auth/icons/flat_32x32/facebook.png" title="facebook" alt="facebook"></a>    
                     </p>
                     <div class="buttons-container clearfix buttons-container-picker" style="position: absolute; bottom: 0px;">
                        <div class="ty-float-right">
                           <button class="ty-btn__login ty-btn__secondary ty-btn" type="submit" name="dispatch[auth.login]"><span>התחבר</span></button>
                        </div>
                        <div class="ty-login__remember-me">
                           <label for="remember_me_popup99799" class="ty-login__remember-me-label"><input class="checkbox" type="checkbox" name="remember_me" id="remember_me_popup99799" value="Y">זכור אותי</label>
                        </div>
                     </div>
                     <input type="hidden" name="security_hash" class="cm-no-hide-input" value="886d381b8aedf583288ece4fb0dd5ef0">
                  </form>
               </div>
            </div>
         </div>
/* дальше еще одна вкладка и небольшой скрипт, переключающий вкладки */
</div>
{/if}

И все было бы хорошо, авторизация проходит, но после этого витрина недоступна с такой ошибкой:

если вернуться на предыдущую страницу, то пользователь авторизован.

Подскажете, как ошибку убрать?


#4

В PHP при прямом запросе (не аякс) где-то используется Tygh::$app['ajax']


#5

На форуму класс cm-ajax попробуйте повесить


#6

Совсем не хочется файлы ядра править :frowning:


#7

Уже висел такой класс. Из интереса попробовал еще раз. Совершенно аналогичный результат, авторизация происходит, но посылает меня куда-то не туда, приходится возвращаться :frowning: