Страница 2 из 3
Re: Расширенная история событий- ПОМОГИТЕ!!!
Добавлено: Сб ноя 24, 2018 7:19 pm
fandaymon
Lerych писал(а): Сб ноя 24, 2018 6:42 pm
dmw писал(а): Пт июл 03, 2015 5:46 am
На самом деле всё это делается просто - добавляется в таблицу shouts новые поля - категория и тип. Чуток переделываем модуль shouts - добавив новые поля и фильтр по категориям. В темплейте чата в зависимости от типа ставим нужный цвет. В принципе это всё. Конечно переделывать стандартный чат это значит, что он будет затиратся при каждом обновлении. Поэтому варианта 2 - предложить изменения в стандартный или сделать свой на основе стандартного. Вот тут -
http://majordomo.smartliving.ru/forum/v ... f=5&t=1917 что-то подобное реализовали
А зачем два поля? MESSAGE_TYPE - наверное достаточно? В нём хранить 0 - "системная информация", 1 - "предупреждения", 2 - "ошибки", 3 - "аварийные ситуации" и т.п.
В таблице shouts что за поле SOURCE?
В типе хранить признак важности/цвета, а в категории - категорию, которую хотел топикстартер. Чтобы выводя чат на сцену, можно было задавать доппараметром - выводить только то, что относится к температуре
SOURCE - это терминал, откуда пришло сообщение. Например у меня есть малинка с установленным ассистентом - всё что она распознаёт и отправляет на сервер в таблицу попадает с SOURCE='terminal6', 6 это ID конкретного терминала в таблице terminals
Re: Расширенная история событий- ПОМОГИТЕ!!!
Добавлено: Сб ноя 24, 2018 8:18 pm
Lerych
dmw писал(а): Пт июл 03, 2015 5:46 am
В типе хранить признак важности/цвета, а в категории - категорию, которую хотел топикстартер. Чтобы выводя чат на сцену, можно было задавать доппараметром - выводить только то, что относится к температуре
SOURCE - это терминал, откуда пришло сообщение. Например у меня есть малинка с установленным ассистентом - всё что она распознаёт и отправляет на сервер в таблицу попадает с SOURCE='terminal6', 6 это ID конкретного терминала в таблице terminals
Ок. Завёл я в таблице "
shouts" доп.поля
MESSAGE_TYPE (тип сообщения) и
MESSAGE_CAT (категория сообщения), а как их заполнять при вызове функции "
say" или "
saydym"? Лезть в первом случае в файл "
/lib/common.class.php" во втором в файл "
lib/dym.php", ну и соответственно в шаблоны модулей?
Re: Расширенная история событий- ПОМОГИТЕ!!!
Добавлено: Сб ноя 24, 2018 10:04 pm
fandaymon
Lerych писал(а): Сб ноя 24, 2018 8:18 pm
dmw писал(а): Пт июл 03, 2015 5:46 am
В типе хранить признак важности/цвета, а в категории - категорию, которую хотел топикстартер. Чтобы выводя чат на сцену, можно было задавать доппараметром - выводить только то, что относится к температуре
SOURCE - это терминал, откуда пришло сообщение. Например у меня есть малинка с установленным ассистентом - всё что она распознаёт и отправляет на сервер в таблицу попадает с SOURCE='terminal6', 6 это ID конкретного терминала в таблице terminals
Ок. Завёл я в таблице "
shouts" доп.поля
MESSAGE_TYPE (тип сообщения) и
MESSAGE_CAT (категория сообщения), а как их заполнять при вызове функции "
say" или "
saydym"? Лезть в первом случае в файл "
/lib/common.class.php" во втором в файл "
lib/dym.php", ну и соответственно в шаблоны модулей?
Да - найти в /lib/common.class.php функцию say и добавить в список параметров ещё 2, со значениями по умолчанию '', т.е. вместо
Код: Выделить всё
function say($ph, $level = 0, $member_id = 0, $source = '')
пишем
Код: Выделить всё
function say($ph, $level = 0, $member_id = 0, $source = '',$message_type='',$message_cat='')
далее - находим $rec['SOURCE'] = $source;
и после неё пишем
Код: Выделить всё
$rec['MESSAGE_TYPE'] = $message_type;
$rec['MESSAGE_CAT'] = $message_cat;
теперь мы можем передать функции say дополнительные параметры - say('Опасность!',3,,,'Критическое','Тревога'); и эти дополнительные параметры попадут в таблицу
Далее - в /modules/shoutbox/shouts_search.inc.php добавляем проверку нету ли запроса фильтровать чат по категории
где-нибудь после if (!$qry) $qry="1";
if (IsSet($this->show_category)) {
$qry.=' AND MESSAGE_CAT=' .$this->show_category;
}
и там где
if (trim($res[$i]['COLOR'])) {
$stl=' style="color:'.$res[$i]['COLOR'].'"';
}
добавить после проверку на тип сообщения, т.е. $res[$i]['MESSAGE_TYPE'] и точно таким же образом как это делается для пользователей, добавить нужный цвет для нужного типа сообщений
как-то так
Re: Расширенная история событий- ПОМОГИТЕ!!!
Добавлено: Сб ноя 24, 2018 10:32 pm
xor
Чего-то вы сильно в сторону от мэйнстрима уходите. Say, мне кажется, лучше не корёжить. Может, стоит лучше свою функцию сделать, как у m-malva?
Re: Расширенная история событий- ПОМОГИТЕ!!!
Добавлено: Сб ноя 24, 2018 10:39 pm
Lerych
Спасибо, добрый человек!!!
Правда, я только, что сделал через saydym.
Т.е. данные в таблицу заношу через
dym.php
Код: Выделить всё
function saydym($ph, $level=0, $ding=1, $member_id=0, $type=0, $category=0)
{
global $commandLine;
global $voicemode;
if ($ding >= 5){$ding=1;};
DebMes('SAY FUNC: '.$ph);
$rec = array();
$rec['MESSAGE'] = $ph;
$rec['ADDED'] = date('Y-m-d H:i:s');
$rec['ROOM_ID'] = 0;
$rec['MEMBER_ID'] = $member_id;
$rec['MESSAGE_TYPE'] = $type;
$rec['MESSAGE_CAT'] = $category;
$rec['SOURCE'] = $source;
а на сцене вывожу через стандартный
shouts_search.inc.php
Код: Выделить всё
$stl='';
/*if ($res[$i]['MESSAGE_TYPE']==3) {
$stl=' style="color:red"';
}*/
switch ($res[$i]['MESSAGE_TYPE']) {
case 0:
$stl=' style="color:white"'; // системные сообщения белый цвет
break;
case 1:
$stl=' style="color:green"'; // информационные сообщения зеленый цвет
break;
case 2:
$stl=' style="color:blue"'; // предупреждения синий цвет
break;
case 3:
$stl=' style="color:yellow"'; // системные об ошибках желтый цвет
break;
case 4:
$stl=' style="color:red"'; // сообщения об авариях красный цвет
break;
default:
break;
}
//$txtdata.="<span$stl>".$res[$i]['DAT']." <b>"./*.$res[$i]['MESSAGE_TYPE']." ".$res[$i]['MESSAGE_CAT'].*/" ".$res[$i]['NAME']."</b>: ".nl2br($res[$i]['MESSAGE'])."</span><br>"; // выделение цветом всей строки
$txtdata.="<span>".$res[$i]['DAT']." <b>"./*.$res[$i]['MESSAGE_TYPE']." ".$res[$i]['MESSAGE_CAT'].*/" ".$res[$i]['NAME']."</b>: <span$stl>".nl2br($res[$i]['MESSAGE'])."</span></span><br>";// выделение цветом только сообщения
Вот результат:

- 00001.png (22.7 КБ) 5963 просмотра
Re: Расширенная история событий- ПОМОГИТЕ!!!
Добавлено: Сб ноя 24, 2018 10:45 pm
Lerych
xor писал(а): Сб ноя 24, 2018 10:32 pm
Чего-то вы сильно в сторону от мэйнстрима уходите. Say, мне кажется, лучше не корёжить. Может, стоит лучше свою функцию сделать, как у m-malva?
Согласен, что
Say лучше не трогать. Тем более в
saydym можно ещё и разные звуки для разных событий воспроизводить.
А кто такой
m-malva? И где глянуть на его функцию?
Re: Расширенная история событий- ПОМОГИТЕ!!!
Добавлено: Сб ноя 24, 2018 10:54 pm
fandaymon
xor писал(а): Сб ноя 24, 2018 10:32 pm
Чего-то вы сильно в сторону от мэйнстрима уходите. Say, мне кажется, лучше не корёжить. Может, стоит лучше свою функцию сделать, как у m-malva?
Ой, да этот бедный say уже так искорёжили, что пару лишних строчек особых проблем не сделают

По мне так вполне себе мейнстримно - отмечать важные и очень важные сообщения
Re: Расширенная история событий- ПОМОГИТЕ!!!
Добавлено: Сб ноя 24, 2018 11:02 pm
fandaymon
Lerych писал(а): Сб ноя 24, 2018 10:39 pm
Спасибо, добрый человек!!!
Правда, я только, что сделал через saydym.
Т.е. данные в таблицу заношу через
dym.php
Супер! Вот захотел человек плюшку, взял сам и сделал - всячески одобряю этот метод!
Re: Расширенная история событий- ПОМОГИТЕ!!!
Добавлено: Сб ноя 24, 2018 11:08 pm
Lerych
fandaymon писал(а): Сб ноя 24, 2018 11:02 pm
Lerych писал(а): Сб ноя 24, 2018 10:39 pm
Спасибо, добрый человек!!!
Правда, я только, что сделал через saydym.
Т.е. данные в таблицу заношу через
dym.php
Супер! Вот захотел человек плюшку, взял сам и сделал - всячески одобряю этот метод!
Спасибо ФОРУМУ! Я только учусь!

Re: Расширенная история событий- ПОМОГИТЕ!!!
Добавлено: Сб ноя 24, 2018 11:30 pm
Lerych
fandaymon писал(а): Сб ноя 24, 2018 10:54 pm
По мне так вполне себе мейнстримно - отмечать важные и очень важные сообщения
Может Сергея попросить внести в штатный модуль данный функционал?