Мы с вами плавно подходим к завершающей стадии нашего курса. В данном уроке мы с вами продолжим создавать параметры для ClientConfig. В данном уроке мы с вами добьем все наши опции до конца и начнем с контактов, которые у нас есть на странице контактов, футере и шапке сайта.
Создаем категорию “Контакты” в ClientConfig и создаем следующие поля:
Далее нам нужно создать категорию социальные сети и создать следующие поля:
Здесь я постарался собрать все основные социальные сети, которые мы сможем заполнить. Еще я бы дополнительно убрал в опции верхний и нижний логотипы, копирайт в футере.
Теперь нам осталось вывести эти опции в шаблонах и чанках. Выводить мы их будем следующим образом, например, блок социальных сетей:
{if $_modx->getPlaceholder('+conf_vk')}<li><a href="{$_modx->getPlaceholder('+conf_vk')}" target="_blank"><i class="fa fa-vk"></i></a></li>{/if} {if $_modx->getPlaceholder('+conf_facebook')}<li><a href="{$_modx->getPlaceholder('+conf_facebook')}" target="_blank"><i class="fa fa-facebook"></i></a></li>{/if} {if $_modx->getPlaceholder('+conf_twitter')}<li><a href="{$_modx->getPlaceholder('+conf_twitter')}" target="_blank"><i class="fa fa-twitter"></i></a></li>{/if} {if $_modx->getPlaceholder('+conf_instagram')}<li><a href="{$_modx->getPlaceholder('+conf_instagram')}" target="_blank"><i class="fa fa-instagram"></i></a></li>{/if} {if $_modx->getPlaceholder('+conf_youtube')}<li><a href="{$_modx->getPlaceholder('+conf_youtube')}" target="_blank"><i class="fa fa-youtube-play"></i></a></li>{/if}
Аналогично выводим все остальное. Единственный момент, на котором я хочу заострить внимание и научить вас писать файловые плагины на Fenom – это телефон. Телефон всегда должен быть ссылкой формата tel:+71234567890, но у нас телефон забит в формате, удобным для чтения и запоминания, например, +7 (123) 456-78-90, поэтому в аттрибуде href данный текст нужно почистить от лишних символов, а сделаем мы с вами это с помощью плагина fenom_modificators.php, который создадим в папке core/elements/plugins/:
<?php /** @var modX $modx */ switch ($modx->event->name) { case 'pdoToolsOnFenomInit': $fenom->addModifier('clearphone', function ($input) { if (!empty($input)) { $output = preg_replace("/[^\+0-9]/", '', $input); return $output; }else{ return $input; } }); break; }
Если просто создадим плагин и оставим все как есть, то он у нас не запустится. Бывалые знают, что у плагина дополнительно отмечаются события для его срабатывания. Поэтому я создам плагин baseplugin в панели управления:
<?php if ($pdoTools = $modx->getService('pdoTools')) { $pdoTools->runSnippet('@FILE plugins/fenom_modificators.php', $scriptProperties); }
И отмечу событие pdoToolsOnFenomInit, с помощью которого можно добавлять те или иные модификаторы.
Отлично! Теперь плагин будет работать.