Разрабатывая сайты, постоянно сталкиваешься с необходимостью решения небольших задач, под которые писать какие-то дополнения, плагины и т. д. слишком жирно. В случае работы на MODX прекрасно помогают модификаторы или небольшие сниппеты, которые преобразуют исходную строку, выражение, число в нужный формат, либо просто помогают в повседневной работе.
Как правило, это буквально пара-тройка строк кода, которые я называю «сниппеточками». Что-то собственного сочинения (прошу строго не судить — я тот ещё программист)), что-то подсмотрено у членов уважаемого сообщества и на PHP-форумах. В любом случае данные фишки помогут сэкономить некоторое количество рабочего времени и автоматизировать рутинные операции. Итак, поехали:

num_format
Идёт в комплекте с Shopkeeper, автор, соответственно, Andchir.
Используется, когда нужно разбить число на разряды:
<?php
if(strlen($input)==0) return '';
$input = floatval(str_replace(array(' ',','), array('','.'), $input));
return number_format($input,(floor($input) == $input ? 0 : 2),'.',' ');

Использование:
[[*price:numformat]]

Было: 12345678
Стало: 12 345 678

last
Удаляет последний символ в строке. Полезен при формировании какой-либо последовательности (к примеру, ID ресурсов через запятую), у которой последний символ вызывает ошибку:
<?php
return mb_substr($input, 0, -1);

Использование:
[[*resources:last]]

Было: 12,4587,45,86,
Стало: 12,4587,45,86

phone
Используется при формировании ссылки с атрибутом tel в выводе телефона на сайте. Удаляет всякие дефисы, скобки и т. д.:
<?php
$p1 = array(" ", "-", "(", ")");
$p2 = array("", "", "", "");
return str_replace($p1, $p2, $input);

Использование:
<a href="tel:[[*phone:phone]]">[[*phone]]</a>

Было: 8 (495) 233-32-32
Стало: 84952333232

title
Убирает лишние символы в строке. Полезно при выводе атрибутов, когда в качестве title или alt используется заголовок ресурса или подобное. Ведь, случается, что клиент называет ресурс (товар, статью и т. д. ) типа: Автоматический анализатор «АА 125-857». В этом случае, если у вас прописано в шаблоне что-то типа
<img src="[[*photo]]" alt="[[*pagetitle]]" />

выведется:
<img src="[[*photo]]" alt="Автоматический анализатор "АА 125-857"" />

Получаются двойные кавычки, что приводит к ошибкам.
Данный модификатор заменяет кавычки на «» и дополнительно убивает символ &:
<?php
$str = preg_replace ("#([^=])\"([^\"]+)\"#", "\\1«\\2»", $input);
return str_replace('&', '', $str);

Использование:
<img src="[[*photo]]" alt="[[*pagetitle:title]]" />


nbsp
Простейший типограф. (сылкой, поскольку тут некоторые теги режутся).
Вставляет неразрывный пробел после предлогов, заменяет тире и т. д.
Использование:
[[*content:nbsp]]


plural
Сниппет, который склоняет числовые определения. То есть, не «1 штук», а «1 штука», «3 штуки» и т. д.
<?php
if($n!=''){
$plural = $n%10==1&&$n%100!=11?$w1:($n%10>=2&&$n%10<=4&&($n%100<10||$n%100>=20)?$w2:$w3);
return $plural;
}

Использование:
[[plural? &n=`число` &w1=`штука` &w2=`штуки` &w3=`штук` ]]


getGet
Используется для записи в сессию и вывода значения какой-либо переменной в GET-запросе. К примеру, нужно передать на страницу формы заказа название товара, на котором нажата ссылка «Заказать»:
<?php
$get = htmlentities(trim(strip_tags((string) $_GET[$var])), ENT_QUOTES, 'UTF-8', false);
session_start();
if ($get == '' ) {
return $_SESSION[$var];
} 
else {
$_SESSION[$var] = $get;
return $_SESSION[$var];
}

В принципе, можно в первой строке вместо $GET[$var] прописать $_REQUEST[$var] — тогда будет работать и с GET и с POST.
Использование:
Ссылка:
<a href="[[~ID_страницы с формой]]?item=[[*pagetitle]]">Заказать</a>

В форме:
<input type="hidden" name="item" value="[[!getGet? &var=`item`]]" />

Поскольку всё пишется в сессию, значение подставляется и при перезагрузке страницы после, к примеру, не прошедшей валидацию, формы.

copyYears
Используется в копирайте.
<?php
$year = date("Y");
if($year == $start) {
	return $year;
} else {
return ''.$start.' – '.$year.'';
}

Использование:
© [[copyYears? &start=`2015`]]

Выведет в 2015 году: "© 2015", а в 2016 уже: "© 2015 – 2016" и т. д.

Кстати, если у кого-то есть подобные «заначки», делитесь — думаю, это не повредит развитию MODX и ещё больше охарактеризует его, как чрезвычайно гибкий инструмент разработки )).