1 Отредактировано Андрей (05.07.2016 15:40:15)

Тема: Форма входа

Добрый день. Подскажите пожалуйста, как правильно сделать, что бы форма входа сразу отображалсь в шапке(а то сейчас она во всплывающем окне). Я пробовал редактировать шаблон, но у меня возникло затруднение в следующем. При нажатии кнопки войти меня перекидыват на страницу авторизации site.ru/auth/ и только на этой странице получается вход, скажите как это исправить?
Я так понимаю дело в action="{$router->getUrl('users-front-auth')}"
http://storage4.static.itmages.ru/i/16/0705/s_1467704335_5942738_8d7be94b4f.png

И еще вопрос, как можно скрыть navContainer от не зарегистрированного пользователя? куда вставить проверку?

Повысить оценку Понизить оценку

Re: Форма входа

И еще вопрос, как можно скрыть navContainer от не зарегистрированного пользователя? куда вставить проверку?

Проверка пользователь залогинен или нет, можно так:

{if $is_auth}
  //Пользователь зарегистрирован
{/if}

Добрый день. Подскажите пожалуйста, как правильно сделать, что бы форма входа сразу отображалсь в шапке(а то сейчас она во всплывающем окне). Я пробовал редактировать шаблон, но у меня возникло затруднение в следующем. При нажатии кнопки войти меня перекидыват на страницу авторизации site.ru/auth/ и только на этой странице получается вход, скажите как это исправить?
Я так понимаю дело в action="{$router->getUrl('users-front-auth')}"

Вся причина в том, что ещё в форме, которая отправляется используется скрытое поле с идентификатором контроллера. Подсмотрите на странице авторизации этот код у формы и добавьте себе это скрытое поле.

3 Отредактировано Андрей (05.07.2016 16:45:48)

Re: Форма входа

Закусило Александр пишет:

Проверка пользователь залогинен или нет, можно так:

{if $is_auth}
  //Пользователь зарегистрирован
{/if}

Это я понял, спасибо smile вопрос в другом, как скрыть сам контеинер?Проблема в том, что фон у меню контеинера у меня залит цветом. И когда вставляю проверку на "залогинен или нет", то у меня у меня соответственно пропадает меню, а фон заливки остается, потому что он привязан к классу navContainer и вписан в поле CSS-класс оборачивающего блока

Закусило Александр пишет:

Вся причина в том, что ещё в форме, которая отправляется используется скрытое поле с идентификатором контроллера. Подсмотрите на странице авторизации этот код у формы и добавьте себе это скрытое поле.

Спасибо, с этим проблему решил smile

Повысить оценку Понизить оценку

Re: Форма входа

Думаю дело не в этом потому что я пробовал, копировал полностью содержимое authorization.tplв файл authblock.tpl

Откомпилированный?

Это я понял, спасибо smile вопрос в другом, как скрыть сам контеинер?Проблема в том, что фон у меню контеинера у меня залит цветом. И когда вставляю проверку на "залогинен или нет", то у меня у меня соответственно пропадает меню, а фон заливки остается, потому что он привязан к классу navContainer и вписан в поле CSS-класс оборачивающего блока

В Вашем случае, можно добавить в контейнер внешний шаблон, куда заложить нужную Вам логику.
Содержимое контейнера, будет в переменной {$wrapped_content} . Например:

Моя логика
{$wrapped_content} //Вывод контента, который назначен в контейнере.

5 Отредактировано Андрей (05.07.2016 17:28:56)

Re: Форма входа

Закусило Александр пишет:

Думаю дело не в этом потому что я пробовал, копировал полностью содержимое authorization.tplв файл authblock.tpl
Откомпилированный?

Не сразу догадался посмотреть через firebag.

Закусило Александр пишет:

В Вашем случае, можно добавить в контейнер внешний шаблон, куда заложить нужную Вам логику.
Содержимое контейнера, будет в переменной {$wrapped_content} . Например:

Моя логика
{$wrapped_content} //Вывод контента, который назначен в контейнере.

Все понял, спасибо!:)
Только вот в какой каталог разместить этот шаблон, что бы было по уму?

Повысить оценку Понизить оценку

6 Отредактировано Закусило Александр (06.07.2016 12:08:35)

Re: Форма входа

Обычно я ложу(или кладу) шаблоны, которые к модулям не относятся в корневую папку с темой. Я думаю это будет логично.

7 Отредактировано Андрей (06.07.2016 12:07:30)

Re: Форма входа

А теперь возник другой вопрос. Можно тоже самое сделать с формой регистрации?Вывести ее на главную, без всплывающего окна.
А то я пытаюсь делать по примеру авторизации, но получаю ошибку

Fatal error: Call to a member function getNonFormErrors() on a non-object in Z:\home\ready.local\www\core\smarty\sysplugins\smarty_internal_templatebase.php(165) : eval()'d code on line 43

И еще вопрос(наверно его стоит отнести к платной поддержке). Могли бы помочь с получением пароля автоматически на e-mail при регистрации. Как это сделано при оформлении заказа

Повысить оценку Понизить оценку

Re: Форма входа

Можно. Но здесь ошибка говорит о том, что вы пытаетесь использовать метод, когда объекта ещё не существует. Это и правильно, т.к. на данной странице переменная объекта туда ещё не передаётся. Уберите строку с выводом ошибок. (getNonFormErrors()) она Вам не нужна.

9

Re: Форма входа

И еще вопрос(наверно его стоит отнести к платной поддержке). Могли бы помочь с получением пароля автоматически на e-mail при регистрации. Как это сделано при оформлении заказа

Повысить оценку Понизить оценку

Re: Форма входа

Не совсем понял. Этот функционал присутствует сразу. В чём загвоздка?

11 Отредактировано Андрей (06.07.2016 12:41:49)

Re: Форма входа

Закусило Александр пишет:

Не совсем понял. Этот функционал присутствует сразу. В чём загвоздка?

Что бы при регистрации пароль формировался автоматически и отправлялся на e-mail
А как можно вызвать getPropertyView ?
А то теперь ругается на него

Повысить оценку Понизить оценку

Re: Форма входа

Всё дело в том, что вы вставляете код, туда где он работать не должен вообще, т.к. чудес не бывает, и переменные сами по себе не появляются. Просто скопируйте откомпилированный код из регистрации и вставьте себе. Переменные добавляются только на той странице на которой они нужны.

13

Re: Форма входа

Что бы при регистрации пароль формировался автоматически и отправлялся на e-mail
А по этому вопросу?

Повысить оценку Понизить оценку

14 Отредактировано Закусило Александр (06.07.2016 13:18:48)

Re: Форма входа

Ну там же в откомпилированном шаблоне, есть галочка, "отправлять пароль на E-mail". Это она и есть.

15 Отредактировано Андрей (06.07.2016 13:34:54)

Re: Форма входа

Закусило Александр пишет:

Ну там же в откомпилированном шаблоне, есть галочка, "отправлять пароль на E-mail". Это она и есть.

Либо Вы меня не так понимаете, либо я Вас. ткните носом пожалуйста?
http://storage4.static.itmages.ru/i/16/0706/s_1467797707_6648972_2505a10c3a.png

Повысить оценку Понизить оценку

Re: Форма входа

Точно не понял сразу, что речь идёт о регистрации. Там действительно этой галочки нет и не будет. Что можно сделать? Можно из доп модуля подвеситься на создание пользователя, или если установлена Ваша галочка, то сделать так:

$new_user['openpass'] = \RS\Helper\Tools::generatePassword(6);

Вам нужен хук orm.beforeWrite.users-user
http://readyscript.ru/dev-manual/dev_hooks.html

17 Отредактировано Андрей (06.07.2016 17:12:28)

Re: Форма входа

Все получилось, спасибо. Только с одним но.
Я вставил $this['openpass'] = \RS\Helper\Tools::generatePassword(6); в файл user.inc.php
И после этого авторизация перестает рабоать. т.е. пользователь регистрируется, но его не авторизовывает.

Был бы премного благодарен, если бы подсказали как вынести это в отдельный модуль. Загоздка заключается в следующем
Правильно будет так: public static function ormBeforeWriteUsersUser($user(незнаю точно должна быть эта переменная или нет))
Или так: public static function ormBeforeWriteUsersUser(\Users\Model\Orm\User $userнезнаю точно должна быть эта переменная или нет))

