FENOM'енальный курс. Часть 17. Создаем конфигурацию сайта с помощью ClientConfig.

Шаблон MAGAZINE вы можете скачать по ссылке.

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

Создаем категорию “Контакты” в ClientConfig и создаем следующие поля:

FENOM'енальный курс. Часть 17. Создаем конфигурацию сайта с помощью ClientConfig.

Далее нам нужно создать категорию социальные сети и создать следующие поля:

FENOM'енальный курс. Часть 17. Создаем конфигурацию сайта с помощью 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, с помощью которого можно добавлять те или иные модификаторы.

FENOM&#39;енальный курс. Часть 17. Создаем конфигурацию сайта с помощью ClientConfig.

Отлично! Теперь плагин будет работать.

FENOM'енальный курс. Часть 17. Создаем конфигурацию сайта с помощью ClientConfig.

0 Число голосов: 5
5
5
1
5

Комментарии ()

  1. Александр 15 июня 2021, 11:59 # 0
    Доброго дня, а как быть с разными контекстами?Т.е. я в настройках включил мультиконтекст. Задал разные значения для разных контекстов в конфигурации. Но при выводе значений из clientconfig выводятся значения из основного контекста.Пробовал выводить по разному:[[++setting_text1]]{$_modx->getPlaceholder('+setting_text1')}{$_modx->config.setting_text1}

    Наши клиенты

    Многие компании уже доверяют нам. Будьте в их числе!

    Хотите реализовать проект?

    Контакты

    Напишите нам - мы расскажем вам много интересного!


    Пермь, ул. Крупской 34, офис 510