Вход • Регистрация

Новый модуль "Вставки"

  • 13 августа 2019 г. , редакция: 21 августа 2019 г.
  • Может кто пояснить что делает новый модуль?

    UPD https://user.diafan.ru/blogs/vstavki-chto-za-zver/
    • 13 августа 2019 г.
    • вставляет контент до, взамен или после шаблонного тега, который ты укажешь
      • 13 августа 2019 г.
      • Какой формат указания шаблонного тега, что то не понял?

        Контент я так понял только html можно?
        • 14 августа 2019 г. , редакция: 14 августа 2019 г.
        • шаблонные теги, ну да, html

          Цитата
          Какой формат указания шаблонного тега

          Пока что сам не знаю)

          Покопался в модуле, нашел :)



          Если перевести, то это значит что нужно писать максимально точный шаблонный тег, ибо если написать просто <insert name="">, это будет означать любой тег)
        • 14 августа 2019 г.
        • Цитата
          Контент я так понял только html можно?


          Обнаружил еще в коде, что можно включить php, но сейчас оно выключено, нужно самостоятельно включать вручную в коде.
  • 14 августа 2019 г. , редакция: 14 августа 2019 г.
  • Подводим итоги, конкретно у меня есть проблема с тем что запрос из базы тега и текста, на который заменяем не возвращается в ответ в rows, что значит что ничего не работает.

    Если писать в тег не полный шаблонный тег, а часть без начала (<insert) и без конца (>), то, если в замену написать просто html, не шаблонный тег, все ок, иначе, если мы пишем шаблонный тег, снова ничего не работает, а тут если писать без инсерта и конца, серавно не работает, точнее работает, но шаблонный тег не формируется, а выводится тупо его текст :)

    Кому что не ясно, готов заспамить картинками

    __
    Короче говоря так работает:



    Так нет:

  • 14 августа 2019 г.
  • Еще замечание, удалил вставку, из корзины очистил, а в базе в {inserts_site_rel} запись осталась.
  • 14 августа 2019 г.
  • Может туда и не надо писать стандартные шаблонные теги?

    А просто name="region_1"

    В шаблоне выводишь <insert name="region_1"> и к нему уже вешаешь вставки, а во вставках уже стандартные шаблонные теги или какой то код.
    И по идее тогда из админки можно будет управлять порядком и местом их вывода.
    • 14 августа 2019 г.
    • Я не из головы взял информацию, а прочитал код))
  • 14 августа 2019 г.
  • Не проще ли дождаться анонса и документации, чем вангованием и реверс инжинирингом страдать? )
    • 14 августа 2019 г. , редакция: 14 августа 2019 г.
    • В этом нет ничего плохого. И потом, наблюдаются некоторые проблемы с написанием документации. Тебе Андрей, сейчас ответят про документацию модуля reviews. Так что вопрос твой двоякий или даже провокационный.
  • 14 августа 2019 г.
  • Цитата
    Еще замечание, удалил вставку, из корзины очистил, а в базе в {inserts_site_rel} запись осталась.

    Исправлено в предстоящем пакете обновления.
  • 14 августа 2019 г.
  • Вообще хотелось бы понять на основе каких кейсов это было реализованно? Как это оптимально применять в реальных проектах.
  • 14 августа 2019 г.
  • Цитата
    есть проблема с тем что запрос из базы тега и текста

    Исправлено в предстоящем пакете обновления.
  • 14 августа 2019 г.
  • Цитата
    Как это оптимально применять в реальных проектах.

    В документации всё будет разъяснено. Наберитесь терпения. Суть данного модуля в том, чтобы изменять любой тег не меняя сам файл шаблона.
  • 14 августа 2019 г.
  • Цитата
    Какой формат указания шаблонного тега, что то не понял?

    Любой. Например, нужно в шаблоне страницы изменить шаблонный тег
    Код
    <insert name="show_block" module="comments" defer="emergence" defer_title="Последние комментарии">
    В модуле Вставка (в поле Шаблонный тег-метка) можно указать, например, так
    Цитата
    <insert name="show_block" module="comments" defer="emergence" defer_title="Последние комментарии">

    или так
    Код
    name="show_block" module="comments" defer="emergence" defer_title="Последние комментарии"

    или так
    Код
    name module="comments" defer defer_title

    или так
    Код
    name="show_block" <insert defer="emergence" defer_title="Последние комментарии"> module="comments"

    Принцип определения нужного тега, подлежащего замене, схож с принципом фильтрации. Чем больше атрибутов тега укажем, тем точнее определим список изменяемых тегов. Сами атрибуты тега можно указывать, как без значений, так и со значениями. Если указано значение атрибута, то сравнение идет и по нему.
  • 14 августа 2019 г.
  • Цитата
    Может кто пояснить что делает новый модуль?

    Суть и идея модуля. Вот у нас есть сайт, там какой-то шаблон, в нём есть вывод слайдера, простенького, в шаблоне site_start.php он выводится в нужном месте верстки как insert name=show_block module=banner.
    Допустим, облачник хочет заменить этот слайдер, и поставить там новый крутой слайдер с обратным счётчиком, ссылкой на товар и перелистыванием с растворением. Как сейчас облачник может это сделать? Надо залить новый шаблон слайдера, картинки, css, js, затем заменить тег в шаблоне. Короче, полноценная работа вебмастера по ftp, с залезанием в код.
    А можно как. Какой-то разработчик делает крутой слайдер, оформляет его в дополнение, выкладывает в аддонсы. Облачник качает, ставит, ок, слайдер падает в кастом, заменяет шаблон стандартного баннера. Но! Во-первых, надо попасть в имя шаблона слайдера, может он как-то там нестандартно называется и во-вторых, придется править тег в основном шаблоне site_start.php, если наш как-то называется. То есть, без вебмастера не обойтись.

    Вот для этого и есть модуль вставки. Разработчик делает шаблон модуля баннеры с крутым слайдером, называет его как его угодно. Новый слайдер падает в кастом в какую-то тему. Затем разработчик указывает, что эта тема должна перекрыть такой-то тег в основном шаблоне. Вуаля. Простой установки дополнения достаточно, чтобы без правки кода по ftp гарантированно начать выводить своё решение в нужном месте любого сайта. То есть, "Вставки" - это возможность переопределить любой шаблонный тег на сайте под свои нужды.

    Чаще всего это будет нужно для облачников для каких-то фишек, установка в один клик. Вот слайдер заменить обычный на любой другой. Поставил крутой, он встал вместо исходного. Отключил - вернулся прежний. Или для фильтра по товарам, создал тему нового фильтра, она в кастом легла и ты делаешь вставку этой темы вместо стандартного show_search и он там выйдет заместо обычного. Или show_registration заменить. И по. Суть в том, что разработчик не парится по поводу того, где в шаблоне пользователя нужно вывести нужный участок, вставка идёт туда, где уже стоит тег. Он его заменяет. Или дополняет, до или после. Replace, before или after. Сделал before show_block banner, и твоё решение вывелось на любом сайте перед слайдером. И неважно, какая вёрстка
    • 14 августа 2019 г.
    • Более менее ясно.
      То есть это больше для разработчиков и работает этот модуль в паре с дополнениями. Ну что, полезно.
      • 14 августа 2019 г. , редакция: 14 августа 2019 г.
      • Да. Исходная проблема была как раз в потребностях облачников, они постоянно хотят себе всякие фишки в виде верстки, расширения функциональности шаблонов и пр. И надо в один клик, чтобы ничего не править. И не зависеть от верстки. А как влезть в шаблон сайта, не правя сам шаблон и начать там выводить что нужно, еще и в нужном месте? Правильно, прицепиться к шаблонным тегам, они уже и так есть в шаблоне, в нужных местах. Можно переопределить и show_social и show_counter и что ещё надо, оно же всё в шаблонах есть.

        Например, какой-то сервис имеет какой-то виджет. Делает дополнение, там его скрипты. Пользователь качает, ставит. Что сейчас нужно сделать по минимуму? Да: нужно залезть по ftp и вставить в шаблон тег, который это дополнение выведет на сайте.

        А будет можно не делать тег, а прицепиться к show_js например, забацав after. Ведь show_js в каждом шаблоне есть. Он и останется, зато после него выйдет подключение виджета. И всё, один клик - виджет на сайте. Удобно.

        Наделаем таких фишечек в аддонсы, в дополнения, сделаем их по подписке для облачников и аля-улю, зарабатываем
        • 14 августа 2019 г.
        • Найти концы после рукожопого разработчика станет тем еще развлечением :)
          • 14 августа 2019 г.
          • Да не, как обычно. Зашел в модуль дополнения, глянул что там. Затем прямоходом в "темы и дизайн", смотрим что там активно, где лежит, что именно. Для верности можно собрать ещё что-то, что может лежать раскиданное по файлам, в активную тему. А если какая-то ошибка или что-то надо найти, то просто переименовываем кастомные папки и смотрим, как что работает без них. Затем по одной (переименовываем)подключаем обратно и смотрим, что из какой темы появляется на сайте. Нашли тему, нашли папку, нашли дополнение. Всё, там файлов 3-5 останется. Их глянули - вот, всё понятно
            • 14 августа 2019 г.
            • Думаю., что сработает только как инструмент для облачников на облачных же шаблонах, когда точно известно какие шаблонные теги имеются. Если будут готовые записи для их переопределения.

              А так надо же зайти в файл, глянуть какой шаблонный тег что выводит и потом написать ему переопределение. Вот тебе и работа веб-мастера. Облачник нифига не сможет. Есть, в общем, нюансы.
              • 15 августа 2019 г.
              • Цитата
                А так надо же зайти в файл, глянуть какой шаблонный тег что выводит и потом написать ему переопределение. Вот тебе и работа веб-мастера. Облачник нифига не сможет. Есть, в общем, нюансы.

                Зачем? При чём тут "зайти"? Кто куда будет ходить? Паша, тебе надо на курсы к Витале записаться или ко мне по блату, для ликбеза

                Ещё раз: это переопределение тегов для дополнений! В аддонсы! И затем в админки сайтов. Разработчик заранее предусматривает, какой тег он заменяет и описывает это в дополнении и больше никуда не лезет и ни с кем не работает. И пользователи, кто ставит дополнение, тоже ничего не делают, кроме клика "установить"! Никакой вебмастер никуда ходить не будет и нигде никакое переопределение писать не будет! Оно уже будет прописано в update.php дополнения! Дополнение установил, оно само себя во вставки прописало, если надо. Удалил - из вставок оно удалилось тоже с помощью downgrade.php.

                Перечитай ещё раз
                Цитата
                Вот слайдер заменить обычный на любой другой. Поставил крутой, он встал вместо исходного. Отключил - вернулся прежний. Суть в том, что разработчик не парится по поводу того, где в шаблоне пользователя нужно вывести нужный участок, вставка идёт туда, где уже стоит тег. Он его заменяет. Или дополняет, до или после. Replace, before или after. Сделал before show_block banner, и твоё решение вывелось на любом сайте перед слайдером. И неважно, какая вёрстка


                В каждом шаблоне магазина есть слайдер, там есть show_block banner. Пользователь новый слайдер установил, он заменит текущий. Автоматом. Сам пропишется во вставки.

                Естественно, если слайдера нет, нет тега show_block bannner, то дополнение и вставка просто ничего не выведут. Тогда да, надо обращаться к вебмастеру, тег вставить. Но тут претензий нет, что же ты менять собрался, и где слайдер выводиться должен, если на сайте нет ни самого исходного слайдера ни места для него
              • 15 августа 2019 г.
              • Крутой требует js и css, а еще и картинки некоторые, которые необходимо подключить или дополнить текущие, как модуль вставки может это решить, не влезая в сам код, даже мне честно сказать не понятно :)

                А если этот баннер правился в том шаблоне, и имеет специфичные стили, которые уменьшили его скажем, и теперь он не на весь экран, а справа, а в новом "крутом" это не предусмотрено, и соответственно все будет не так как ожидал клиент.

                Короче тут я точно поддержу Пашу, тут реально много нюансов.

                P.S.

                Хотя с подключением js и css есть варик, написать полноценный модуль, не тупо отдельный баннер, а прям модуль, как мистик у Марины) и в нем создать файлы для баннера, они тогда автоматом подключатся, ок. Но серавно будут проблемы со стилями, все идеально не будет вставать, однозначно будет много нюансов. Мне кажется так больше проблем, чем решений. Хотя если нужно увеличить поток заявок в проекты, это правильное решение))
              • 15 августа 2019 г.
              • Согласен со Степаном. Проблема стилей встанет остро. Даже в простейшем примере слайдера. Кнопки, цвета, шрифты, единицы измерения.

                Если бы в шаблонах были подобия переменных к которым в модуле можно было цепляться - было бы более гибко. А так облачник понаставит такого рода модулей и сайт получится Франкенштейн.
              • 15 августа 2019 г.
              • Цитата
                как модуль вставки может это решить

                Модуль вставки ничего не решает! "Вставки" только вставляют! Задача вставок только прилепиться в нужное место в разметке сайта. Это просто координаты, куда засунуть то, что нужно. Модуль вставок будет работать в совокупности в обычными модулями, надмодулями, функциями и пр.
                Вставки - это просто координационная прокладка между сайтом и нужным модулем. В чистом виде он не нужен.
                Короче, несколько фишек сделаем сами, посмотрите, потестите, поймете
              • 15 августа 2019 г.
              • Цитата
                Зачем? При чём тут "зайти"? Кто куда будет ходить? Паша, тебе надо на курсы к Витале записаться или ко мне по блату, для ликбеза
                В данном случае не нужно. Я написал ровно что и ты, только короче. Когда разработчик знает что менять, он заменит без проблем в своём модуле. И облачник поставит и забудет. Но это только в этом случае.

                По поводу опасений из-за стилей и прочего. Если будет вставка в стандартный шаблон с ожидаемой разметкой, то можно будет в дополнение впихнуть свои CSS и JS и свой шаблон, который переназначить вставкой. Думаю, это перекроет все вопросы.

                Так что для типовых решений, которыми являются как раз шаблоны облаков, вполне хороший инструмент. Ну и эта тема имеет потенциал расширения в плане использования самими облачниками. Для этого им нужно дать возможность определять где какой шаблонный тег стоит на фронт-энде.
  • 15 августа 2019 г.
  • Цитата
    Крутой требует js и css, а еще и картинки некоторые, которые необходимо подключить или дополнить текущие, как модуль вставки может это решить, не влезая в сам код, даже мне честно сказать не понятно :)

    В модуле "Вставка" помимо поля "Шаблонный тег - метка" есть поле "Содержание вставки". В данное поле можно занести html-код, шаблонные теги. Можно и php-код разместить. Но он не будет исполнен, так как стоит принудительный запрет. Если необходимо, запрет можно снять одним движением. Строчку 116 файла includes/parser_theme.php
    Код
    $execute_php = false; // $execute_php = $php;
    меняем на следующую
    Код
    $execute_php = $php;
    В итоге получаем, что css, js можно подключить, разместив соответствующие html-теги в поле "Содержание вставки". Либо действуя через шаблонный тег, разместив его в указанном поле. То есть подключение js, css, а также исполнение любого php-кода можно инициировать, описав это уже в нужном шаблонном теге.

    На выходе получаем то, что шаблон страницы можно менять не правя сам файл шаблона. В актуальной версии в модуле "Вставка" можно задать и период показа. То есть временной интервал, когда необходимо использовать замену контента. Например, можно сделать новогоднее поздравление на сайте, описав соответствующие действия в обозначенном модуле. Остается определить время и забыть про это. Cms всё сделает самостоятельно.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум