Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.

Форум Общие вопросы Обновление DIAFAN.CMS Новый модуль "Вставки"


Dmitry (weissfl) 14513 августа, вторник

Может кто пояснить что делает новый модуль?

Степан (idxdoc) 22413 августа, вторник

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

Dmitry (weissfl) 14513 августа, вторник

Какой формат указания шаблонного тега, что то не понял?

Контент я так понял только html можно?

Степан (idxdoc) 22414 августа, среда, редакция 14 августа, среда

шаблонные теги, ну да, html

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

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

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



Если перевести, то это значит что нужно писать максимально точный шаблонный тег, ибо если написать просто <insert name="">, это будет означать любой тег)

Степан (idxdoc) 22414 августа, среда

Цитата
Контент я так понял только html можно?


Обнаружил еще в коде, что можно включить php, но сейчас оно выключено, нужно самостоятельно включать вручную в коде.

Степан (idxdoc) 22414 августа, среда, редакция 14 августа, среда

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

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

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

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



Так нет:

Степан (idxdoc) 22414 августа, среда

Еще замечание, удалил вставку, из корзины очистил, а в базе в {inserts_site_rel} запись осталась.

Dmitry (weissfl) 14514 августа, среда

Может туда и не надо писать стандартные шаблонные теги?

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

В шаблоне выводишь <insert name="region_1"> и к нему уже вешаешь вставки, а во вставках уже стандартные шаблонные теги или какой то код.
И по идее тогда из админки можно будет управлять порядком и местом их вывода.

Степан (idxdoc) 22414 августа, среда

Я не из головы взял информацию, а прочитал код))

Андрей (R4W) 8714 августа, среда

Не проще ли дождаться анонса и документации, чем вангованием и реверс инжинирингом страдать? )

Любимов Павел (DIAFAN.CMS) 33714 августа, среда, редакция 14 августа, среда

В этом нет ничего плохого. И потом, наблюдаются некоторые проблемы с написанием документации. Тебе Андрей, сейчас ответят про документацию модуля reviews. Так что вопрос твой двоякий или даже провокационный.

Виталий NVGPRO (DIAFAN.CMS) 33314 августа, среда

Еще замечание, удалил вставку, из корзины очистил, а в базе в {inserts_site_rel} запись осталась.

Исправлено в предстоящем пакете обновления.

Dmitry (weissfl) 14514 августа, среда

Вообще хотелось бы понять на основе каких кейсов это было реализованно? Как это оптимально применять в реальных проектах.

Виталий NVGPRO (DIAFAN.CMS) 33314 августа, среда

есть проблема с тем что запрос из базы тега и текста

Исправлено в предстоящем пакете обновления.

Виталий NVGPRO (DIAFAN.CMS) 33314 августа, среда

Как это оптимально применять в реальных проектах.

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

Виталий NVGPRO (DIAFAN.CMS) 33314 августа, среда

Какой формат указания шаблонного тега, что то не понял?

Любой. Например, нужно в шаблоне страницы изменить шаблонный тег
Код
<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"

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

Виталий (DIAFAN.CMS) 68214 августа, среда

Цитата
Может кто пояснить что делает новый модуль?

Суть и идея модуля. Вот у нас есть сайт, там какой-то шаблон, в нём есть вывод слайдера, простенького, в шаблоне 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, и твоё решение вывелось на любом сайте перед слайдером. И неважно, какая вёрстка

Dmitry (weissfl) 14514 августа, среда

Более менее ясно.
То есть это больше для разработчиков и работает этот модуль в паре с дополнениями. Ну что, полезно.

Виталий (DIAFAN.CMS) 68214 августа, среда, редакция 14 августа, среда

Да. Исходная проблема была как раз в потребностях облачников, они постоянно хотят себе всякие фишки в виде верстки, расширения функциональности шаблонов и пр. И надо в один клик, чтобы ничего не править. И не зависеть от верстки. А как влезть в шаблон сайта, не правя сам шаблон и начать там выводить что нужно, еще и в нужном месте? Правильно, прицепиться к шаблонным тегам, они уже и так есть в шаблоне, в нужных местах. Можно переопределить и show_social и show_counter и что ещё надо, оно же всё в шаблонах есть.

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

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

Наделаем таких фишечек в аддонсы, в дополнения, сделаем их по подписке для облачников и аля-улю, зарабатываем

Андрей (R4W) 8714 августа, среда

Найти концы после рукожопого разработчика станет тем еще развлечением :)

Виталий (DIAFAN.CMS) 68214 августа, среда

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

Любимов Павел (DIAFAN.CMS) 33714 августа, среда

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

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

Виталий (DIAFAN.CMS) 68215 августа, четверг

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

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

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

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


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

Естественно, если слайдера нет, нет тега show_block bannner, то дополнение и вставка просто ничего не выведут. Тогда да, надо обращаться к вебмастеру, тег вставить. Но тут претензий нет, что же ты менять собрался, и где слайдер выводиться должен, если на сайте нет ни самого исходного слайдера ни места для него

Степан (idxdoc) 22415 августа, четверг

Крутой требует js и css, а еще и картинки некоторые, которые необходимо подключить или дополнить текущие, как модуль вставки может это решить, не влезая в сам код, даже мне честно сказать не понятно :)

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

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

P.S.

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

Сергей (Simberto Media) (universe) 8615 августа, четверг

Согласен со Степаном. Проблема стилей встанет остро. Даже в простейшем примере слайдера. Кнопки, цвета, шрифты, единицы измерения.

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

Виталий (DIAFAN.CMS) 68215 августа, четверг

как модуль вставки может это решить

Модуль вставки ничего не решает! "Вставки" только вставляют! Задача вставок только прилепиться в нужное место в разметке сайта. Это просто координаты, куда засунуть то, что нужно. Модуль вставок будет работать в совокупности в обычными модулями, надмодулями, функциями и пр.
Вставки - это просто координационная прокладка между сайтом и нужным модулем. В чистом виде он не нужен.
Короче, несколько фишек сделаем сами, посмотрите, потестите, поймете

Любимов Павел (DIAFAN.CMS) 33715 августа, четверг

Зачем? При чём тут "зайти"? Кто куда будет ходить? Паша, тебе надо на курсы к Витале записаться или ко мне по блату, для ликбеза
В данном случае не нужно. Я написал ровно что и ты, только короче. Когда разработчик знает что менять, он заменит без проблем в своём модуле. И облачник поставит и забудет. Но это только в этом случае.

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

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

Виталий NVGPRO (DIAFAN.CMS) 33315 августа, четверг

Крутой требует 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 всё сделает самостоятельно.