UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: tatfox от 14 Апреля 2016, 09:36:44

Название: Как узнать, что пользователь незарегистрирован?
Отправлено: tatfox от 14 Апреля 2016, 09:36:44
Добрый день. Опять есть ряд вопросов.
1)Под ценой в Карточке объекта поставить ссылку "получить скидку". Она появляется только у незарегистрированного пользователя. При переходе по данной ссылке вылезает окно о предложении пройти регистрацию. (Как узнать что пользователь незарегистрирован?)
2)В форму "Регистрацию" добавить поля (Как их добавить? Искал по инету не нашел нечего)
Название: Re: Как узнать, что пользователь незарегистрирован?
Отправлено: aghigay от 14 Апреля 2016, 11:21:37
Открываете site.ru/.xml в режиме инкогнито и видите строку типа: <user id="337" type="guest"/> - это тип пользователя.

Добавление полей в форму регистрации зависит от того, каким образом у вас реагизована форма регистрации. Например, может быть вам нужно добавить соответствующие поля в типа данных "Пользователь".

Однако, этого недостаточно. Нужно чтобы ЮМИ при сохранении эти поля еще и подхватывала, а это не обязательное требование.

Опять же все зависит от того, каким образом реализована регистрация. Ну и дальше нужно смотреть потребуется ли какое-то вмешательство или нет.
Название: Re: Как узнать, что пользователь незарегистрирован?
Отправлено: tatfox от 14 Апреля 2016, 11:43:13
Открываете site.ru/.xml в режиме инкогнито и видите строку типа: <user id="337" type="guest"/> - это тип пользователя.

Добавление полей в форму регистрации зависит от того, каким образом у вас реагизована форма регистрации. Например, может быть вам нужно добавить соответствующие поля в типа данных "Пользователь".

Однако, этого недостаточно. Нужно чтобы ЮМИ при сохранении эти поля еще и подхватывала, а это не обязательное требование.

Опять же все зависит от того, каким образом реализована регистрация. Ну и дальше нужно смотреть потребуется ли какое-то вмешательство или нет.


ну да это понятно, а как мне проверить <user id="337" type="guest"/>?
Название: Re: Как узнать, что пользователь незарегистрирован?
Отправлено: aghigay от 14 Апреля 2016, 11:45:00
Ну вот так например http://www.w3schools.com/xsl/xsl_if.asp
Название: Re: Как узнать, что пользователь незарегистрирован?
Отправлено: tatfox от 14 Апреля 2016, 11:55:27
Ну вот так например http://www.w3schools.com/xsl/xsl_if.asp
А у меня используется tpl не xsl.  <xsl:if test="price &gt; 10"> А можно будет вот этот код поставить в tpl шаблоне?
Название: Re: Как узнать, что пользователь незарегистрирован?
Отправлено: aghigay от 14 Апреля 2016, 12:21:02
Ну тогда http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/globalnye_makrosy/current_user_id/#content
Название: Re: Как узнать, что пользователь незарегистрирован?
Отправлено: tatfox от 14 Апреля 2016, 13:01:39
Ну тогда http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/globalnye_makrosy/current_user_id/#content
ну да он мне выводит id. Но как мне его проверить как if else?  Cделал вот так %system ifClause('%current_user_id%', 'да', 'нет')% , но все время выводит "да"
Название: Re: Как узнать, что пользователь незарегистрирован?
Отправлено: aghigay от 14 Апреля 2016, 13:09:20
Все зависит от ситуации, ну вот например так можно http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/virtualnyj_modul_system/system_ifclause/#content

А вообще поиск по документации и гугл еще никто не отменял:
https://goo.gl/4uL7mm
Название: Re: Как узнать, что пользователь незарегистрирован?
Отправлено: tatfox от 14 Апреля 2016, 13:33:12
Все зависит от ситуации, ну вот например так можно http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/virtualnyj_modul_system/system_ifclause/#content

А вообще поиск по документации и гугл еще никто не отменял:
https://goo.gl/4uL7mm

Гуглил я, не нашел. Я буду использовать так %system ifClause('%current_user_id%', 'да', 'нет')% то всегда будет "да" Если пользователь не авторизован то %current_user_id% = 338 авторизован %current_user_id% = id пользователя.
Название: Re: Как узнать, что пользователь незарегистрирован?
Отправлено: tatfox от 14 Апреля 2016, 14:11:54
Всем спасибо. Написал кастомный макрос. Если вы гость то выводит ссылку, если не гость то пусто

public function get_discount(){
          $permissions = permissionsCollection::getInstance();
          $currentUserId = $permissions->getUserId();
          if($currentUserId == 338){
             $currentUserId = '<a href="">Получить скидку</a>';
          }
          else{
             $currentUserId = '';
          }
          return $currentUserId;
      }
Название: Re: Как узнать, что пользователь незарегистрирован?
Отправлено: e.ioffe от 14 Апреля 2016, 15:42:26
Цитировать
public function get_discount(){
          $permissions = permissionsCollection::getInstance();
          $currentUserId = $permissions->getUserId();
          if($currentUserId == 338){
             $currentUserId = '<a href="">Получить скидку</a>';
          }
          else{
             $currentUserId = '';
          }
          return $currentUserId;
      }

Немного отрефакторил:
public function get_discount(){
          $permissions = permissionsCollection::getInstance();

$return = '';

          if($permissions->getUserId() == $permissions->getGuestId()){
             $return = '<a href="">Получить скидку</a>';
          }

return $return;
      }

Рекомендую посмотреть в сторону xslt или php-шаблонизаторов, на tpl скорость разработки и скорость работы сайтов очень медленная.
Название: Re: Как узнать, что пользователь незарегистрирован?
Отправлено: tatfox от 15 Апреля 2016, 14:23:16
Цитировать
public function get_discount(){
          $permissions = permissionsCollection::getInstance();
          $currentUserId = $permissions->getUserId();
          if($currentUserId == 338){
             $currentUserId = '<a href="">Получить скидку</a>';
          }
          else{
             $currentUserId = '';
          }
          return $currentUserId;
      }

Немного отрефакторил:
public function get_discount(){
          $permissions = permissionsCollection::getInstance();

$return = '';

          if($permissions->getUserId() == $permissions->getGuestId()){
             $return = '<a href="">Получить скидку</a>';
          }

return $return;
      }

Рекомендую посмотреть в сторону xslt или php-шаблонизаторов, на tpl скорость разработки и скорость работы сайтов очень медленная.

ок) спасибо)