Инструменты, доступные при использовании шаблонизатора

20 окт 2015

  • Описание(top)

    В шаблонизаторе Template Toolkit доступна глобальная переменная $tools, которая хранит в себе набор инструментов доступных в любом шаблоне.

    $tools.error - содержит описание ошибок, которые могут возникнуть во время работы всех инструментов.

    $tools.ua - замена User agent(top)

    Данный инструмент предназначен для подмены User agent в парсерах, которые его используют (например Net::HTTP Net::HTTP).
    • $tools.ua.list - содержит список User agent
    • $tools.ua.random() - метод, выводит случайный User agent из списка
    Cписок всех User agent хранится в файле files/tools/user-agents.txtПри использовании данного инструмента для параметра User agent в парсерах, необходимо указывать его явно: [% tools.ua.random() %]
    [​IMG]

    $tools.query - добавление запросов(top)

    Данный инструмент позволяет добавлять запросы к уже существующим прямо во время работы задания, формируя их на основе уже спаршенных результатов. Может быть использован как аналог функции Parse to level в тех парсерах, где она не реализована.
    • [% tools.query.add(query, maxLevel) %] - добавляет одиночный запрос
    • [% tools.query.addAll(array, item, maxLevel) %] - добавляет массив запросов
    Параметр maxLevel указывает до какого уровня добавлять запросы, и является необязательным: если он опущен, то фактически парсер будет добавлять новые запросы пока они есть. Также рекомендуется включать опцию Уникальные запросы, чтобы избежать зацикливания и излишней работы парсера.
    [​IMG]
    Результат:


    $tools.parseJSON - разбор JSON структур(top)

    Данный инструмент позволяет десериализовать данные в формате JSON в переменные, доступные в шаблонизаторе.
    • [% tools.parseJSON(data) %] - запускает разбор структуры
    После десериализации к ключам из JSON массива можно обращаться как к обычным переменным и массивам.
    [​IMG]

    $tools.js.* - поддержка JS в tools(top)

    Данный инструмент позволяет добавлять свои JS функции и использовать их прямо в шаблонизаторе.[​IMG]
    Функции добавляются в Редакторе JavaScript:
    [​IMG]