Честно - даже не устанавливал этот модуль)) Выложил, как есть. По-ходу придется...может по-пути отрехтую еще че нить))m-malva писал(а):ну или ждите пока dym.php перепишут и выложат
[Модуль] ChatBox (app_chatbox)
Модератор: immortal
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
Re: Альтернативный модуль лога сообщений Алисы
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
Re: Альтернативный модуль лога сообщений Алисы
Добавил файл dym.php в модуль...одного не понял...на кой там обращение к гугловскому движку, к гроулу и т.д...почему встроенный say(); не устраивал?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- m-malva
- Сообщения: 291
- Зарегистрирован: Чт фев 26, 2015 1:38 am
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Альтернативный модуль лога сообщений Алисы
на момент написания модуля именно так выглядела функция saynick7zmail писал(а):...одного не понял...на кой там обращение к гугловскому движку, к гроулу и т.д...почему встроенный say(); не устраивал?
to nick7zmail
прочитайте самый первый пост в топике
"...Покопавшись в функции say() я заметил что в ней принудительно прописывается ID пользователя Алисы - именно поэтому все сообщения в логе отображаются от нее. Поскольку функцию менять нельзя, потому что все равно при обновлении системы изменения потеряются, я создал свою функцию saydym() которая в точности повторяет стандартную say(), но ID пользователя в ней можно задать какой угодно...."
saydim это копия функции say с добавленной возможностью выбора звукового файла и пользователя.
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
Re: Альтернативный модуль лога сообщений Алисы
Да, спасибо))) я уже вечером лежа и глядя в потолок понял это)) если юзать функцию say() команды повторно уйдут в лог, с дефалтным именем пользователя...m-malva писал(а): прочитайте самый первый пост в топике
"...Покопавшись в функции say() я заметил что в ней принудительно прописывается ID пользователя Алисы - именно поэтому все сообщения в логе отображаются от нее. Поскольку функцию менять нельзя, потому что все равно при обновлении системы изменения потеряются, я создал свою функцию saydym() которая в точности повторяет стандартную say(), но ID пользователя в ней можно задать какой угодно...."
saydim это копия функции say с добавленной возможностью выбора звукового файла и пользователя.
Буду переписывать функцию знач вечерком.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Re: Альтернативный модуль лога сообщений Алисы
У меня как-то так получилось
SPOILERSPOILER_SHOW
Код: Выделить всё
<?php
/**
* Title
*
* Description
*
* @access public
*/
function saydym($ph, $level=0, $ding=1, $member_id=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['SOURCE'] = $source;
if ($level>0) $rec['IMPORTANCE']=$level;
$rec['ID'] = SQLInsert('shouts', $rec);
if (defined('SETTINGS_HOOK_BEFORE_SAY') && SETTINGS_HOOK_BEFORE_SAY!='') {
eval(SETTINGS_HOOK_BEFORE_SAY);
}
if ($level >= (int)getGlobal('minMsgLevel'))
{
if (!defined('SETTINGS_SPEAK_SIGNAL') || SETTINGS_SPEAK_SIGNAL=='1') {
$passed=SQLSelectOne("SELECT (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(ADDED)) as PASSED FROM shouts WHERE ID!='".$rec['ID']."' ORDER BY ID DESC LIMIT 1");
if ($passed['PASSED']>20) { // play intro-sound only if more than 30 seconds passed from the last one
if ($ding == 1){playSound('dingdong', 1, $level);}
if ($ding == 2){playSound('tone1', 1, $level);}
if ($ding == 3){playSound('tone2', 1, $level);}
if ($ding == 4){playSound('tone3', 1, $level);}
}
}
}
setGlobal('lastSayTime', time());
setGlobal('lastSayMessage', $ph);
processSubscriptions('SAY', array('level' => $level, 'message' => $ph, 'member_id' => $member_id, 'ignoreVoice'=>$ignoreVoice));
if (!$noPatternMode)
{
include_once(DIR_MODULES . 'patterns/patterns.class.php');
$pt = new patterns();
$pt->checkAllPatterns($member_id);
}
if (defined('SETTINGS_HOOK_AFTER_SAY') && SETTINGS_HOOK_AFTER_SAY != '')
{
eval(SETTINGS_HOOK_AFTER_SAY);
}
$terminals=SQLSelect("SELECT NAME FROM terminals WHERE IS_ONLINE=1 AND MAJORDROID_API=1");
$total=count($terminals);
for($i=0;$i<$total;$i++) {
sayTo($ph, $level, $terminals[$i]['NAME']);
}
}
?>
Последний раз редактировалось bat86 Пн ноя 14, 2016 3:04 pm, всего редактировалось 1 раз.
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
Re: Альтернативный модуль лога сообщений Алисы
Хорошо. Если работает норм - залил обновление. Не проверял, честно)) Времени пока нет. В пятницу другим занят был.bat86 писал(а):У меня как-то так получилось
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Re: Альтернативный модуль лога сообщений Алисы
Тогда наверное стоит обновить и chat_search.inc.php
Сделал корректное отображение цветов у имён, так как отображался код цвета.
Хотелось бы как-то в админку добавить возможность смены цвета и аватара у Алисы, но пока нет времени разбираться что-там как
Сделал корректное отображение цветов у имён, так как отображался код цвета.
Хотелось бы как-то в админку добавить возможность смены цвета и аватара у Алисы, но пока нет времени разбираться что-там как
SPOILERSPOILER_SHOW
Код: Выделить всё
<?php
/*
* @version 0.3 (auto-set)
*/
global $session;
global $msg;
global $getdata;
global $clear;
//#######################################################################################################
if ($this->action=='admin' && $clear) {
SQLExec("DELETE FROM shouts");
$this->redirect("?");
}
//#######################################################################################################
if (!$session->data['SITE_USERNAME']) {
$out['NOT_LOGGED']=1;
} else {
$user=SQLSelectOne("SELECT * FROM users WHERE USERNAME='".DBSafe($session->data['SITE_USERNAME'])."'");
$session->data['logged_user']=$user['ID'];
}
//#######################################################################################################
if ($this->action=='' && $session->data['logged_user'] && $msg!='') {
$rec=array();
$rec['MEMBER_ID']=$session->data['logged_user'];
$rec['MESSAGE']=htmlspecialchars($msg);
$rec['ADDED']=date('Y-m-d H:i:s');
SQLInsert('shouts', $rec);
include_once(DIR_MODULES.'patterns/patterns.class.php');
$pt=new patterns();
$res=$pt->checkAllPatterns($rec['MEMBER_ID']);
if (!$res) {
processCommand($msg);
}
$getdata=1;
}
//#######################################################################################################
if ($this->owner->name=='panel') {
$out['CONTROLPANEL']=1;
}
// $qry="1";
if ($this->action!='admin') {
$limit="LIMIT 50";
}
global $limit;
if ($limit) {
$this->limit=$limit;
}
if ($this->limit) {
$limit="LIMIT ".$this->limit;
} else {
$limit="LIMIT 50";
}
$limit=str_replace('LIMIT LIMIT', 'LIMIT', $limit);
$out['LIMIT']=$this->limit;
// $res=SQLSelect("SELECT shouts.*, DATE_FORMAT(shouts.ADDED, '%H:%i') as DAT, TO_DAYS(shouts.ADDED) as DT, users.NAME, users.HOST FROM shouts LEFT JOIN users ON shouts.MEMBER_ID=users.ID WHERE $qry ORDER BY shouts.ADDED DESC, ID DESC $limit");
$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 LEFT JOIN users ON shouts.MEMBER_ID=users.ID ORDER BY shouts.ADDED DESC, ID DESC $limit");
// if ($_GET['reverse']) {
$this->reverse=1;
// }
if (!$this->reverse) {
$res=array_reverse($res);
} else {
$out['REVERSE']=1;
}
// $txtdata="<h4>".day2str(date('w')).date(' d ').mon2str(date('m')).date(' Y')." года</h4><p>";
if ($this->mobile) {
$out['MOBILE']=1;
}
if ($res[0]['ID']) {
$old_dt=$res[0]['DT'];
$total=count($res);
for($i=0;$i<$total;$i++) {
// some action for every record if required
$tmp=explode(' ', $res[$i]['ADDED']);
$res[$i]['ADDED']=fromDBDate($tmp[0])." ".$tmp[1];
if ($res[$i]['DT']!=$old_dt) {
$txtdata.="<h4>".day2str(date('w',strtotime($tmp[0]))).date(' d ',strtotime($tmp[0])).mon2str(date('m',strtotime($tmp[0]))).date(' Y',strtotime($tmp[0]))." года</h4>";
$old_dt=$res[$i]['DT'];
}
if ($res[$i]['MEMBER_ID']==0) {
$res[$i]['NAME']='Алиса';
$res[$i]['AVATAR']='10_14045.png';
$res[$i]['COLOR']='#00BCD4';
$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\"";
}else{
$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\"";
}
$txtdata.="
<ul class=\"chat\">
<li ".$left_right.">";
if ($res[$i]['AVATAR']!=''){
$txtdata.="".
$img_left_right."
<img src='/cms/avatars/".$res[$i]['AVATAR']."' class=\"img-circle\" width=\"40\" height=\"40\">
</span>";
}else{
$txtdata.="".
$img_left_right."
<img src='/img/icons/user.png' class=\"img-circle\" width=\"40\" height=\"40\">
</span>";
}
$txtdata.="
<div class=\"chat-body clearfix\">
<div class=\"header\">
".$time_block."
<span class=\"glyphicon glyphicon-time\"></span> ".$res[$i]['DAT']."
</small>";
$txtdata.="
<strong style='color:".$res[$i]['COLOR'].";'".$nic_block."> ".$res[$i]['NAME']."
</strong>
</div>";
$txtdata.="
<h5>".$lr." ".nl2br($res[$i]['MESSAGE'])."
</h5>
</div>
</li>
</ul>";
}
$txtdata.='';
$out['RESULT']=$res;
$out['TXT_DATA']=$txtdata;
} else {
$txtdata.='No data';
}
$txtdata.='';
$out['SERVER_NAME']=$_SERVER['SERVER_NAME'];
if ($this->action=='' && $getdata!='') {
header ("HTTP/1.0: 200 OK\n");
header ('Content-Type: text/html; charset=utf-8');
echo $txtdata;
$session->save();
exit;
}
function mon2str($mon){
switch ($mon){
case 01: $m="января";break;
case 02: $m="февраля";break;
case 03: $m="марта";break;
case 04: $m="апреля";break;
case 05: $m="мая";break;
case 06: $m="июня";break;
case 07: $m="июля";break;
case 08: $m="августа";break;
case 09: $m="сентября";break;
case 10: $m="октября";break;
case 11: $m="ноября";break;
case 12: $m="декабря";break;
}
return $m;
}
function day2str($day){
switch ($day){
case 1: $m="Понедельник";break;
case 2: $m="Вторник";break;
case 3: $m="Среда";break;
case 4: $m="Четверг";break;
case 5: $m="Пятница";break;
case 6: $m="Суббота";break;
case 0: $m="Воскресенье";break;
}
return $m;
}
?>
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
Re: Альтернативный модуль лога сообщений Алисы
Залил обнову...как заказывали - настройка аватара и цвета)) Кстати...кто знает как слова перенести можно? Все теги автопереноса пробовал - чет ноль реакции. Если у кого полусилось - отпишитесь как? А то если в боковое меню пихать - как-то так получается:bat86 писал(а): Хотелось бы как-то в админку добавить возможность смены цвета и аватара у Алисы, но пока нет времени разбираться что-там как
скринSPOILER_SHOW
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Re: Альтернативный модуль лога сообщений Алисы
Это как раз легко)
В chat_search_site.html в css
В chat_search_site.html в css
Код: Выделить всё
.chat li .chat-body h5
{
white-space: normal;
}
Re: Альтернативный модуль лога сообщений Алисы
А как можно аватар, рядом с именем расположить, а то много места в боковом меню занимает? Да и имя системы хотелось бы, что бы была возможность менять.