Подключение к Статье стороннего шаблона (текста - html)

Тема в разделе "Инструкции и FAQ", создана пользователем Ravilr, 22 ноя 2019.

  1. Ravilr

    Ravilr Специалист

    Сообщения:
    3.884
    Симпатии:
    1.065
    Иногда бывает так, что необходимо написать статью со сложной html структурой. Можно конечно все написать в редакторе в режиме Исходник (ох и неудобно это), можно подключить отдельный шаблон, можно купить модуль какой нибудь, но мы пойдем другим путем.

    1. Определимся с методом подключения. Так как я не любитель сложностей, я не стал выделять под это дело отдельное поле, но можно было конечно сделать :) Мой вариант таков, просто в тексте статьи пишем адрес к нашему файл-шаблону. Формат выбрать можно любой, я выбрал такой.
    Код:
    [[template==pages/dostavka.tpl==
    В итоге, если посмотреть в исходник текста, то увидим такое.
    Код:
    <p>[[template==pages/dostavka.tpl==<br></p>
    ничего страшного, просто для полноты информации.

    2. Идем в контроллер. catalog/controller/information/information.php

    и после
    PHP:
    $data['description'] = html_entity_decode($information_info['description'], ENT_QUOTES'UTF-8');
    вставим код
    PHP:
               $find_pages strpos($information_info['description'], '[[template==');
      
                if (
    $find_pages !== false) {
                    
    $templ explode('=='$data['description']);
                    
    $tpath ='catalog/view/theme/default/template/information/';
                    
    $data['description'] = file_get_contents($tpath .$templ[1]);
                }
    Если посмотреть на код, то видим, что сначала мы ищем в тексте статьи часть тега, а именно <p>[[template== и если мы его нашли, то выполняем условия замены описания на наше. Само описание мы берем из файла который расположили по пути который указан в $tpath , ну и конечно то что мы указали в самой статье после == , а именно pages/dostavka.tpl

    Собственно, вот и все. Можно конечно заморочиться и сделать как нибудь по другому, ведь вариантов масса, но данный способ на данный момент для меня самый быстрый.

    Преимущество данного способа.
    1. Я спокойно работаю с html кодом в удобном мне редакторе.
    2. Стандартный функционал статей работает как и раньше.
    3. В случаи редактирования из админики клиентом, во первых ничего не сломается в верстке, а второе, клиент видит что в статье нет нужного текста, а там какой то код и не тронет (вспомнит что трогать в файле).
    4. Все работает стандартно, можно размещать на макете модули, можно задавать чпу, метатеги итд. т.е меняется только текст статьи с "внутреннего", на "внешний".
     
    Последнее редактирование: 8 окт 2020
    SiteMix, Romans, my2you и 2 другим нравится это.