Fenom модификатор и лексиконы (решено)
Добрый вечер
Подскажите, пожалуйста, как добавить лексиконы в модификатор fenom
код ниже выдает ошибку
Подскажите, пожалуйста, как добавить лексиконы в модификатор fenom
код ниже выдает ошибку
<?php
/** @var modX $modx */
switch ($modx->event->name) {
case 'pdoToolsOnFenomInit':
$modx->getService('lexicon','modLexicon');
$modx->lexicon->load('abcd:default');
$fenom->addModifier('dateformatter', function ($input) {
switch ($input) {
case "01":
$monthname = $modx->lexicon('abcd.month.january');
break;
}
$output = $monthname;
return $output;
});
break;
}
Комментарии: 5
#помогите
$fenom->addModifier("dateformatter", function ($input) use ($modx) {
switch ($input) {
case "01":
return $modx->lexicon('abcd.month.january');
break;
default:
return $input;
}
});
большое спасибо!
Очень много ошибок в коде.
1. Ты используешь в функции модификатора переменную $modx. А откуда она взялась? Её нужно пробросить через замыкание
3. Этот код содержит лишние строки
1. Ты используешь в функции модификатора переменную $modx. А откуда она взялась? Её нужно пробросить через замыкание
...
$fenom->addModifier('dateformatter', function ($input) use ($modx){
...
2. Загружать сервис не обязательно — он уже загружен.3. Этот код содержит лишние строки
$output = $monthname; // Эта строка для чего?
return $output;
// Можно заменить на
return $monthname;
4. Так как $monthname может быть не определена, в switch нужно добавить default:
$monthname = '';
Попробуй всё это собрать самостоятельно.
спасибо за развернутый ответ!
помогло:
помогло:
use ($modx){
код просто для демонстрации, в реальности он выглядит по-другому
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.