биндим на форму что то вроде этого:
.......... submit:function(e){ e.preventDefault(); var $$=$(this),d={}; $$.find('input,select,textarea').each(function(){ d[this.name]=this.value; }); $.ajax({ type:'post', url:$$.attr('action'), data:d, timeout:$$.attr('data-timeout') || 30000, success:function(d){ return ...; }, error:function(){ return ...; } }); } ..........
100% рабочее решение...
одна из частых проблем modx в этом вопросе - трабл c запуском sendmail на хостинге (через обычно закрытую в disable_functions функцию, недоработка). самое простое решения - установить отсылку писем по smtp в системных настройках и не парится...
двойные квадратные скобки подряд - служебный символ шаблонизатора, поэтому парсер и дурит ;) в урлах - эскейп спасает, в других случаях - пробелы между скобками...
за 3 года так и не "поняли", что тег style можно вставлять в любое место и head и body? это как бе в первых строках любого html-букваря находится...
основным резоном не делать таких извращений (про инлайн-стили вообще отдельный разговор) является "желание не запутать самого себя". один раз потратишь пол-дня роясь в своих css файлах в поисках ошибки, а потом найдёшь такой блок в теле страницы (про который забыл, или он по тупости отработал не там где задумывалось) => точно дашь сам себе зарок на подобное.
yesss :) ляпнул...
в js доступ из окна ифрейма к любой переменной основного окна: windows.top.переменная ну или windows.top['переменная'], как захочется. ничего передавать не надо, если и так уже в памяти...
без обид, но вот это уже чушь ;)
передача параметров через кэшируемый чанк, установка значений TV через кэшируемый чанк и т.п. - это одна из возможностей, которые решают множество проблем, один из многих (!) резонов, по которым появилось разделение на чанки и снипетты с разной и именно такой как сейчас системой обработки и кэширования.
извращение - это писать сниппет который, в лучшем случае, всего лишь полностью повторит работу примитивной и давно отлаженной связки вэбфингера и гетресурса через "чанк-параметер"...
без обид, но консультанту надо знать такие простейшие фичи MODx ;) азбучные как бе:
заставить не сложно: всего лишь играем с параметрами "includeDocs" и/или "excludeDocs" и/или "where"(тут синтаксис типа [{"id:IN": [[[$чанк]]]}]), которые задаются кэшируемыми чанками, в которых getResources собирает id документов с нужными значениями TV.
кэшируемость чанков, кстати, снимает и второй вопрос, то же весьма странный. хотя понятный, если ни разу не настраивалась нормальная работа кэша MODx для объёмных ресурсов. да и пробежка по всему дереву предлагался как самый крайний вариант решения в запутанной структуре...
"геморрой" может начаться только из-за кривой архитектуры сайта и бесконтрольности прав доступа. "обычный юзер" должен иметь парво добавлять страницы только там, где их появление автоматом отразится/не отразится во всех нужных/ненужных блоках. даже у стандартного вэйфигера параметров более чем достаточно, что бы реализовать любые блоки ссылок, а любой странице хватит даже только параметров "контейнер или нет" и "отображать или нет в меню".
сначала логичную структуру ресурса продумать надо, а уж потом решать технические трудности, а не "по ходу дела" ковыряться в нарастающем бардаке...
ЗЫ: и в конце концов (если случай непоправимо запущенный) никто не мешает сделать категорию "блоки ссылок" насоздовать там кучу TV параметров "отображать/или нет" под каждый блок и прицепить их к нужным шаблонам (читай типам станиц), а вэйфингер в блоках заставить делать выборки именно по этим TV, тупо от корня по всему дереву. даже выглядеть для "продвинутых" секретарш будет вполне вполне гламурно и абсолютно понятно...