NDemia Новости CashMatic Рубли Форум

Специальные URL


см. также: Модель навигации Автоматические переходы Контроль URL-адресов переходов
Стартовая страница Модель обработки отказов Протокол "CashMatic:"


NDemia CashMatic KioskBrowser использует специальные URL для
контроля допустимости переходов и для выполнения автоматических переходов.
Специальные URL настраиваются в системном реестре Windows.
Используется раздел
HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\URL
При необходимости получить значение специального URL выполняется следующая последовательность действий:
  • В указанном разделе реестра проверяется параметр, имя которого равно имени специального URL, тип REG_SZ (например, для специального URL start в указанном разделе реестра может быть задан строковый параметр "start"). Если такой параметр существует и имеет непустое значение, то далее используется его значение (например: http://myserver/start.php).
  • Если значение URL-адреса по п.1 не определилось, то рассматривается строковый параметр urlroot. Этот параметр задаёт общий корень (корневой путь) для всех специальных URL (по умолчанию "%ProgramFiles%NDemia\CashMatic\HTML", но может быть и ссылка на интернет-ресурс). К корневому пути добавляется имя специального URL.
  • Например, специальный URL start преобразуется в "%ProgramFiles%\NDemia\CashMatic\HTML\start").
  • Если полученный по п.1 или п.2 URL-адрес не содержит префикса спецификации протокола (URL-схемы) (примеры префиксов спецификации протокола, или URL-схем: "http:", "CashMatic:", "file:"), то предполагается ссылка на локальный файл.
    В этом случае добавляется умолчательное расширение ".html", применяется подстановка значений вставленных в URL-адрес переменных окружения (environment variables, переменная name вставляется как %name%), например, можно в путь вставлять %ProgramFiles%, %APPDATA% и т.п.
    Если специальный URL был задан явным параметром (определился по п.1) как локальный файл с относительным путём, то полный путь определяется относительно локального корня HTML (по умолчанию "%ProgramFiles%\NDemia\CashMatic\HTML").
  • Пример 1: если параметр start имеет значение "%ProgramFiles%/start", то специальный URL start преобразуется в "C:\Program Files\start.html".
    Пример 2: если параметр start имеет значение "my\start", то специальный URL start преобразуется в "C:\Program Files\NDemia\CashMatic\html\my\start.html".
  • Выполняется преобразование URL-адреса, известное как "каноникализация" или "нормализация" (из URL-адреса корректно удаляются элементы "." и "..", выполняется раскодировка специальных знаков, недопустимых для интернет-адресов, и т.п.).
  • Пример 1: если параметр start имеет значение "..\my%20start", то специальный URL start преобразуется в "C:\Program Files\NDemia\CashMatic\my start.html".
    Пример 2: если параметр start имеет значение "http://example.com\CashMatic\.\.././start", то специальный URL start преобразуется в "http://example.com/start" (обратные слэши преобразованы в прямые, расширение имени файла не добавлено).
    Пример 3: если параметр start имеет значение "example.com/CashMatic/./..\.\start", то специальный URL start преобразуется в "C:\Program Files\NDemia\CashMatic\html\example.com\start.html" (прямые слэши преобразованы в обратные, умолчательное расширение имени файла добавлено).

Совместимость: Предполагаемая по умолчанию ссылка на локальный файл, подстановка переменных окружения, каноникализация URL поддерживаются в NDemia CashMatic, начиная с версии 2.7.0


Таким образом, прикладные скрипты и компоненты расширений могут через ссылки на очень простые по форме специальные URL ссылаться на достаточно сложные конструкции URL-адресов, указывающие как на локальные файлы, так и на интернет-ресурсы.
Приложения могут выполнять вышеописанное преобразование специальных URL через метод GetSpecialURL объекта CashMaticHost.
Используя URL-протокол "CashMatic:", приложения NDemia CashMatic KioskBrowser могут ссылаться непосредственно на специальные URL по имени, вообще не занимаясь их преобразованием.
Прикладному программисту предоставляется механизм гибкой настройки путей и имён файлов на конкретном терминале без изменений ссылок в HTML и javascript-коде.
Использование системного реестра Windows для настройки специальных URL позволяет убрать из открытого кода ссылки на реальные имена и пути размещения файлов. Прикладной программист может добавить в реестр имена собственных специальных URL, которые могут быть использованы прикладными скриптами и компонентами расширения.
Например, можно в реестре создать параметр "myfile", настроить его значение на некоторый файл, и ссылаться из скрипта на этот файл как "CashMatic:myfile". Реальное полное имя файла доступно для скрипта через вызов функции CashMatic.Host.GetSpecialURL("myfile").

Следует обратить внимание, что специальные URL являются в некотором смысле косвенными (ссылаются на настроечные параметры, которые ссылаются на данные), поэтому сами по себе они не являются файловыми путями в общепринятом понимании - они не могут быть относительными, и нельзя задать путь относительно специального URL. Например, адрес "CashMatic:data\file" зависит от значения настроечного параметра "data\file", и не зависит от значений "data" или "file".
тел. +7-(916)-129-26-84 (C)opyright: NDemia Ltd, Москва, 2006..2024 ndemia@ndemia.com