class Users как вытянуть свойство fullName авторизованого пользователя

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
Lerych
Сообщения: 191
Зарегистрирован: Чт дек 14, 2017 8:46 pm
Откуда: Московская область, Серпухов
Благодарил (а): 79 раз
Поблагодарили: 24 раза

Re: class Users как вытянуть свойство fullName авторизованого пользователя

Сообщение Lerych » Пн дек 17, 2018 11:06 pm

В дополнение к предыдущему сообщению:
Создай файл в Панели управления-Настройки-Текстовые файл, типа "greetings". Туда напиши строки: Слушаю Вас мой хозяин,Приветствую Вас,Я внимательно слушаю Вас,Чем могу быть полезна,Рада помочь Вам,Что я могу для Вас сделать,Здравствуйте мой дорогой.
А в коде используй вместо case, одну строку
say(getRandomLine('greetings').' '.$fn, 2);
StryzhakA
Сообщения: 97
Зарегистрирован: Сб янв 23, 2016 3:57 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: class Users как вытянуть свойство fullName авторизованого пользователя

Сообщение StryzhakA » Вт дек 18, 2018 9:56 am

Бомба! Спасибо Вам дорогие друзья!
StryzhakA
Сообщения: 97
Зарегистрирован: Сб янв 23, 2016 3:57 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: class Users как вытянуть свойство fullName авторизованого пользователя

Сообщение StryzhakA » Вт дек 18, 2018 11:54 am

Обнаружил еще одну проблему:

Код: Выделить всё

global $session;
$t=$session->data['logged_user'];
$name=SQLSelectOne("SELECT USERNAME FROM USERS WHERE ID='".$t."'");
$obj=getObject($name['USERNAME']);
$fn=$obj->getProperty('fullName');
say(getRandomLine('greetings').' '.$fn, 2);
В Консоли все работает, а при вызове шаблона - нет, молчит, хотя контекст устанавливает, и после простоя говорит фразу. В чем может быть дело?
StryzhakA
Сообщения: 97
Зарегистрирован: Сб янв 23, 2016 3:57 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: class Users как вытянуть свойство fullName авторизованого пользователя

Сообщение StryzhakA » Вт дек 18, 2018 12:33 pm

если ставлю строку

Код: Выделить всё

say(getRandomLine('greetings'), 2);
впереди основного кода то Алиса говорит, а если после всего вот этого:

Код: Выделить всё

global $session;
$t=$session->data['logged_user'];
$name=SQLSelectOne("SELECT USERNAME FROM USERS WHERE ID='".$t."'");
$obj=getObject($name['USERNAME']);
$fn=$obj->getProperty('fullName');
то молчит. Как то этот код плохо влияет на Алису, он стает немой
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: class Users как вытянуть свойство fullName авторизованого пользователя

Сообщение xor » Вт дек 18, 2018 1:15 pm

Перед кодом
$g = getRandomLine('greetings');
После кода
say($g.' '.$fn, 2);
Что будет?


Отправлено с моего Redmi 4X через Tapatalk

StryzhakA
Сообщения: 97
Зарегистрирован: Сб янв 23, 2016 3:57 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: class Users как вытянуть свойство fullName авторизованого пользователя

Сообщение StryzhakA » Вт дек 18, 2018 4:58 pm

xor писал(а):
Вт дек 18, 2018 1:15 pm
Перед кодом
$g = getRandomLine('greetings');
После кода
say($g.' '.$fn, 2);
Что будет?
Результат тот же, Алиса немая и говорит только фразу после ожидания перед выходом из контекста.
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: class Users как вытянуть свойство fullName авторизованого пользователя

Сообщение xor » Ср дек 19, 2018 1:28 am

Вообще, есть такая стандартная функция context_getuser(); - Получить пользователя из контекста,
которая делает то же самое

Код: Выделить всё

 * Summary of context_getuser
 * @return int|string
 */
function context_getuser()
{
   global $session;
   if ($session->data['SITE_USER_ID'])
   {
      return $session->data['SITE_USER_ID'];
   }

   $user = SQLSelectOne("SELECT ID FROM users WHERE IS_DEFAULT=1");
   
   $session->data['SITE_USER_ID'] = $user['ID'];
   
   return (int)$user['ID'];
}
Аватара пользователя
Lerych
Сообщения: 191
Зарегистрирован: Чт дек 14, 2017 8:46 pm
Откуда: Московская область, Серпухов
Благодарил (а): 79 раз
Поблагодарили: 24 раза

Re: class Users как вытянуть свойство fullName авторизованого пользователя

Сообщение Lerych » Ср дек 19, 2018 10:30 pm

Господа!
А как отследить, кто залогинился в системе? Через кнопку в шапке. Методы определения через BT или WiFi не предлагать.
Т.е., есть несколько пользователей, которые входят в систему через форму авторизации. Есть способ определения, кто залогинился в данный момент, из поста выше. А какой метод срабатывает во время когда кто-то логинится. В общем, надо юзера, после того как он ввел логин и пароль, поприветствовать.
Аватара пользователя
Lerych
Сообщения: 191
Зарегистрирован: Чт дек 14, 2017 8:46 pm
Откуда: Московская область, Серпухов
Благодарил (а): 79 раз
Поблагодарили: 24 раза

Re: class Users как вытянуть свойство fullName авторизованого пользователя

Сообщение Lerych » Ср дек 19, 2018 10:32 pm

Да и ещё. Как выходить пользователю из системы?
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: class Users как вытянуть свойство fullName авторизованого пользователя

Сообщение xor » Ср дек 19, 2018 11:08 pm

Lerych писал(а):
Ср дек 19, 2018 10:30 pm
Господа!
А как отследить, кто залогинился в системе? Через кнопку в шапке. Методы определения через BT или WiFi не предлагать.
Т.е., есть несколько пользователей, которые входят в систему через форму авторизации. Есть способ определения, кто залогинился в данный момент, из поста выше. А какой метод срабатывает во время когда кто-то логинится. В общем, надо юзера, после того как он ввел логин и пароль, поприветствовать.
Посмотрите файлик \modules\application.class.php

Вот, как-то через сессию определяют.
Но,
$session->data['logged_user']; у меня возвращает пустоту.
А $session->data['SITE_USER_ID'] тоже возвращает только пользователя по умолчанию(.
Ещё есть $session->data['SITE_USERNAME']
+
Define('USER_TITLE', $out['USER_TITLE']);
Define('USER_AVATAR', $out['USER_AVATAR']);

Чего-то наворочено и, чувствую, с ошибками. Надо с Тарасом тереть
Ответить