Я пытаюсь обработать контактную форму, вставленную в plone, в main_template моего сайта.Я делаю так, чтобы функциональность, присутствующая в навигационной кнопке «войти в контакт» на этом сайте , работала в режиме Plone.Мой подход к этому был немного переработать contact-info.cpt , чтобы сделать его макросом, и использовать этот макрос в main_template.pt.Я получаю LocationError, когда пытаюсь просмотреть любую страницу на моем сайте, если только я не удаляю строку tal:define="errors options/state/getErrors"
из contact-info.cpt.
Это - ошибка, которую я получаю с этимстрока в коде.Если я удалю эту строку, страница будет отображаться и будет выглядеть именно так, как я хочу, но при отправке формы произойдет ошибка. Это - ошибка в этой ситуации.Я в основном в тупике в обеих ситуациях и буду признателен за любой совет.
ОБНОВЛЕНИЕ (решение, которое я использовал):
Просто хотел опубликовать обновление с информацией о том, как я на самом деле заставил это работать.Информация от Martijn Pieters очень помогла понять, почему она не работает, но я действительно не был в состоянии начать работать оттуда.Я остановился на jQuery, чтобы заставить это работать в site_actions и в моем собственном выпадающем списке.Я обернул содержимое формы между тегами <metal:main>
с помощью div, который я дал простому идентификатору «contact-info».Затем в основной шаблон я также ввел общий div с простым идентификатором «load-area».Последняя часть головоломки состояла в том, чтобы изменить мой файл contact.js на contact.js.pt и ввести следующие 3 строки:
<tal:block define="portal_url context/@@plone_portal_state/portal_url">
jq('#load-area').load('<span tal:replace="portal_url"></span>/contact-info #contact-info');
</tal:block>
Мысль, что я должен опубликовать это дело, может позже кому-нибудь еще помочь.