Страница 1 из 1

Вопрос по шаблонам -- $original

Добавлено: Пт сен 04, 2015 10:23 pm
xor
Вопрос по $original.
Его надо как-то сбрасывать?
А то у меня как-то странно работает стандартная конструкция (радио):
Изображение
Изображение
Вот, создал шаблон Выполнить при совпадении:

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

debmes($original);
if (preg_match('/включи/isu',$original)) {
  say('Включаю радио.',1);
  include_once(DIR_MODULES.'app_radio/app_radio.class.php');

  $app_radio=new app_radio();
  $app_radio->control('play');

  unset($app_radio);

} elseif (preg_match('/выключи/isu',$original)) {
  say('Выключаю радио.',1);
  getURL("http://localhost/rc/?command=vlc_pause",0);
 
} else {
  say('Непонятно, что с радио ',1);
}
Специально добавил вывод $original первой строкой

История событий:
21:58 Сергей: Включи радио
21:58 Алиса: Включаю радио.


21:58:47 DEBUG [root]: Включи радио Включи радио (at C:\_majordomo\htdocs\lib\general.class.php:430)
21:58:47 DEBUG [root]: Executing (exclusive): C:\_majordomo\htdocs/rc/madplay.exe C:\_majordomo\htdocs/sounds/dingdong.mp3 (at C:\_majordomo\htdocs\lib\general.class.php:430)
21:58:48 DEBUG [root]: External context response: a:1:{s:15:"MATCHED_CONTEXT";i:0;} (at C:\_majordomo\htdocs\lib\general.class.php:430)
21:58:50 DEBUG [root]: Executing (exclusive): cscript C:\_majordomo\htdocs/rc/sapi.js Включаю радио. (at C:\_majordomo\htdocs\lib\general.class.php:430)

21:59 Сергей: Выключи радио
21:59 Алиса: Включаю радио.


21:59:15 DEBUG [root]: Включи радио Включи радио Включи радио Включи радио Включи радио Включи радио Выключи радио Выключи радио (at C:\_majordomo\htdocs\lib\general.class.php:430)
21:59:16 DEBUG [root]: Executing (exclusive): C:\_majordomo\htdocs/rc/madplay.exe C:\_majordomo\htdocs/sounds/dingdong.mp3 (at C:\_majordomo\htdocs\lib\general.class.php:430)
21:59:16 DEBUG [root]: External context response: a:1:{s:15:"MATCHED_CONTEXT";i:0;} (at C:\_majordomo\htdocs\lib\general.class.php:430)
21:59:18 DEBUG [root]: Executing (exclusive): cscript C:\_majordomo\htdocs/rc/sapi.js Включаю радио. (at C:\_majordomo\htdocs\lib\general.class.php:430)

$original как сбрасывается?

Re: Вопрос по шаблонам -- $original

Добавлено: Сб сен 05, 2015 12:03 am
sergejey
Видимо, тут какая-то логическая ошибка в системе контекстов. Или в настройке. $original сбрасывается при сбросе контекста. Этот сброс происходит при найденном совпадении, но, как я вижу, на "радио" тоже стоит галочка "использовать как контекст", что может как раз и привести к тому, что система не приходит к исходному состоянию. Попробуйте убрать эту галочку и посмотреть, что будет.

Re: Вопрос по шаблонам -- $original

Добавлено: Сб сен 05, 2015 1:16 am
xor
убрал галку Использовать как контекст у радио

(читаем снизу вверх)))
00:50 Алиса: Включаю радио.
00:50 Сергей: Выключи радио
00:49 Алиса: Включаю радио.
00:49 Сергей: включи радио

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

00:49:44 DEBUG [root]:  включи радио включи радио (at C:\_majordomo\htdocs\lib\general.class.php:430) 
00:49:45 DEBUG [root]: Executing (exclusive): C:\_majordomo\htdocs/rc/madplay.exe C:\_majordomo\htdocs/sounds/dingdong.mp3 (at C:\_majordomo\htdocs\lib\general.class.php:430) 
00:49:45 DEBUG [root]: External context response: a:1:{s:15:"MATCHED_CONTEXT";i:0;} (at C:\_majordomo\htdocs\lib\general.class.php:430) 
00:49:47 DEBUG [root]: Executing (exclusive): cscript C:\_majordomo\htdocs/rc/sapi.js Включаю радио. (at C:\_majordomo\htdocs\lib\general.class.php:430) 
00:50:04 DEBUG [root]:  включи радио  включи радио включи радио  включи радио  включи радио включи радио Выключи радио Выключи радио (at C:\_majordomo\htdocs\lib\general.class.php:430) 
00:50:05 DEBUG [root]: Executing (exclusive): cscript C:\_majordomo\htdocs/rc/sapi.js Включаю радио. (at C:\_majordomo\htdocs\lib\general.class.php:430) 
Не сбрасывается(((.
+Стоит условие при сработке Set context when matched:общий контекст
Общий контекст -- к нему выдвигаются какие-либо требования применительно к данному случаю:
типа, не должен быть глобальным или еще?
Можно ли самому сбросить $original в коде (setglobal или как-то еще)?

Заметил еще, что в лог пишется диндон и External context response только при первой команде, а при второй только запись об ответе.

PS/ добавил в конец кода сработки шаблона принудительный сброс контекста "забудь":

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

context_clear();
clearTimeOut('user_'.context_getuser().'_contexttimeout');
//say('Контекст забыт.');  
Это помогло

Re: Вопрос по шаблонам -- $original

Добавлено: Пн сен 07, 2015 1:01 pm
sergejey
Надо будет самому потестировать и разобраться. Добавил себе в задачи.