EVAL привязка
Последнее обновление Nov 28th, 2019 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$301 per month—let's make that $500!
Learn moreЧто такое @EVAL привязка?¶
@EVAL Привязка выполняет указанный код PHP. Это должно использоваться с осторожными мерами безопасности.
Важно: привязка @EVAL устарела и удалена в MODX 3.0.
Синтаксис¶
@EVAL php_code_here
Использование¶
Просто поместите оператор PHP после тега @EVAL:
@EVAL return "The time stamp is now ".time();
@EVAL $a = 'dog'; return $a;
Примеры¶
Отображение похожих постов¶
Есть целая страница, показывающая пример использования привязки EVAL для выполнения сниппета: Создание поля множественного выбора для связанных страниц в вашем шаблоне.
db-driven input-option-values используя rowboat¶
Допустим, мы хотим иметь выпадающий список для выбора идентификатора пользователя по имени пользователя. Требования: The rowboat-snippet.
Сначала мы создаем новый чанк для наших опций и называем его «userOption» следующим кодом:
[[+username]]==[[+id]]
Затем создайте TV выпадающий список с такими параметрами ввода:
@EVAL return '-- choose a user --||' . $modx->runSnippet('Rowboat',array('table'=>'modx_users','tpl'=>'userOption','outputSeparator'=>'||'));
Безопасность¶
Оператор eval()
вызывает удивление у всех, кто связан с безопасностью: операторы eval печально известны своей эксплуатацией, поэтому рекомендуется найти другой способ сделать то, что вы пытаетесь сделать, но этот контекст поддерживается MODX. Если я позволю своему циничному уму пофантазировать, позвольте мне нарисовать одно бедственное обстоятельство: какой-то веб-пользователь вашего приложения MODX входит в систему и имеет доступ к полю, которое выполняется привязкой EVAL. Этот гнусный пользователь может проверить некоторые неприятные операторы unlink() или rmdir () и уничтожить файлы вашего веб-сервера, или прочитать конфиденциальные файлы в любом месте на веб-сервере, к которому у PHP есть доступ. Будьте осторожны с этим!
К счастью, мне не удалось unlink()
файл с помощью привязки @EVAL ... но я уверен, что есть люди, которые умнее меня ...
Смотрите также¶
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$301 per month—let's make that $500!
Learn more