Ноу-хау интерфейса управления Zope для лучшей разработки Plone - PullRequest
4 голосов
/ 24 февраля 2011

Как типичный программист-интегратор, настраивающий Plone, что я должен знать о ZMI, чтобы помочь мне более эффективно писать код? Какие настройки, инструменты, подводные камни, ярлыки и темные углы помогут мне сэкономить время и помогут лучше написать код?

Редактировать: считать прочитанным, что я кодирую файловую систему, используя профили GenericSetup для изменения настроек. Я знаю, что внесение изменений в ZMI - плохая идея, и в целом держаться подальше. Но иногда ZMI, безусловно, полезен: для проверки рабочего процесса, проверки разрешений элемента контента или установки только одной части профиля через portal_setup. Неужели ничего не стоит знать о ZMI? Или есть другие полезные маленькие лакомые кусочки?

Ответы [ 8 ]

9 голосов
/ 26 февраля 2011

В ZMI есть несколько мест, к которым я возвращаюсь для диагностической информации:

  • / Control_Panel / База данных: выберите точку монтирования ZODB.Вкладка «Параметры кэша» показывает, какой объем указанного вами размера кэша ZODB был использован.На вкладке «Активность» показано, сколько объектов загружается в кэш и записывается с течением времени.

  • / Control_Panel / DebugInfo / manage: много информации, в том числе показывает, какой запрос каждый поток обслуживает в текущий момент.момент.Ссылки «Cache detail» и «Cache Extreme Detail» дают информацию о том, какие классы объектов в данный момент находятся в кеше ZODB.

  • Вкладка «Компоненты» корня сайта Plone: ​​быстрый способ увидетькакие локальные адаптеры и утилиты прописаны.НЕ НАЖИМАЙТЕ КНОПКУ ПРИМЕНЕНИЯ!

  • Вкладка отмены большинства объектов: посмотрите, кто совершил транзакции, затрагивающие объект в последнее время.

  • Вкладка «Безопасность»: Посмотрите, какие разрешения действительно действуют для объекта.Вы действительно не хотите менять разрешения здесь 90% времени;слишком сложно отслеживать, где установлены разрешения, и они могут быть сброшены рабочим процессом.Вместо этого используйте вкладку «Общий доступ» в пользовательском интерфейсе Plone для назначения локальных ролей.(Единственное исключение состоит в том, что мне часто бывает удобно включить разрешение на добавление для определенного типа в определенных контекстах.) В Zope 2.12 на этой вкладке появилась новая функция для ввода имени пользователя и просмотра того, какие разрешения и роли будут вэффект для этого пользователя, что удобно.

  • Вкладка каталога portal_catalog: посмотрите, какие данные индекса и метаданные хранятся для определенного пути.(Можно также удалить фиктивные записи из индекса.)

  • Вкладка «Индекс» portal_catalog: выберите индекс, затем щелкните его вкладку «Обзор», чтобы получить обзор того, какие ключи индексируются и какие элементысвязанный с каждым ключом.

7 голосов
/ 24 февраля 2011

Ключевым моментом, который необходимо знать, является то, что, хотя многие инструменты ZMI обеспечивают быструю настройку через Интернет, настройки, которые вы делаете таким образом, трудно экспортировать из базы данных. Таким образом, они не легко перемещаются из среды разработки в рабочую среду или из одного развертывания в другое.

В идеале, новый разработчик должен использовать ZMI, чтобы исследовать и находить точки вмешательства. Затем узнайте, как реализовать те же самые изменения в надстройках политики (продуктах), которые гораздо более воспроизводимо перемещаются из одного развертывания в другое.

6 голосов
/ 24 февраля 2011

Если вы хотите написать код для Plone, лучше избегать ZMI. Концепция работы через ZMI очень ограничена и обескуражена - все больше и больше вещей там недоступны, и в какой-то момент они исчезнут.

Фактические панели управления Plone предлагают вам большинство вариантов конфигурации, которые вы можете использовать. Для всего остального лучше всего искать файловую систему.

4 голосов
/ 28 февраля 2011

Я согласен с другими авторами, что вам не нужно слишком много настраивать через ZMI, поскольку это не относится к управлению версиями, и вы можете легко потерять отслеживание изменений.

Но ZMI по-прежнему очень полезендля отладки и просмотра определенных конфигураций сайта.

Вот некоторые инструменты в ZMI, к которым я регулярно обращаюсь:

  • portal_javascripts : отключить отладку.Проверка наличия сценариев, каковы их условия для рендеринга и они найдены?
  • portal_css : в основном то же, что portal_javascripts, но для таблиц стилей.
  • portal_types: чтобы узнать, что такое свойства типа.Можно ли его создать глобально?Какие типы вы можете создать внутри?Каков его вид по умолчанию?И т. Д.
  • portal_catalog : Какие существуют индексы?Какие метаданные есть в каталоге?Вы можете очистить и перестроить каталог и даже просматривать каталог.
  • portal_workflow : Какие состояния / переходы / разрешения имеются в определенном рабочем процессе?Какой рабочий процесс активен для определенного типа?
  • portal_properties / site_properties : просмотр и установка свойств для всего сайта.Многие из этих настроек находятся в plone_control_panel (т.е. за пределами ZMI), но здесь они находятся на одной странице, и ZMI быстрее перемещается.
  • portal_skins : Посмотрите, какие папки скиновустановлены.Смотрите порядок расположения слоев кожи (через вкладку свойств).Вы также можете редактировать шаблоны, таблицы стилей и JavaScript в каталогах скинов.Не рекомендуется!Но полезно для отладки.
  • portal_setup : Некоторые очень большие и сложные веб-сайты Plone могут сломаться, если вы просто добавите / удалите / переустановите надстройки.Часто безопаснее просто запустить конкретное обновление GenericSetup.Например, если вы добавили новый портлет, скорее импортируйте определенный шаг (portlets.xml) через portal_setup (вкладка импорта), а затем переустановите весь продукт.
  • portal_actions : настройкакакие действия видны / присутствуют.
  • portal_quickinstaller : Быстрая переустановка, удаление надстроек.Часто быстрее и легче, чем загрузка эквивалента Панели управления Plone.
  • acl_users : Иногда при использовании надстройки, такой как LDAPUserFolder, вам придется копаться в acl_users для его настройки и тестирования.,Вы также можете создавать пользователей здесь, хотя это лучше сделать через панель управления Plone (т.е. не в ZMI)

Существует множество других инструментов и вещей, которые можно настроить (и нарушить ваш сайт) вZMI, но вышеупомянутые - то, что я использую 90% времени.

2 голосов
/ 24 февраля 2011

Утилита portal_historiesstorage может занимать много места на диске. Любой тип контента, установленный для сохранения ревизий, сохраняет их здесь, и по умолчанию Plone сохраняет все ревизии (см. Инструмент portal_purgepolicy).

Я хочу, чтобы все ревизии производственной версии Data.fs, но после получения копии для разработки, первое, что я делаю, - это очистка portal_historiesstorage. Процедура:

  • Перейдите на свой сайт Plone в ZMI
  • Удалить инструмент portal_historiesstorage
  • Перейти к portal_setup, вкладка "Импорт"
  • В разделе «Выбрать профиль или снимок» выберите «CMFEditions»
  • Выберите шаг с помощью обработчика Products.GenericSetup.tool.importToolset
  • Снимите флажок «Включить зависимости?»
  • Нажмите «Импортировать выбранные шаги», чтобы повторно добавить portal_historiesstorage
  • Упакуйте Data.fs и удалите полученный Data.fs.old из файловой системы

На моем 3G Data.fs эта маленькая последовательность удаляет 2.5G!

Я когда-либо делал это только для разработки Data.fs. Без совета от кого-то, кто действительно знает, я не рекомендую делать это на вашей производственной площадке.

1 голос
/ 24 февраля 2011

Да, ZMI предназначен для периодической задачи обслуживания или, при нажатии, быстрой и грязной настройки CSS или шаблона. Он не предназначен для какой-либо реальной работы по «кодированию», и в контексте Plone его лучше всего считать странным и минимально полезным пережитком истории Zope.

1 голос
/ 24 февраля 2011

Интегратору или разработчику, как правило, нет причин обращаться к другому ZMI для возможных задач обслуживания. Практически любая настройка может быть выполнена с использованием Python или профиля GenericSetup. Преимущество профилей: повторяемость - возможность поддерживать в файловой системе - возможность поставить файлы под контроль версий.

Возможность работать и настраивать вещи через ZMI частично работает против Plone - особенно, когда Plone делает дополнительные вещи под капотом. Таким образом, единственная рекомендация может быть: остаться ZMI, если вы можете. ZMI не является подходящей заменой для использования пользовательского интерфейса Plone, и его следует использовать только в том случае, если вы действительно знаете, что делаете.

0 голосов
/ 27 февраля 2011

portal_actions также полезен для более гибкой навигации верхнего уровня. но опять же лучше всего настроить через gnericsetup.

...