Расширенная история событий- ПОМОГИТЕ!!!

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

Модератор: immortal

fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Расширенная история событий- ПОМОГИТЕ!!!

Сообщение fandaymon » Сб ноя 24, 2018 7:19 pm

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

Re: Расширенная история событий- ПОМОГИТЕ!!!

Сообщение 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", ну и соответственно в шаблоны модулей?
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Расширенная история событий- ПОМОГИТЕ!!!

Сообщение fandaymon » Сб ноя 24, 2018 10:04 pm

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'] и точно таким же образом как это делается для пользователей, добавить нужный цвет для нужного типа сообщений

как-то так
За это сообщение автора fandaymon поблагодарил:
Lerych (Сб ноя 24, 2018 10:23 pm)
Рейтинг: 1.16%
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Расширенная история событий- ПОМОГИТЕ!!!

Сообщение xor » Сб ноя 24, 2018 10:32 pm

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

Re: Расширенная история событий- ПОМОГИТЕ!!!

Сообщение Lerych » Сб ноя 24, 2018 10:39 pm

Спасибо, добрый человек!!!
Правда, я только, что сделал через 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
00001.png (22.7 КБ) 4980 просмотров
За это сообщение автора Lerych поблагодарил:
xor (Вс ноя 25, 2018 12:31 am)
Рейтинг: 1.16%
Аватара пользователя
Lerych
Сообщения: 191
Зарегистрирован: Чт дек 14, 2017 8:46 pm
Откуда: Московская область, Серпухов
Благодарил (а): 79 раз
Поблагодарили: 24 раза

Re: Расширенная история событий- ПОМОГИТЕ!!!

Сообщение Lerych » Сб ноя 24, 2018 10:45 pm

xor писал(а):
Сб ноя 24, 2018 10:32 pm
Чего-то вы сильно в сторону от мэйнстрима уходите. Say, мне кажется, лучше не корёжить. Может, стоит лучше свою функцию сделать, как у m-malva?
Согласен, что Say лучше не трогать. Тем более в saydym можно ещё и разные звуки для разных событий воспроизводить.
А кто такой m-malva? И где глянуть на его функцию?
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Расширенная история событий- ПОМОГИТЕ!!!

Сообщение fandaymon » Сб ноя 24, 2018 10:54 pm

xor писал(а):
Сб ноя 24, 2018 10:32 pm
Чего-то вы сильно в сторону от мэйнстрима уходите. Say, мне кажется, лучше не корёжить. Может, стоит лучше свою функцию сделать, как у m-malva?
Ой, да этот бедный say уже так искорёжили, что пару лишних строчек особых проблем не сделают 8-) По мне так вполне себе мейнстримно - отмечать важные и очень важные сообщения
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Расширенная история событий- ПОМОГИТЕ!!!

Сообщение fandaymon » Сб ноя 24, 2018 11:02 pm

Lerych писал(а):
Сб ноя 24, 2018 10:39 pm
Спасибо, добрый человек!!!
Правда, я только, что сделал через saydym.
Т.е. данные в таблицу заношу через dym.php
Супер! Вот захотел человек плюшку, взял сам и сделал - всячески одобряю этот метод!
За это сообщение автора fandaymon поблагодарил:
Lerych (Сб ноя 24, 2018 11:05 pm)
Рейтинг: 1.16%
Аватара пользователя
Lerych
Сообщения: 191
Зарегистрирован: Чт дек 14, 2017 8:46 pm
Откуда: Московская область, Серпухов
Благодарил (а): 79 раз
Поблагодарили: 24 раза

Re: Расширенная история событий- ПОМОГИТЕ!!!

Сообщение Lerych » Сб ноя 24, 2018 11:08 pm

fandaymon писал(а):
Сб ноя 24, 2018 11:02 pm
Lerych писал(а):
Сб ноя 24, 2018 10:39 pm
Спасибо, добрый человек!!!
Правда, я только, что сделал через saydym.
Т.е. данные в таблицу заношу через dym.php
Супер! Вот захотел человек плюшку, взял сам и сделал - всячески одобряю этот метод!
Спасибо ФОРУМУ! Я только учусь! :D
Аватара пользователя
Lerych
Сообщения: 191
Зарегистрирован: Чт дек 14, 2017 8:46 pm
Откуда: Московская область, Серпухов
Благодарил (а): 79 раз
Поблагодарили: 24 раза

Re: Расширенная история событий- ПОМОГИТЕ!!!

Сообщение Lerych » Сб ноя 24, 2018 11:30 pm

fandaymon писал(а):
Сб ноя 24, 2018 10:54 pm
По мне так вполне себе мейнстримно - отмечать важные и очень важные сообщения
Может Сергея попросить внести в штатный модуль данный функционал?
Ответить