Столкнулся со следующе прблемой.
По замыслу необходиму устроить общение eForm с пользователем через JS метод аlert.
По редактировал с этой целью файл eForm russian-UTF8.inc.
Поменял validation_message вот так:
было:
$_lang["ef_validation_message"] = "<div class=\"errors\"><strong>В вашей форме обнаружены следующие ошибки:</strong>
[+ef_wrapper+]</div>";
стало:
$_lang["ef_validation_message"] = "<script language=’JavaScript’>alert(’В вашей форме обнаружены следующие ошибки: [+ef_wrapper+]’)</script>";
Для всех остальных сообщений, которые подставляются за место [+ef_wrapper+] заменил, разумеется
на \n.
Ну и не работает. MODx в браузер не выводит "\n" - а сразу делает разрыв строки - и все мой js выглядит так:
alert(’В вашей форме обнаружены следующие ошибки: Необходимо заполнить следующие поля:Comments /разрыв строки/
Неверный код подтверждения.’)
Понятно что такой js работать не будет. Кто понимет эти тонкости, подскажите пожалуйста, как мне заставить MODx не замечать \n - где копать? Или это eForm вытворяет?
ps. без использования "\n" - конечно все работает - но диалоговые окошки получаются длинные (все сообщение в одну строку) и плохо читаемые.
Помогите - очень прошу
Экранируйте слеши.
\n сначала же в php переменных используются, а уж потом на выход подставляется, но там уже перевод строки стоит, а не этот ’escape-sequence’.
Варианты решения
1) Пишите так: \\n
2) Присваивайте так: ’ef_waraper’ = "MODx в браузер не выводит ".’\n’." - а сразу делает разрыв строки";
2.1) или так: ’ef_waraper’ = ’MODx в браузер не выводит \n - а сразу делает разрыв строки’; (в одинарных кавычках)
P.S. Уважаемые «вебразработчики», не е%ите пожалуйста людям мозг из за всякой х#йни! Прочитайте вы хоть пару общих статей про PHP, если уж ваша деятельность с ним как-то связана.