Я думаю, многие пользуются выводом переменных и массивов через функции
print_r() и
var_dump() для просмотра их содержимого при разработке. Новичкам смотреть (знать/помнить/понимать) содержимое того же
$result будет очень полезно хотя бы для понимания организации данных внутри модулей.
ВАЖНОЕ УТОЧНЕНИЕ
Смотреть и изучать можно много чего, например, вместо
$result указать в параметрах
$this->diafan и множество других переменных,
упоминаемых в документации. Иногда очень выручает.
Существенный минус - переменная может быть внутри
цикла foreach и доступна для вывода только внутри него. А вывод может производиться в произвольном месте вёрстки, например, внутри карточки товара. Смотреть его там не шибко удобно.
Поэтому я написал небольшую функцию, призванную облегчить этот процесс.
Функция будет полезна при разработке сайта и при изучении CMS. По окончании разработки (перед сдачей проекта) функцию и её вызовы
рекомендую удалить.
Код функции я добавил при помощи
частичной кастомизации к общим функциям файла
includes/core.php. Статью, в которой подробно рассматривается этот процесс, найдёте
в документации Diafan.
В статье
по ссылке выше говорится о файле /includes/core.custom.php, но не упоминается про то, что
файл должен располагаться в папке темы (custom/my_theme/includes/core.custom.php).
Об этом написано
в статье про кастомизацию:
Класс для внедрения пользовательских разработок – Custom – определен в файле includes/custom.php.
Этот класс позволяет подключить файл из текущей темы, если он там есть. Кроме того, класс обеспечивает частичную кастомизацию, которая позволяет веб-мастеру выносить свои доработки из файла, который он изменяет.
Поэтому для работы функции надо создать тему вручную. Инструкцию по установке смотрите на странице дополнения во вкладке "Установка".
Использование кастомизации позволит избежать проблем при обновлении CMS.
ВЫЗОВ ФУНКЦИИ
Функция вызывается в любом месте (но лучше в начале) "вьюшки" модуля (файлы папок "
views" модулей) и
выводит данные, доступные непосредственно в этом шаблоне
, а также адрес самого шаблона.
<?php
// Вызов функции pre_mod();
if( method_exists($this->diafan, 'pre_mod') ){
$this->diafan->pre_mod($result, __FILE__, 0, 450, 19.3);
}
/**
* Шаблон кнопки «Купить», в котором характеристики, влияющие на цену выводятся в виде выпадающего списка
*
* @package DIAFAN.CMS
- Расшифровка $this->diafan->pre_mod($var_show, $path, $print_var, $height, $setka, $listen);
- $var_show данные для вывода
- $path адрес файла в котором осуществляется вызов функции
- $print_var способ вывода vd() или print_r(). Значение 0 или 1 соответственно
- $height высота блока вывода
- $setka расстояние между вертикальными линиями фона (помогает отслеживать вложенность при прокрутке)
- $listen - опрос блоков с отложенной загрузкой в секундах
Блок фиксированный, скроллится, стандартный браузерный поиск (
Ctrl+F) без проблем ищет внутри блока, если передать ему фокус. Выглядит это следующим образом:
Вертикальная разметка (серые линии) позволяет при скролле данных отслеживать вложенность массивов.
Версия от 12.01.2020
Для того, чтобы отключить функцию, достаточно снять галку "применить" с темы в разделе "Темы и дизайн".
БУДЬТЕ ВНИМАТЕЛЬНЫ !
Вызывайте функцию через условие:
if( method_exists($this->diafan, 'pre_mod') ){
$this->diafan->pre_mod($result, __FILE__, 0, 450, 19.3);
}
Это позволит даже при отключённом дополнении избежать ошибок. Если вызвать функцию без условия и отключить впоследствии дополнение, то при обращении к нему будет ошибка:
ДОПОЛНЕНО (17.01.2017):
- Добавлена возможность переключать вывод шаблонов, если функция на странице вызвана более одного раза (из нескольких шаблонов).
- Добавлена возможность сворачивать/разворачивать блок.
- Скорректировано положение панели редактирования CMS в нижнем положении с учётом вывода блоков с кодом.
- Добавлено условие для вывода блоков только администраторам.
ДОПОЛНЕНО (16.01.2018):
- Изменено оформление с учётом того, что блоки выводятся в любой части страницы и ранее могли наследовать стили сайта из-за чего оформление блока могло меняться.
- Доработан внешний вид счётчика выводимых блоков и исправлена ошибка из-за которой при количестве блоков более двух они не переключались далее второго.
- Скорректировано положение и оформление панели редактирования CMS в нижнем положении с учётом вывода блоков с кодом.
- Сокращён путь к файлу. Теперь выводится от корня сайта, а не абсолютный путь.
- Изменено название функции с pre() на pre_mod(), чтобы избежать возможных проблем (слишком простое название может прийти в голову не только мне). Также изменены css-классы блоков по этой же причине.
ДОПОЛНЕНО (17.07.2019):
- Полностью переписан скрипт обработки действий с блоками.
- Добавлены параметры по-умолчанию и изолированы друг от друга. Теперь у блоков может быть разная высота.
- Добавлена проверка на наличие метода в системе. Теперь можно не опасаться, что при отключении дополнения оставленный в шаблонах вызов приведёт к ошибке.
ДОПОЛНЕНО (12.01.2020):
- Сокращён код. Формирование и вывод CSS-стилей и JS-кода теперь происходит однократно при генерации первого блока.
- Вызов функции из шаблонов с отложенной загрузкой раньше происходил после отработки скриптов, что приводило к ошибкам. Теперь функция мониторит страницу на предмет появления блоков с отложенной загрузкой каждые 2 секунды. По-умолчанию этот опрос длится 10 секунд, но это время также настривается параметром функции.
- Кнопка переключения окон с кодом в левом верхнем углу подсвечивается красным цветом до окончания процесса опроса.