Expression Engine - это шаблонизатор. Он почти наверняка буферизирует вывод, а затем заменяет его, поэтому он будет работать с echo
, но не с функциями.
Я не эксперт по ЭЭ, но что-то вроде этого может сработать:
$name = get_instance()->TMPL->fetch_param('username', '');
mkdir(escapeshellarg($name));
Суть в том, что вам нужно получить результат интерпретации EE, а не просто передать необработанный текст.
Вы также можете использовать ob_start()
для захвата выходных данных, если вы не можете легко получить возврат EE. Например:
function mkdir_obcb($dir) {
mkdir(escapeshellarg($dir));
return '';
}
ob_start('mkdir_obcb');
echo '{username}';
ob_end_clean();
Обратите внимание также на мое использование escapeshellarg()
для снижения риска атаки.