NDemia CashMatic Stacker plugin (Расширенный мониторинг стекера купюроприёмника) v.1.0.0 (c) NDemia 2012 http://www.ndemia.com/CashMatic/plugins/Stacker/Stacker.zip Данный компонент расширения (плагин) обеспечивает разработчика приложений некоторыми дополнительными возможностями, позволяющими контролировать наличие (удаление и установку) стекера купюроприёмника прямо из прикладного скрипта. НЕ РЕКОМЕНДУЕТСЯ устанавливать Stacker plugin совместно с CashCount plugin. (CashCount сам поддерживает всю функциональность Stacker plugin, при одновременной работе этих компонентов могут возникать неожиданные эффекты) Для установки все файлы скопируйте в папку \Program Files\NDemia\CashMatic\Plugins\Stacker Затем запустите обычный инсталлятор CashMatic (Install.CashMatic.exe) и повторите установку CashMatic "поверх" существующей. Смысл этого действия - в плагинах есть специальная точка входа для установки и инициализации, базовый инсталлятор умеет её правильно вызывать у всех DLL в пути \Program Files\NDemia\CashMatic\Plugins. (Более короткий способ установки компонента: импорт данных в системный реестр Windows из файла Stacker.reg - в этом случае запускать инсталлятор не нужно). Как работает NDemia CashMatic Stacker plugin: если он установлен, то при каждом вызове CashMatic.Session.Reset() добавляются переменные сеанса ( подробности о переменных CashMatic.Session см. http://ndemia.com/CashMatic/u-home/PG/session ): Stacker.Installed = "1.0.0" //это признак установки плагина, не стекера. //Если плагин установлен, то версия, иначе пустая строка. Stacker.Disposed //это признак удаления стекер //истина как "1", ложь как "" (годится напрямую для javascript if()). //Значение выставляется при Reset, а также при снятии-установке стекера. При удалении стекера, если есть непустая переменная CashMatic.Session "Stacker.OnDispose", то значение выполняется как код javascript. Например, так: CashMatic.Session.AddProp("Stacker.OnDispose", "alert('Стекер снят:' + CashMatic.Session.GetProp('Stacker.Disposed'))"); Аналогично при установке стекера, если есть непустая переменная CashMatic.Session "Stacker.OnRestore", то значение выполняется как код javascript. ВНИМАНИЕ: Значения "Stacker.OnDispose"/ "Stacker.OnRestore" сбрасываются при CashMatic.Session.Reset(), но не сбрасываются при переходах. Т.е. если javascript-код "Stacker.OnDispose"/ "Stacker.OnRestore" каким-либо образом связан с функциями и объектами текущего документа, то при переходе на другие страницы нужно задать в "Stacker.OnDispose"/ "Stacker.OnRestore" пустые строки, чтобы javascript-код не выполнился в контексте других HTML-документов. Например, так: function onunload() { CashMatic.Session.AddProp("Stacker.OnDispose", ""); CashMatic.Session.AddProp("Stacker.OnRestore", ""); } Переход на специальный URL-адрес collect.html и куда-либо ещё этот плагин сам не делает, но может делать вызываемый им код ("Stacker.OnDispose"/ "Stacker.OnRestore") Например: CashMatic.Session.AddProp("Stacker.OnDispose", "navigate('collect.html')"); ( подробности о специальных URL-адресах см. http://ndemia.com/CashMatic/u-home/PG/navigation ) NDemia CashMatic Stacker plugin при удалении стекера возбуждает отказ с именем "Stacker.Disposed". Этот отказ по умолчанию не считается ошибкой. Подробности обработки отказов из прикладного скрипта см. http://ndemia.com/CashMatic/u-home/PG/failures ОБРАТИТЕ ВНИМАНИЕ: NDemia CashMatic Stacker plugin при установке отключает контроль URL-адресов переходов (см. http://ndemia.com/CashMatic/u-home/PG/navigation/urls-check.php ) (это сделано для того, чтобы при снятом стекере можно было бы перейти на failure.html вместо collect.html) Для получения дополнительной информации по использованию NDemia CashMatic Stacker plugin обращайтесь, пожалуйста, в ООО НДемиа: ndemia@ndemia.com.