Страница 11 из 14
Re: Альтернативный модуль лога сообщений Алисы
Добавлено: Сб дек 23, 2017 8:48 pm
Rifmik
Jager писал(а):Можно ли добавить функцию запрета отображения сообщений от определенных отправителей, ну или возможность выводить сообщения только от выбранных ?
С помощью этой функции можно было бы например получить отдельный лог для сообщений от железа, которые не нужны остальным пользователям и лишь захламляют чат.
Вот у меня точно такое же желание, а может и проще - хочу сделать что бы Алиса ежечасно говорила время, но оно не отображалось в чате.
Нашел данный модуль, изменил формат стандартной говорилки на
Как теперь сделать так, что бы не отображались сообщения от пользователя номер 2 в чатах?
Re: Альтернативный модуль лога сообщений Алисы
Добавлено: Пн фев 05, 2018 1:22 am
Rifmik
Немного разобрался в модуле:
убрать лишние сообщения получилось, вставив пропуск сообщений от пользователя с известным ID. В моем случаи ID=2 (из примера выше)
Тогда код
Код: Выделить всё
if ($res[$i]['MEMBER_ID']==0) {
$res[$i]['NAME']=$comp_name;
$res[$i]['AVATAR']=$this->config['AVATAR'];
$res[$i]['COLOR']=$this->config['COLOR'];
$left_right="class=\"left clearfix\"";
$img_left_right="<span class=\"chat-img pull-left\">";
$time_block="<small class=\"pull-right text-muted\">";
$nic_block="class=\"primary-font\"";}
Принимает следующий вид (добавить две первые строки к имеющемуся):
Код: Выделить всё
if ($res[$i]['MEMBER_ID']==2) {
continue;}
if ($res[$i]['MEMBER_ID']==0) {
$res[$i]['NAME']=$comp_name;
$res[$i]['AVATAR']=$this->config['AVATAR'];
$res[$i]['COLOR']=$this->config['COLOR'];
$left_right="class=\"left clearfix\"";
$img_left_right="<span class=\"chat-img pull-left\">";
$time_block="<small class=\"pull-right text-muted\">";
$nic_block="class=\"primary-font\"";}
Правда данный вариант работает с общим числом строк лога, скрывая "лишние". Т.е. в отображенной истории не всегда будет равно указанному в настройке. Разбираюсь как это исправить
Re: Альтернативный модуль лога сообщений Алисы
Добавлено: Пн фев 05, 2018 6:06 am
nick7zmail
Это надо указывать при выборке из sql.
Код: Выделить всё
$res=SQLSelect("SELECT shouts.*, DATE_FORMAT(shouts.ADDED, '%H:%i') as DAT, TO_DAYS(shouts.ADDED) as DT, users.NAME, users.COLOR, users.AVATAR FROM shouts WHERE MEMBER_ID==0 OR MEMBER_ID==2 LEFT JOIN users ON shouts.MEMBER_ID=users.ID ORDER BY shouts.ADDED DESC, ID DESC $limit");
(не проверял...может не совсем правильный синтаксис...но суть такая.
При этом даже не надо править $res[$i]['MEMBER_ID']==2, т.к. выборка будет только по 2 и 0 пользователю.
Re: Альтернативный модуль лога сообщений Алисы
Добавлено: Ср фев 07, 2018 11:20 pm
Rifmik
Ваш запрос не работает, выдает ошибку синтаксиса, а за идею поиска спасибо! Буду изучать построения запросов.
У меня задача - выводить все события кроме ID==2
Re: Альтернативный модуль лога сообщений Алисы
Добавлено: Чт фев 08, 2018 6:42 am
nick7zmail
Возможно не == а просто = надо...а если кроме, то !=. Я говорил что не проверял)) но суть примерно такая. Дома могу составить рабочий запрос, если не забуду.
Re: Альтернативный модуль лога сообщений Алисы
Добавлено: Чт фев 08, 2018 11:28 pm
Rifmik
nick7zmail писал(а):Возможно не == а просто = надо...а если кроме, то !=. Я говорил что не проверял)) но суть примерно такая. Дома могу составить рабочий запрос, если не забуду.
Отрицание это первое что я проверял - не сработало, тогда стал пробовать вариации с равно. Выдает ошибку.
На сколько понял проблема в синтаксисе исключений.
Если будет возможность - посмотрите )
Re: Альтернативный модуль лога сообщений Алисы
Добавлено: Пт фев 09, 2018 12:48 am
fandaymon
Насколько я понимаю sqlselect просто передаёт запрос mysql, а у него свой синтаксис. Не равно записывается например так <>, а WHERE должен быть после джойнов... Равно в условии должно быть одинарным
SELECT shouts.*, DATE_FORMAT(shouts.ADDED, '%H:%i') as DAT, TO_DAYS(shouts.ADDED) as DT, users.NAME, users.COLOR, users.AVATAR FROM shouts LEFT JOIN users ON shouts.MEMBER_ID=users.ID WHERE MEMBER_ID<>2 ORDER BY shouts.ADDED DESC, ID DESC $limit
Re: Альтернативный модуль лога сообщений Алисы
Добавлено: Пт фев 09, 2018 6:31 am
nick7zmail
Конечно в sql синтаксисе всё...точно...<> =D...запамятовал, т.к. не было под рукой системы...А вот про порядок не знал...джойнами как то в своих модулях не пользовался.
Re: Альтернативный модуль лога сообщений Алисы
Добавлено: Пт фев 09, 2018 9:00 am
Rifmik
fandaymon писал(а):Насколько я понимаю sqlselect просто передаёт запрос mysql, а у него свой синтаксис. Не равно записывается например так <>, а WHERE должен быть после джойнов... Равно в условии должно быть одинарным
SELECT shouts.*, DATE_FORMAT(shouts.ADDED, '%H:%i') as DAT, TO_DAYS(shouts.ADDED) as DT, users.NAME, users.COLOR, users.AVATAR FROM shouts LEFT JOIN users ON shouts.MEMBER_ID=users.ID WHERE MEMBER_ID<>2 ORDER BY shouts.ADDED DESC, ID DESC $limit
ДА! Это работает, спасибо!
Вот бы не подумал что не равно описывается как <>. В стравках по SQL указывается !=
Век живи век учись )
Re: Альтернативный модуль лога сообщений Алисы
Добавлено: Вт фев 20, 2018 12:14 pm
pdmitry2
После одного из последних обновлений (альфа), модуль стал выглядеть вот так:

- Безымянный.jpg (198.26 КБ) 5709 просмотров
.
Как поправить?