• Блог
  • [Fenom] PHP код на странице

Сегодня я в двух словах расскажу, как в Fenom добавить возможность использования PHP кода на страницах. Это легко сделать используя возможности его расширения. Достаточно создать или модификатор или блочный тег.

// Плагин
if ($modx->event->name == 'pdoToolsOnFenomInit') {
    // Модификатор
    $fenom->addModifier('php', function ($input) use ($modx) {
       return eval($input);
    });
    // Блочный тег
    $fenom->addBlockFunction("php", function (array $params, $content) use ($modx) {
        return eval($content);
    });
}

Использование через модификатор

<h1>Заголовок: {'echo $modx->resource->pagetitle;' | php}</h1>

Использование через тег

{php}
    if ($modx->user->isMember('Administrator')) {
        echo "Добро пожаловать!";
    } else {
        echo 'Вход запрещён!';
    }
{/php}

Главное помнить, что шаблоны и чанки предназначены для разметки и должны содержать минимум логики. Поэтому не злоупотребляйте описанной выше возможностью.

That's all, folks.

1   5140

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

  1. shock 04 марта 2018 # +1
    Спасибо!
    Всё так просто оказывается.
    1. YansterOne 06 марта 2018 # 0
      А разве правильно так делать? Ведь для php кода в MODX существуют сниппеты.
      1. Сергей Шлоков 06 марта 2018 # +2
        Для староверов мой приём покажется жуткой крамолой. Да и использование шаблонизатора должно вызывать отторжение. Ведь вместо {if}...{/if} надо просто использовать сниппет.
        Но те, кто открыт для нового и использует файловые элементы и шаблонизаторы, могут использовать данный приём с чистой совестью. Такая возможность есть и в других фреймворках.

      Вы должны авторизоваться, чтобы оставлять комментарии.

      Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.