Страница 11 из 14

Re: Альтернативный модуль лога сообщений Алисы

Добавлено: Сб дек 23, 2017 8:48 pm
Rifmik
Jager писал(а):Можно ли добавить функцию запрета отображения сообщений от определенных отправителей, ну или возможность выводить сообщения только от выбранных ?
С помощью этой функции можно было бы например получить отдельный лог для сообщений от железа, которые не нужны остальным пользователям и лишь захламляют чат.
Вот у меня точно такое же желание, а может и проще - хочу сделать что бы Алиса ежечасно говорила время, но оно не отображалось в чате.
Нашел данный модуль, изменил формат стандартной говорилки на

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

saydym (timeNow(),1,1,2);

Как теперь сделать так, что бы не отображались сообщения от пользователя номер 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
После одного из последних обновлений (альфа), модуль стал выглядеть вот так:
SPOILERSPOILER_SHOW
Безымянный.jpg
Безымянный.jpg (198.26 КБ) 5709 просмотров
.
Как поправить?