И еще проблема, когда я вывел регистрацию на главную, после нее перекидывает на страницу с регистрацией site.ru/register/ подскажите как это исправить?что бы после главной сразу авторизовывало пользователя

Повысить оценку Понизить оценку

Re: Форма входа

Если документация.
http://readyscript.ru/dev-manual/dev_articles.html

Если видеоканал:
https://www.youtube.com/playlist?list=P … L4X2UTC6Aw
Советую начать с первого шага.

Я вставил $this['openpass'] = \RS\Helper\Tools::generatePassword(6); в файл user.inc.php

Не знаю как вы это умудрились сделать smile Я надеюсь вы не забыли, что этот код нужно проверять если из запроса пришла включённая галочка.
Я предполагаю, что вы вставили так, при авторизации этот код у Вас тоже вызвался и Вы сменили себе пароль.

Был бы премного благодарен, если бы подсказали как вынести это в отдельный модуль. Загоздка заключается в следующем
Правильно будет так: public static function ormBeforeWriteUsersUser($user(незнаю точно должна быть эта переменная или нет))
Или так: public static function ormBeforeWriteUsersUser(\Users\Model\Orm\User $userнезнаю точно должна быть эта переменная или нет))

Правильно вот так:

/**
* Действия перед записью объекта пользователя
* 
* @param array $data - Массив  с данными
*/
public static function ormBeforeWriteUsersUser($data){
     /**
     * @var \User\Model\Orm\User
     */
     $user = $data['orm'];
     $flag  = $data['flag']; //Флаг insert или update
     if ($flag==$user::INSERT_FLAG){ //Делаем только на создание (insert)
          //То что мне надо
     }
}

19 Отредактировано Андрей (07.07.2016 10:58:01)

Re: Форма входа

И почему то перекидывает на страницу с регистрацией, наверно что то нужно добавить как было в примере с авторизацией?

А если мне нужно что бы было по умолчанию?
почему, так не будет работать?

/**
* Действия перед записью объекта пользователя
* 
* @param array $data - Массив  с данными
*/
public static function ormBeforeWriteUsersUser($data){
     /**
     * @var \User\Model\Orm\User
     */
     $user = $data['orm'];
     $flag  = $data['flag']; //Флаг insert или update
     if ($flag==$user::INSERT_FLAG){ //Делаем только на создание (insert)
          $user['openpass'] = \RS\Helper\Tools::generatePassword(6);
     }
}

Повысить оценку Понизить оценку

Re: Форма входа

И почему то перекидывает на страницу с регистрацией, наверно что то нужно добавить как было в примере с авторизацией?

Для перехода на страницу возврата передайте скрытое поле с именем "referer", где в значении укажите url куда вернутся после регистрации. И посмотрите не передаётся ли он у Вас уже. Скорее всего из-за этого.


А если мне нужно что бы было по умолчанию?
почему, так не будет работать?

Поясните подробнее, ато не совсем понятно.

21 Отредактировано Андрей (07.07.2016 12:33:47)

Re: Форма входа

Александр пишет:

Поясните подробнее, ато не совсем понятно.

Почему эта функция не работает?

public static function ormBeforeWriteUsersUser($data){
     /**
     * @var \User\Model\Orm\User
     */
     $user = $data['orm'];
     $flag  = $data['flag']; //Флаг insert или update
     if ($flag==$user::INSERT_FLAG){ //Делаем только на создание (insert)
          $user['openpass'] = \RS\Helper\Tools::generatePassword(6);
     }
}

Вот код, все скрытые поля указаны.

