Thunder 3 Мануал

Тема в разделе "Thunder 3.X", создана пользователем Firestarter, 31 мар 2016.

Статус темы:
Закрыта.
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  1. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    #1 Firestarter, 31 мар 2016
    Последнее редактирование: 5 апр 2016
    Phenix, Art, user2289 и 5 другим нравится это.
  2. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    #2 Firestarter, 31 мар 2016
    Последнее редактирование: 31 мар 2016
    Системные требования:
    PHP 5.4 минимум, рекомендуемый 5.5 и выше
    mbstring
    curl
    php-xml
    json

    Установка:
    - Скопировать содержимое папки upload на сайт.
    - В congif.php в перемнную keyword вписать ВЧ ключевик по вашей тематике.
    - В браузере ввести адрес сайта с дорвеем.

    Первичная настройка:
    В файле config.php установите в переменную keyword ВЧ ключевик. Если используете стороннюю тему оформления, установите в public_template_default название шаблона.

    Запуска:

    В браузере введите адрес сайта

    Проблемы с установкой:
    Если во время запуска появились какие-то ошибки, белый экран, и еще что-то - проверьте системные требования, далее в файле config.php установите переменную displayErrorDetails в true и покажите ошибку разработчику.
     
  3. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    #3 Firestarter, 31 мар 2016
    Последнее редактирование: 31 мар 2016
    Принцип работы доргена:

    Если набрать в браузере главную страницу, дорген возьмет ключевик из переменной keyword в файле config.php.
    Далее, он грузит шаблон(файл page.html), который указан в переменной public_template_default и передает ключевик в переменную keyword это файла.
    Теперь нашу переменную keyword можно использовать для сбора сниппетов, генерации ссылок на новые страницы.
    Например, чтобы собрать по этому ключевику сниппеты, из ПС, просто добавьте в файл page.html вашего шаблона:

    Код:
    {% set google_snippets = snippets(keyword) %}
    {{snippet[1].title}}
    {{snippet[1].link}}
    {{snippet[1].description}}
    Любые другие страницы генерируються еще проще: Если к вашему сайту дописать "ключевик", например http://site.ru/тут просто какой-то ключ, то в переменную keyword попадет уже "тут просто какой-то ключ" и снипеты будут собраны уже по нему, например.

    90% функционала и будет оборачиваться вокруг переменной keyword
     
  4. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    #4 Firestarter, 31 мар 2016
    Последнее редактирование: 28 май 2016
    Шаблоны:
    Шаблоны лежат в папке /templates/public/.
    Дорген при генерации страницы, использует шаблон, который указан в переменной public_template_default в файле config.php.
    Нзвание шаблона, это название папки в /templates/public/


    Примеры шаблонов:
    С доргеном идет два самых простых шаблона, смотрите в папке /templates/public/
    Еще три шаблона, на кинотематику и игровые, лежат в папку /additional/templates/public/ в архиве с доргеном.
    Шаблон "Фильмотрека"

    Для Thunder 3.1.х
    Отныне, каждый шаблон должен содержать файл routes.php, который описывает структуру сайта, каждый тип контента.

    Параметры:

    route - адрес ссылки страницы в браузере
    file - какой файл из шаблона грузить
    status - с каким статусом отдавать страницу
    headers - какие заголовки отдавать при выводе страницы

    Пример:
    'homepage' => [
    'route' => '/',
    'file' => 'homepage.html',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/html'
    ]
    ],

    'post' => [
    'route' => '/post/{keyword}',
    'file' => 'post.html',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/html'
    ]
    ],

    route может содержать неограниченное количество параметров.
    если route содержит {keyword} - то при включенном ЧПУ, дорген будет искать ключевик в КЕШе закодирован предварительно с помощью pretty_urlencode, иначе просто в ключевик передаст часть ссылки {keyword}

    По примеру выше:
    Имеем 2 типа контента - главная и страница постов.
    Если посетитель зайдет на Главную(урл "/"), то дорген загрузит шаблон homepage.html в папке с темой при этом мы указываем, что шаблон будет text/html - то есть html страницей .

    Теперь, чтобы сформировать страницу с ключем, мы можем брать ключи из файла или подсказок, и формировать на Главной ЧПУ, например так:
    Код:
    {% if settings.pretty_urls == true %}
                            <a href="{{settings.base_url}}post/{{keyword|pretty_urlencode}}">
                        {% else %}
                            <a href="{{settings.base_url}}post/{{keyword|url_encode}}">
                        {% endif %}
    Дорген с помощью функции pretty_urlencode сформирует ссылки для ЧПУ и запишет их в КЕШ, приблизительно так ['mama-myla-ramu'=>'Мама мыла раму'].

    И когда пользователь зайдет уже по ссылке /post/mama-myla-ramu - дорген достанет из КЕШа ключевик и его можно выводить на странице как {keyword}

    Если параметр route Записать как 'route' => '/post/keyword', то на страницу никакого ключевика не передется.

    Так же можно передавать любое количество параметров:

    Пример:
    /{year}/{month}/{day}/{keyword}

    Если пользователь введет в строке, например:
    /2016/07/25/mama-myla-ramu то в файле post.html эти переменные можно получить как:
    {year} выведет 2016
    {month} - 07

    {day} - 25
    {keyword} - мама мыла раму

    Детально про все эти параметры можно почитать тут


     
  5. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    #5 Firestarter, 31 мар 2016
    Последнее редактирование: 31 мар 2016
    Шаблонизатор:
    Используется шаблонизатор Twig.
    Все возможности шаблонизатора можно поделить на "теги", "фильтры" и "функции".

    Фильтры: это такие модификаторы, которые изменяют строки, например:

    {{ keyword|title }} - выведет все слова ключевика с большой буквы как в заголовке.

    {{ keyword|length}} - выведет количество символов в ключевику.


    Функции: это независимые подпрограммы, которые выполняют определенный функционал, например:

    {% set snippets = snippets(keyword) %}

    В данном случае, функция snippets, принимает один параметр, это ключевик текущей страницы keyword и возвращает массив сниппетов из случайной ПС.


    Теги: это служебные части разметки html, которые выполняют определенный функционал, например:

    {% for snippet in snippets %}

    <h2>{{ snippet.title|title }}</h2>
    <p>{{ snippet.description }}</p>

    {% endfor %}

    Тут использован тег for, который перебирает все сниппеты ПС, которые мы получили чуть выше с помощью функции snippets(keyword) . Так же, обратите внимания, я использовал модификатор title для заголовка каждого сниппета.

    Все "теги", "фильтры" и "функции" делятся на две подкатегории: Стандартные(те, которые идут с шаблонизатором) и самого Доргена Thunder 3.
     
  6. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
  7. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
  8. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
  9. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    #10 Firestarter, 31 мар 2016
    Последнее редактирование: 31 мар 2016
    Функции и фильтра Thunder 3:

    В админке вашго дора(лигин : пароль admin:password), в разделе "Плагины" есть список с примерами и описаниями.

    Продолжение следует
     
  10. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    #11 Firestarter, 5 апр 2016
    Последнее редактирование: 28 май 2016
    Глобальные переменные и функции:

    Переменная settings отображает все(любые) настройки сайта.
    Пример использования:
    {{settings.base_url}}

    Переменная cache_id - айди для каждой страницы сайта. Служебная.
    Пример использования:
    {{cache_id}}

    Функция front_page() проверяет, это главная страница или нет. Удалил в 3.1 Смотри Пункт "файл routes.php"
    Пример использования:
    {% if front_page() == true %}
    Контент который бедет показываться только на главной
    {% else %}
    А этот, будет работать на любых других, кроме главной
    {% endif %}


    Функция url_contain('text') проверяет, содержит ли урл данное слово. Удалил в 3.1 Смотри Пункт "файл routes.php"
    Пример использования:
    {% if url_contain('text') == true %}
    Контент, который бедет показываться если условие истенное
    {% else %}
    Контент, который бедет показываться если условие ложное
    {% endif %}


    Функция str_from_url(3) извлекает част адреса страницы. Удалил в 3.1 Смотри Пункт "файл routes.php"
    Пример использования:
    {% set keyword = str_from_url(3) %}
    {{keyword}}


    Для Thunder 3.1.х
    Функция php_* выполняет функцию из PHP, нужно дописывать префикс php_.
    Пример использования:
    {% set string = php_file_get_contents("http://site.ru/text.txt") %}
    {{keyword}}

    Для Thunder 2,5 - 3.1.х
    pretty_urlencode преобразует строку, в Англ ЧПУ, при этом записывает сслыку в КЕШ.
    Пример использования:
    <a href="{{settings.base_url}}post/{{keyword|pretty_urlencode}}">
    только часть keyword будет преобразована.

    Для Thunder 2,5 - 3.1.х
    pretty_urlencode преобразует строку из ЧПУ, при этом обращается в КЕШ.
    Пример использования:

    {{keyword|pretty_decode}}
     
  11. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    #12 Firestarter, 5 апр 2016
    Последнее редактирование: 28 май 2016
    Строки, работа с файлами и.т.д:
    Функция rand_str_from_file('имя файла в директории data', 10) выводит случайные строки из файла.
    Пример использования:
    {% set lines = rand_str_from_file('keywords.txt',10) %}
    {% for line in lines %}
    {{line}}
    {% endfor %}


    Функция rand_text_from_file('имя файла в директории data', 10) выводит случайные Предложения из файла.
    Пример использования:
    {{ rand_text_from_file('keywords.txt',10) }}


    Функция rand_keywords_from_cache(10) выводит случайные ключи из кеша. Удалил в 3.1
    Пример использования:
    {{ rand_keywords_from_cache(10) }}


    Функция file_get_contents('путь к файлу') выводит содержимое файла. Удалил в 3.1
    Пример использования:
    {{ file_get_contents('http://api.webmaster.installous.ru/domain/get') }}

    Альтернативный вариант : Для Thunder 3.1.x
    {{ php_file_get_contents('http://api.webmaster.installous.ru/domain/get') }}



    Функция string_in_file('Строка', 'white_list.txt') Проверяет, существует ли строка в массиве строк из файла в папке data.
    Пример использования:
    {% if string_in_file('мама','white_list.txt') %}
    ДА
    {% else %}
    НЕТ
    {% endif %}
     
  12. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    #13 Firestarter, 5 апр 2016
    Последнее редактирование: 5 апр 2016
    Парсеры сниппетов из ПС:

    Функция snippets(keyword) сниппеты из случайной ПС.
    Пример использования:
    {% set snippets= snippets(keyword) %}
    {% for snippet in snippets %}
    {{snippet.title}}
    {{snippet.link}}
    {{snippet.description}}
    {% endfor %}

    Функция google_snippets(keyword, 10, 'ru') сниппеты из ПС Google.ru .
    Пример использования:
    {% set google_snippets = google_snippets(keyword,10) %}
    {% for snippet in google_snippets %}
    {{snippet.title}}
    {{snippet.link}}
    {{snippet.description}}
    {% endfor %}


    Функция bing_snippets(keyword) сниппеты из ПС Bing.com .
    Пример использования:
    {% set bing_snippets = bing_snippets(keyword,10) %}
    {% for snippet in bing_snippets %}
    {{snippet.title}}
    {{snippet.link}}
    {{snippet.description}}
    {% endfor %}


    Функция yahoo_snippets(keyword, 'ru') сниппеты из ПС Bing.com .
    Пример использования:
    {% set yahoo_snippets = yahoo_snippets(keyword,10) %}
    {% for snippet in yahoo_snippets %}
    {{snippet.title}}
    {{snippet.link}}
    {{snippet.description}}
    {% endfor %}

    Функция vk_snippets('ключевое слово') текстовые сниппеты из ВК.com .
    Пример использования:
    {% set vk_snippets = vk_snippets(keyword) %}
    {% for snippet in vk_snippets %}
    {{snippet}}
    {% endfor %}


    Функция sputnik_snippets('ключевое слово') сниппеты из ПС sputnik.ru.
    Пример использования:
    {% set sputnik_snippets = sputnik_snippets(keyword) %}
    {% for snippet in sputnik_snippets %}
    {{snippet.title}}
    {{snippet.link}}
    {{snippet.description}}
    {% endfor %}
     
  13. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    #14 Firestarter, 5 апр 2016
    Последнее редактирование: 28 май 2016
    Парсеры контента и статей:

    Функция get_article('http://site.com/article.html') возвращает полную статью из страницы, указаной в ссылке.
    Пример использования:
    {% set article = get_article('http://site.com/article.html') %}
    {{article.title}}
    {{article.content}}


    Функция get_article_v2('http://site.com/article.html') возвращает полную статью из страницы, указаной в ссылке.(! +1 http запрос)
    Пример использования:
    {% set article = get_article_v2('http://site.com/article.html') %}
    {{article}}

    Функция get_article_v3('http://site.com/article.html') возвращает полную статью из страницы. Для Thunder 3.1.х Отлично работает
    Пример использования:
    {% set article = get_article_v2('http://site.com/article.html') %}
    {{article}}



    Функция get_rss_articles('http://site.com/rss.xml') возвращает Статьи из RSS ленты(! +1 http запрос)
    Пример использования:
    {% set rss = get_rss_articles('http://site.com/rss.xml') %}
    {{rss[0].title}}
    {{rss[0].link}}
    {{rss[0].description}}


    Фильтр {{ '{Строка | текст} Который нужно размножить'|multiply }} для размножения строки вида {В настоящее время|Сегодня|Сейчас} с {очень|весьма|крайне} {cкорым|быстрым|борзым|живым}
    Пример использования:
    {{ '{В настоящее время|Сегодня|Сейчас} с {очень|весьма|крайне} {cкорым|быстрым|борзым|живым}'|multiply }}


    Фильтр {{ 'Мама мыла раму'|markov(3, 100) }} для генерации контента на Цепях Маркова, где 3 - уровень цепи, 100 - количество предложений.
    Пример использования:
    {{ 'Мама мыла раму'|markov(3, 100) }}


    Фильтр {{ 'Мама мыла раму'|links(3) }} для подмешивания в текст сслок на страницы дора, где 3 - количество ссылок.
    Пример использования:
    {{ 'Мама мыла раму'|links(3) }}


    Фильтр {{ 'Мама мыла раму!,)(_+'|clean }} для очистки строки от спецсиволов.
    Пример использования:
    {{ 'Мама мыла раму!,)(_+'|clean }}
     
  14. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    Парсеры изображений:

    Функция google_images('слово') изображдения из ПС Google.
    Пример использования:
    {% set google_images = google_images(keyword) %}
    {% for image in google_images %}
    {{image}}
    {% endfor %}


    Функция bing_images('слово') изображдения из ПС Bing.
    Пример использования:
    {% set bing_images = bing_images(keyword) %}
    {% for image in bing_images %}
    {{image}}
    {% endfor %}


    Функция vk_images('слово') изображения из VK.com.
    Пример использования:
    {% set vk_images = vk_images(keyword) %}
    {% for image in vk_images %}
    {{image}}
    {% endfor %}
     
  15. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    #16 Firestarter, 5 апр 2016
    Последнее редактирование: 28 май 2016
    Парсеры видео:

    Функция youtube_videos('ключевое слово') ссылки на видео из youtube .
    Пример использования:
    {% set youtube_videos = youtube_videos(keyword,10) %}
    {% for video in youtube_videos %}
    {{video}}
    {% endfor %}


    Функция vimeo_videos('ключевое слово') ссылки на видео из vimeo .
    Пример использования:
    {% set vimeo_videos = vimeo_videos(keyword,10) %}
    {% for video in vimeo_videos %}
    {{video}}
    {% endfor %}


    Функция mail_ru_films('ключевое слово') плеер видое на films.mail.ru. Удалил в 3.1, маил.ру отключил возможность.
    Пример использования:
    {% set mail_ru_films = mail_ru_films(keyword) %}
    {{ mail_ru_films[1]|raw }}


    Функция video_player('на видео') Преобразует ссылку на видео HTML код.
    Пример использования:
    {% set youtube_videos = vimeo_videos(keyword,3) %}
    {{video_player(youtube_videos[1])|raw}}
     
  16. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    Парсеры Вопросов - Ответов:

    Функция mail_ru_quetions('слово', 10) парсер вопросов-ответов из Маил Ру.
    Пример использования:
    {% set quetions = mail_ru_quetions(keyword,100) %}
    {% for quetion in quetions %}
    {{quetion.question}}
    {% if quetion.banswer is not empty %}
    {{quetion.banswer|striptags}}
    {% else %}
    {{quetion.answer|striptags}}
    {% endif %}
    {% endfor %}


    Функция yahoo_questions('слово', 'new') парсер вопросов-ответов из answers.yahoo.com.
    Пример использования:
    {% set yahoo_questions = yahoo_questions(keyword,100) %}
    {% for quetion in yahoo_questions %}
    {{quetion.title}}
    {{quetion.description}}
    {% endfor %}
     
  17. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    Парсеры Поисковых подсказок:

    Функция google_suggests('ключевое слово') поисковые подсказки из ПС Google.ru .
    Пример использования:
    {% set google_suggests = google_suggests(keyword,10) %}
    {% for suggest in google_suggests %}
    {{suggest}}
    {% endfor %}


    Функция yandex_suggests('ключевое слово') поисковые подсказки из ПС Yandex.ru .
    Пример использования:
    {% set yandex_suggests = yandex_suggests(keyword,10) %}
    {% for suggest in yandex_suggests %}
    {{suggest}}
    {% endfor %}


    Функция nigma_suggests('ключевое слово') поисковые подсказки из ПС Nigma.ru .
    Пример использования:
    {% set nigma_suggests = nigma_suggests(keyword,10) %}
    {% for suggest in nigma_suggests %}
    {{suggest}}
    {% endfor %}


    Функция yahoo_suggests('ключевое слово') поисковые подсказки из ПС Yahoo.ru .
    Пример использования:
    {% set yahoo_suggests = yahoo_suggests(keyword,10) %}
    {% for suggest in yahoo_suggests %}
    {{suggest}}
    {% endfor %}


    Функция ask_suggests('ключевое слово') поисковые подсказки из ПС Ask.com .
    Пример использования:
    {% set ask_suggests = ask_suggests(keyword,10) %}
    {% for suggest in ask_suggests %}
    {{suggest}}
    {% endfor %}


    Функция yandex_last(['скачать', 'android', 'торрент', 'torrent', 'фильм']) последние запросы к ПС Яндек с возможностью фильтрации по слову или массиву слов.
    Пример использования:
    {% set search = ['скачать', 'android', 'торрент', 'torrent', 'фильм'] %}
    {% for k in yandex_last(search) %}
    {{ k }}
    {% endfor %}
     
    runmoscow нравится это.
  18. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    #19 Firestarter, 5 апр 2016
    Последнее редактирование: 5 апр 2016
    ТДС :

    Функция getGeo() . Проверка Geo локации польователя, который зашел на страницу. Может использоваться для распределения трафика из сайта оп ГЕО или вывода контента.
    Пример испозьзования:
    {% set geo = getGeo() %}
    {{geo.city.name_ru}}
    {{geo.city.name_en}}
    {{geo.region.name_ru}}
    {{geo.region.name_en}}
    {{geo.region.iso}}
    {{geo.country.name_en}}
    {{geo.country.name_en}}
    {{geo.country.iso}}

    Пример слива:
    {% set geo = getGeo() %}
    {%if geo.city.name_ru=='Москва' %}
    тут html код для москвичей.
    {% esleif geo.city.name_ru=='Киев' %}
    тут html код для киевлян.
    {% else %}
    тут html код для всех остальных.
    {% endif %}

    Клоака:

    Функция isBot() . Проверка, На страницу зашел Поисковый Робот?
    Пример испозьзования:
    {% if isBot() == true %}
    ДА
    {% else %}
    НЕТ
    {% endif %}


    Функция isBotUserAgent() . Проверка, USER AGENT посетителя это USER AGENT Поискового Робота?
    Пример испозьзования:
    {% if isBotUserAgent() == true %}
    ДА
    {% else %}
    НЕТ
    {% endif %}


    Функция isBotIp() . Проверка, IP посетителя это IP Поискового Робота?
    Пример испозьзования:
    {% if isBotIp() == true %}
    ДА
    {% else %}
    НЕТ
    {% endif %}


    Функция isAlexaIp() . Проверка, IP посетителя это IP ПС Alexa?
    Пример испозьзования:
    {% if isAlexaIp() == true %}
    ДА
    {% else %}
    НЕТ
    {% endif %}


    Функция isBaiduIp() . Проверка, IP посетителя это IP ПС Baidu?
    Пример испозьзования:
    {% if isBaiduIp() == true %}
    ДА
    {% else %}
    НЕТ
    {% endif %}


    Функция isBingIp() . Проверка, IP посетителя это IP ПС Bing?
    Пример испозьзования:
    {% if isBingIp() == true %}
    ДА
    {% else %}
    НЕТ
    {% endif %}


    Функция isDuckduckIp() . Проверка, IP посетителя это IP ПС Duckduck?
    Пример испозьзования:
    {% if isDuckduckIp() == true %}
    ДА
    {% else %}
    НЕТ
    {% endif %}


    Функция isFacebookIp() . Проверка, IP посетителя это IP ПС Facebook?
    Пример испозьзования:
    {% if isFacebookIp() == true %}
    ДА
    {% else %}
    НЕТ
    {% endif %}


    Функция isGoogleIp() . Проверка, IP посетителя это IP ПС Google?
    Пример испозьзования:
    {% if isGoogleIp() == true %}
    ДА
    {% else %}
    НЕТ
    {% endif %}


    Функция isYahooIp() . Проверка, IP посетителя это IP ПС Yahoo?
    Пример испозьзования:
    {% if isYahooIp() == true %}
    ДА
    {% else %}
    НЕТ
    {% endif %}


    Функция isYandexIp() . Проверка, IP посетителя это IP ПС Yandex?
    Пример испозьзования:
    {% if isYandexIp() == true %}
    ДА
    {% else %}
    НЕТ
    {% endif %}


    Функция isMobile() . Проверка, посетитель зашел на страницу с мобильно устройства Mobile ?
    Пример использования:
    {% if isMobile() == true %}
    ДА
    {% else %}
    НЕТ
    {% endif %}


    Функция isTablet() . Проверка, посетитель зашел на страницу с мобильно устройства Tablet ?
    Пример использования:
    {% if isTablet() == true %}
    ДА
    {% else %}
    НЕТ
    {% endif %}
     
  19. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.183
    537
    Счетчики и системы статистики:

    Переменная liveinternet отображает счетчик LIveinternet если сайт зарегистрирован в рейтинге.
    Пример использования:
    {{liveinternet|raw}}



    Переменная piwik отображает ваш счетчик piwik. Для автоматического добавления сайта(домена/поддомена) в вашу piwik панель , настройте параметры "piwik->url" и "piwik->token_auth" в config.php
    Пример использования:
    {{piwik|raw}}


    ВНИМАНИЕ!!! После физического удаления Кеша, скрипт снова добавит домены в панель piwik.