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

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

Модератор: immortal

Ответить
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

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

Сообщение xor » Пт сен 04, 2015 10:23 pm

Вопрос по $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 как сбрасывается?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

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

Сообщение sergejey » Сб сен 05, 2015 12:03 am

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

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

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

Сообщение xor » Сб сен 05, 2015 1:16 am

убрал галку Использовать как контекст у радио

(читаем снизу вверх)))
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('Контекст забыт.');  
Это помогло
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

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

Сообщение sergejey » Пн сен 07, 2015 1:01 pm

Надо будет самому потестировать и разобраться. Добавил себе в задачи.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ответить