Вход для клиентов и партнеров
в начало сайта
Партнерская программаОнлайн демоСкачатьКарта сайта
 

Регламент
Документация
Часто задаваемые вопросы (FAQ)
Решения типовых вопросов
Форум поддержки
Библиотека разработчика

Посмотрите демо-ролики и убедитесь в том, что "Twilight CMS" очень удобна в управлении, понятна и проста.

Бесплатно скачайте "Twilight.Basic", установите на своем компьютере и изучите систему более детально.

Если вам нужно установить "Twilight CMS" на существующий сайт или разработать новый - обращайтесь в отдел интеграции.

 

Ваше имя
Ваш Email
Вопрос
Twilight.basic
  • Узнайте больше
  • Сравните версии
  • Twilight.selection
  • Узнайте больше
  • Сравните версии
  • Twilight.evolution
  • Узнайте больше
  • Сравните версии
  •  
    Главная // Библиотека разработчика // Справочники // Книга рецептов (Cookbook) // Нестандартные решения разных задач //

    Разработка собственных макросов и подключение их к сайту


    Система позволяет опытному разработчику создавать собственные сервисы, которые реализуют новые макроподстановки. Разработка сервисов проводится на языке Perl. До версии 4.36 включительно все сервисы должны были находиться в папке /cgi-bin/Macro. Начиная с 4.37 в папке сайта может быть создана папка Macro, куда рекомендуется размещать "самодельные" специализированные сервисы, чтобы при обновлении системы они никак не затрагивались.

    Сервис представляет собой include файл, написанный на языке Perl, который подключается при необходимости в тот момент, когда интерпретатор находит в тексте комбинацию вида $Macros[]$. В квадратных скобках допускаются пары "ключ: значение" разделяемые точкой с запятой. Но в общем случае скобки могут быть пустыми, тогда макрос при отработке не получает никаких параметров.

    Сервис должен иметь имя файла, которое совпадает с именем обрабатываемого макроса, все символы должны быть в нижнем регистре. То есть, для отработки макроса $Macro[]$ необходимо создать файл macro.pl и поместить его в папку /cgi-bin/Macro или /Sites/имясайта/Macro. Никаких прав "на выполнение" сервису проставлять не нужно.

    Внутри файла обязательно должна быть процедура с именем имямакроса_draw (все в нижнем регистре). В процедуру системой передается строка, которая находится в квадратных скобках. Вернуть процедура должна строку, которая будет выведена вместо макроса на странице. Сама логика работы сервиса и его действия по большей части произвольны и зависят от решаемой задачи. Разработчик вправе применять любые средства для решения своей задачи, в том числе он может использовать доступные на хостинге модули.

    Естественно, разработчик может пользоваться всеми доступными в системе переменными для своей работы. Для того, чтобы понять какие возможности у него есть проще всего пройтись по уже существующим сервисам и "подглядеть" используемые приемы. В большинстве случаев сервисы хорошо документированы, коротки и прозрачны.

    Пример простого сервиса, который вызывается строкой $Add[left: 5; right 10]$, который складывает числа, переданные в ключах left и right и выводит результат на страницу вместо макроса. Проверок на валидность передаваемых параметров для простоты мы не приводим, но, естественно, они подразумеваются. Комментарии по ходу текста.

    add.pl

    sub add_draw{
            my %param=ParamsParse(shift());    # используется системная процедура, позволяющая получить из передаваемой строки параметров хэш

            return $param{left} + $param{right};    # возвращаем арифметическую сумму значений параметров left и right
    }

    1;        # конец модуля
    « к списку

    версия для печати

     
    © 2003-19 Страта Технологии (создание сайтов, разработка cms), Twilight CMS in english.
    Наш адрес: Москва, пр. Маршала Жукова д.51
    Тел.: (495) 222-6436, E-mail: , карта сайта, условия использования информации о CMS
    Звоните через Skype:  

    Реклама: