Регистрация Javascript для загрузки в режиме редактирования - PullRequest
4 голосов
/ 29 марта 2011

Каков рекомендуемый способ регистрации Javascript для загрузки в представлении редактирования (архетипы) определенных типов содержимого?

  • Javascript будет объединен и сжат, если это portal_javascripts
  • Создание условия portal_javascript является проблемой: как создать строку условия, проверяющую редактирование представлений определенных типов контента и чтобы строка не выглядела как остатки боевых ворон
  • Виджеты архетипов поддерживают старомодный способвыгрузить файлы напрямую в макрос заполнения

Есть ли примеры существующих реализаций?

Ответы [ 3 ]

6 голосов
/ 29 марта 2011
  1. Убедитесь, что ваш код JavaScript работает нормально в этих формах редактирования типов контента и не ломается в других ситуациях (jQuery - ваш друг). Затем добавьте его в portal_javascripts.

  2. Если вы можете связать JavaScript с определенными виджетами, добавьте его как helper_js для этих виджетов. Будьте осторожны с JavaScript в качестве ресурсов браузера, потому что у меня возникли проблемы с '++resoure++'-like URL-адресами как helper_js: очевидно, Архетипам не нравится знак плюс (+) (не корректно экранирует знак плюс, если я правильно его понимаю).

  3. Вы можете определить шаблон страницы с именем archetypes_custom_js с помощью макроса с именем javascript_head, и он будет автоматически загружен в форме редактирования всех архетипов. Затем вы можете проверить специальные условия в этом макросе. См base_edit.cpt строка 47.

4 голосов
/ 29 марта 2011

Честно говоря, в таких случаях мне нравится подход, который использует старый заполненный слот непосредственно в форме редактирования типа.Форма редактирования часто вызывается не так часто (и уж точно не анонимно), поэтому небольшие издержки из-за загрузки не полностью кэшированного кода не так уж и плохи.

2 голосов
/ 29 марта 2011

Рекомендуется объединять ваш JavaScript с как можно большим количеством других сценариев.Просто загрузите его либо без условия, либо только для аутентифицированных пользователей.Весь код JavaScript, относящийся к редактированию, включенному в Plone, уже загружается для всех аутентифицированных пользователей независимо от *. 1001 *

...