{if !$is_auth}
<form method="POST" action="{$router->getUrl('users-front-register')}">
<input type="hidden" value="3318673409" name="_controller_id">
<input type="hidden" value="%2F" name="referer">
<input type="hidden" value="" name="is_company">

    {$this_controller->myBlockIdInput()}
    <!-- <input type="hidden" name="referer" value="{$referer}"> -->
    <div id=element>
        <table class="authTable">
            <tr>
                <td class="key">Имя
                <input name="name" value="" maxlength="200"  size="50" type="text" />
                </td>
            </tr>
            <tr>
                <td class="key">E-mail
                <input name="e_mail" value="" maxlength="200"  size="50" type="text" />
                </td>
            </tr>
        </table> 
    <a id=button class="formSave">Регистрация</a>
    <a href="{$router->getUrl('users-front-auth', ['referer' => $referer])}" class="formSave inDialog">Войти</a>
    </div>
</form>
{/if}

Повысить оценку Понизить оценку

Re: Форма входа

Почему эта функция не работает?

А Вы доп модуль создали? Инициализировали его?

Вот код, все скрытые поля указаны.

Ну вот referer же видите

23 Отредактировано Андрей (07.07.2016 13:45:13)

Re: Форма входа

Закусило Александр пишет:

Почему эта функция не работает?

А Вы доп модуль создали? Инициализировали его?

Да конечно

Вот код, все скрытые поля указаны.

Закусило Александр пишет:

Ну вот referer же видите

да вижу, он один

Повысить оценку Понизить оценку

Re: Форма входа

Да конечно

Сделайте var_dump и поставьте exit();
Если код работает, то он не даст выполнить код и покажет отработала функция или нет.

25 Отредактировано Андрей (07.07.2016 13:56:05)

Re: Форма входа

array(3) {
  ["orm"]=>
  object(Users\Model\Orm\User)#193 (15) {
    ["default_group":protected]=>
    string(5) "guest"
    ["authorized_user_group":protected]=>
    string(7) "clients"
    ["access_menu_table":protected]=>
    string(16) "vnou_access_menu"
    ["access_module_table":protected]=>
    string(18) "vnou_access_module"
    ["cache_cost_id":protected]=>
    NULL
    ["cache_mod_access":protected]=>
    NULL
    ["cache_menu_access":protected]=>
    NULL
    ["cache_admin_menu_access":protected]=>
    NULL
    ["cache_allow_sites":protected]=>
    NULL
    ["groups":protected]=>
    NULL
    ["_values":protected]=>
    array(29) {
      ["changepass"]=>
      int(1)
      ["name"]=>
      string(8) "вася"
      ["surname"]=>
      string(8) "вася"
      ["midname"]=>
      string(8) "вася"
      ["e_mail"]=>
      string(12) "test@mail.ru"
      ["openpass"]=>
      string(6) "RaX8Sd"
      ["phone"]=>
      string(15) "+7 918 00011222"
      ["is_company"]=>
      int(0)
      ["company"]=>
      string(0) ""
      ["company_inn"]=>
      string(0) ""
      ["data"]=>
      array(0) {
      }
      ["id"]=>
      NULL
      ["login"]=>
      string(12) "test@mail.ru"
      ["pass"]=>
      NULL
      ["sex"]=>
      NULL
      ["hash"]=>
      string(64) "1321242dbe3d324a39ead77024347548b2d6f77f253da4390e10e2def03d61d6"
      ["subscribe_on"]=>
      NULL
      ["dateofreg"]=>
      string(19) "2016-07-07 13:52:54"
      ["balance"]=>
      NULL
      ["balance_sign"]=>
      NULL
      ["ban_expire"]=>
      NULL
      ["ban_reason"]=>
      NULL
      ["last_visit"]=>
      NULL
      ["__groups__"]=>
      NULL
      ["groups"]=>
      NULL
      ["_serialized"]=>
      string(6) "a:0:{}"
      ["captcha"]=>
      NULL
      ["user_cost"]=>
      NULL
      ["cost_id"]=>
      NULL
    }
    ["_self_class":protected]=>
    string(20) "Users\Model\Orm\User"
    ["_local_id":protected]=>
    int(70)
    ["cache_behavior_instances":"RS\Behavior\AcceptBehavior":private]=>
    array(0) {
    }
    ["instance_behaviors":"RS\Behavior\AcceptBehavior":private]=>
    array(0) {
    }
  }
  ["flag"]=>
  string(6) "insert"
  ["on_duplicate_update_keys"]=>
  array(0) {
  }
}

Повысить оценку Понизить оценку