@ EVAL

    Синтаксис

    @EVAL php_code

    Выполняет строку php-кода и обрабатывает возвращаемое значение.

    Где php_code - это фактический PHP-код, который должен быть выполнен. Возвращаемое значение может быть строкой, массивом или набором записей. Используя команду @EVAL, вы можете писать php-коды, чтобы сделать почти все, что возможно, с помощью php-скриптов сегодня.

    Это самая гибкая и мощная из всех команд, поскольку она открывает привязки к практически неограниченным возможностям.

    @EVAL return «Время:» . time ();

    Пример

    Необходимо сделать в ТВ возможность выбирать ресурс из дерева документов (документ с номером 3).

    • Создаём ТВ-параметр, выбираем ему тип ввода "DropDown List Menu".
    • В поле "Возможные значения" вызываем DocLister, передаём ему id и шаблон строки для DropDown.

    Вызов сниппета

    @EVAL return $modx->runSnippet('DocLister', array( 'parents' => 3, 'tpl'=>'@CODE: [+pagetitle+]==[+id+]||') );

    Вложенные привязки

    Как вы можете убедиться из примера выше, допускается вкладывать одну @-связь в другую.

    Например, привязка @EVAL может быть размещена внутри ТВ, а в ней использована привязка @CODE для шаблона строки. Это избавляет вас от необходимости делать лишние чанки, зачастую содержащие одну-две строчки.