Пару модификаторов для MODX
Модификатор телефонного номера
К примеру нам нужно вывести телефонный номер в формате: +7 (900) 2000 600 и так чтобы он нажимался как ссылка для запуска на устройствахНо так как плейсхолдер всего один [[++phone]]
Создаем сниппет phone c содержимым
<?php
if (!empty($input)) {
$input = preg_replace("/[^0-9]/", '', $input);
}
return $input;И в шаблон где нужно вывести телефонный номер вставляем
<a href="tel:+[[++phone:phone]]">[[++phone]]</a>Результат:<a href="tel:+79002000600">+7 (900) 2000 600</a>Модификатор проверка существования файла
Бывает что необходимо выводить файл из тв параметра или какого другова поля. Но как обычно менеджеры забивают на это дело и ничего не вводят. И получается что на сайт отображается битая картинка.Для решения этой проблемы можно использовать модификатор.
Создаем сниппет file_exists с содержимым
<?php
/** @var array $scriptProperties */
if (file_exists(MODX_BASE_PATH.$input)) {
return $input;
}
return $modx->getOption('default', $scriptProperties, '/assets/components/minishop2/img/web/ms2_big.png');И в шаблоне где мы выводим картинку делаем так<img src="[[+images:file_exists]]" >Получится что в итоге вернется изображение по умолчанию<img src="/assets/components/minishop2/img/web/ms2_big.png" > Комментарии: 27
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Результат:
ФаритВезде где есть телефон я просто прописываю в таком формате
Это же делается всего один раз на сайт и какой смысл лишний раз нагружать сервер.
Такие данные лучше всегда выносить в настройки.
А вот тут то и пригодится модификатор для телефонного номера, ведь не будете вы делать две настройки — номер чтобы показать человеку и номер чтобы скормить протоколу tel для ссылки
И не надо никаких сниппетов создавать.
А с телефоном я делаю так
в общем применений несколько.
Так же картинка по умолчанию может устанавливатся при этом модификаторе
ClientConfig создаю настройку телефон с именем phone, и потом вывожу в шаблоне где должен быть номер {‘phone’ | config} а в clientconfig пишу номер. И везде номер добавляется вроде
Во вторых для феном надо писать {$modx->config.phone}
В третьих {$modx->config.phone | phone}
Вопрос в правильности действий?!
2)Где в шаблоне предусмотрен телефон вставляю код clientconfig с именем роля номера телефона vasya ( синтаксис пока опустим )
3) записываю телефонный номер в настройках clientconfig
Вуаля телефон отображается на сайте.
Вопрос: правильно ли я делаю, и для чего плагин если так работает.
Ваш плагин и смутил меня в правильности моих действий…
Загадка такая: как из одного плейсхолдера получить два разных телефонных номера:
В ClientConfig создан phone?
Если нет, то надо создать.
И на страницу вставь:
Увидешь что будет
Без всяких тире, плюсов и скобок.
Дак вот этот модификатор это и делает
Зачем tel: знаешь?