Помощник в разработке и интеграции

Просмотров: 2878Куплено: менее 100Разработчик: Любимов Павел (webnavigator)
Разработка на DIAFAN.CMS
Разработка на DIAFAN.CMS
Разработка на DIAFAN.CMS
Разработка на DIAFAN.CMS
Разработка на DIAFAN.CMS
Разработка на DIAFAN.CMS
Разработка на DIAFAN.CMS
Цена: 500 Руб
Зарегистрируйтесь или авторизируйтесь для того, чтобы купить.
ПОСМОТРЕТЬ В ДЕЙСТВИИ
Версия: 1.5 (последнее обновление - 20.01.2020)

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

Помимо данных различных шаблонов можно выводить и другие запросы, например:
$this->diafan->_route или $this->diafan->_site, позволяя иметь под рукой помимо данных модулей, используемых при разработке, очень удобный справочник.

Этими функциями можно пользоваться и просто размещая их в коде, однако, выводиться информация будет в том блоке (шаблоне модуля), где она вызывается и доступна. А это зачастую неудобно. Вывести и посмотреть объёмный список данных в том же блоке товара, имеющем габариты 400x200px не очень-то и удобно:



CSS-оформление сайта может сделать просмотр ещё менее удобным:



Блок, реализуемый моим дополнением выглядит вот так:





ИСПОЛЬЗОВАНИЕ ДОПОЛНЕНИЯ

Вызов дополнения осуществляется из любого шаблона любого модуля, используемого на странице:
Код

if( method_exists($this->diafan, 'pre_mod') ){
$this->diafan->pre_mod($result, __FILE__, 1, 250, 37.4, 15);
}



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

Дополнение при вызове принимает следующие параметры:

  • Вывод листинга содержимого шаблонов для удобного просмотра
  • Пример вывода if( method_exists($this->diafan, 'pre_mod') ){ $this->diafan->pre_mod($result, __FILE__, 1, 250, 37.4, 15); }
  • Расшифровка $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 - опрос блоков с отложенной загрузкой в секундах

Можно осуществлять групповой вызов с различными данными и параметрами:


Вызов нужно обязательно обернуть в method_exists(), как показано выше, чтобы при отключении темы оставшиеся на сайте вызовы не приводили к ошибкам.
Код
if( method_exists($this->diafan, 'pre_mod') ){
$this->diafan->pre_mod($result, __FILE__, 1, 250, 37.4, 10);
}

Если этого не сделать и отключить дополнение, будет вот такая ошибка:



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

ОБНОВЛЕНИЯ

ДОПОЛНЕНО (20.01.2020):

  1. Проверка на администратора выполнена через role_id. Блок выводится для всей группы администраторов, а не только для администратора, устанавливающего систему.
  2. Дополнено оформление (кнопка сворачивания окна могла уходить за границу экрана)

ДОПОЛНЕНО (12.01.2020):

  1. Сокращён код. Формирование и вывод CSS-стилей и JS-кода теперь происходит однократно при генерации первого блока.
  2. Вызов функции из шаблонов с отложенной загрузкой раньше происходил после отработки скриптов, что приводило к ошибкам. Теперь функция мониторит страницу на предмет появления блоков с отложенной загрузкой каждые 2 секунды. По-умолчанию этот опрос длится 10 секунд, но это время также настривается параметром функции.
  3. Кнопка переключения окон с кодом в левом верхнем углу подсвечивается красным цветом до окончания процесса опроса.

ДОПОЛНЕНО (17.07.2019):

  1. Полностью переписан скрипт обработки действий с блоками.
  2. Добавлены параметры по-умолчанию и изолированы друг от друга. Теперь у блоков может быть разная высота.
  3. Добавлена проверка на наличие метода в системе. Теперь можно не опасаться, что при отключении дополнения оставленный в шаблонах вызов приведёт к ошибке.

ДОПОЛНЕНО (16.01.2018):

  1. Изменено оформление с учётом того, что блоки выводятся в любой части страницы и ранее могли наследовать стили сайта из-за чего оформление блока могло меняться.
  2. Доработан внешний вид счётчика выводимых блоков и исправлена ошибка из-за которой при количестве блоков более двух они не переключались далее второго.
  3. Скорректировано положение и оформление панели редактирования CMS в нижнем положении с учётом вывода блоков с кодом.
  4. Сокращён путь к файлу. Теперь выводится от корня сайта, а не абсолютный путь.
  5. Изменено название функции с pre() на pre_mod(), чтобы избежать возможных проблем (слишком простое название может прийти в голову не только мне). Также изменены css-классы блоков по этой же причине.

ДОПОЛНЕНО (17.01.2017):

  1. Добавлена возможность переключать вывод шаблонов, если функция на странице вызвана более одного раза (из нескольких шаблонов).
  2. Добавлена возможность сворачивать/разворачивать блок.
  3. Скорректировано положение панели редактирования CMS в нижнем положении с учётом вывода блоков с кодом.
  4. Добавлено условие для вывода блоков только администраторам.

Дополнение совместимо с версиями 6.0.8.7 и выше.

До версии 6.0.8.7 в CMS присутствовала ошибка функционирования частичной кастомизации и активация дополнения вызывало ошибку. Ошибка эта появилась некоторое количество релизов назад и по этой причине дополнение было исключено из каталога. В какой точно версии ошибка появилась сказать не могу, поэтому теоретически дополнение работает и на ряде более ранних версий линейки 6.0.X.X. Но тут без гарантий. В случае возникновения ошибки нужно переименовать/удалить файл в папке с темой (он там один).

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



Неплохо было бы сделать, чтобы была возможность сворачивать/разворачивать ветки массива. Такое решение уже где-то есть на просторах интернета, т.ч. добавить функционал несложно.
Было бы очень удобно, однако, есть нюансы. Все эти манипуляции будут выполняться на клиентской стороне (JavaScript) и могут занять большое количество ресурсов. В зависимости от того, какой шаблон выводится, может быть сгенерировано больше десятка вкладок с кодом. И каждую из них нужно будет обработать. Это может "повесить" вкладку/окно браузера секунд на 10-15. А такое вряд ли кому-то понравится при работе.
Любимов Павел (DIAFAN.CMS) МодераторМодераторМодераторМодераторМодератор 15 ноября 2020 г., редакция 15 декабря 2020 г.
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.

ДРУГИЕ РЕШЕНИЯ ЭТОГО РАЗРАБОТЧИКА