Skip to content

Instantly share code, notes, and snippets.

@bendasvadim
Created February 8, 2018 16:06
Show Gist options
  • Save bendasvadim/a4dffedf840a2b386add0ed824749ecb to your computer and use it in GitHub Desktop.
Save bendasvadim/a4dffedf840a2b386add0ed824749ecb to your computer and use it in GitHub Desktop.
Собственные модификаторы Fenom
Использоватние
{$variable | snippet}
Сниппет "snippet"
<?php
/** @var modX $modx */
switch ($modx->event->name) {
case 'pdoToolsOnFenomInit':
/** @var Fenom $fenom
Мы получаем переменную $fenom при его первой инициализации и можем вызывать его методы.
Например, добавим модификатор вывода имени домена сайта из произвольной ссылки.
*/
$fenom->addModifier('website', function ($input) {
if (!$url = parse_url($input)) {
return $input;
}
$output = str_replace('www.', '', $url['host']);
return strtolower($output);
});
break;
}
Если вы разрабатываете свой пакет, которому нужны собственные модификаторы, то лучше не захламлять плагин и вызывать метод из основного класса:
switch ($modx->event->name) {
case 'pdoToolsOnFenomInit':
$Extras = $modx->getService('Extras', 'Extras', MODX_CORE_PATH . 'components/extras/model/');
if ($Extras) {
/** @var Fenom $fenom */
$Extras->addFenomModifies($fenom);
}
break;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment