<сильный>1. Зарегистрируйте представление и для контейнеров dexterity.
Представление зарегистрировано для интерфейса папки Archetypes (Products.CMFCore.interfaces._content.IFolderish
), но ваш контейнер ловкости не предоставляет этот интерфейс (но plone.dexterity.interfaces.IDexterityContainer
). Причина может заключаться в том, что продукт и/или вид несовместимы с ловкостью.
В любом случае, вы можете попробовать это сами, зарегистрировав представление также для интерфейса IDexterityContainer
, поместив немного ZCML в configure.zcml
вашего пакета (см. также Создание пакета в разделе Руководство разработчика по ловкости):
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser">
<configure package="collective.documentviewer">
<browser:page
name="dvpdf-group-view"
for="plone.dexterity.interfaces.IDexterityContainer"
class=".views.GroupView"
template="templates/group-view.pt"
permission="zope2.View"
layer=".interfaces.ILayer" />
</configure>
</configure>
<browser:page>
копируется из конфигурации collective.documentviewer. zcml, но я изменил интерфейс for=
на интерфейс контейнера ловкости, чтобы представление также работало для контейнеров ловкости.
Внутренний <configure package="collective.documentviewer">
сообщает синтаксическому анализатору ZCML, что конфигурация должна применяться так, как если бы configure.zcml находился непосредственно в collective.documentviewer
— это позволяет вам, например, использовать исходный шаблон (иначе вам пришлось бы копировать его или делать какие-то гадости).
Сам не проверял: может быть еще так, что вьюшка нуждается в контейнере архетипов и не работает с контейнером ловкости. Также может случиться так, что вам придется зарегистрировать больше компонентов из средства просмотра документов для контейнеров ловкости (может быть, меню? посмотрите, что зарегистрировано в исходный файл configure.zcml.
Если все работает хорошо, вам следует подумать о том, чтобы внести изменения в коллективный. -просьба к автору (учитывайте, что ловкость - это еще не plone-core). Но сначала спросите, если и как вы должны это сделать :-)
<сильный>2. Изменение представления по умолчанию
С помощью plone можно определить несколько представлений для определенного типа. Затем вид можно выбрать в меню отображения для каждого экземпляра этого типа. Если вы откроете http://localhost:8080/Plone/portal_types/manage_main
и нажмете на свой тип, появится поле Available view methods
, где вы можете добавить имя представления (dvpdf-group-view
) в отдельной строке.
После того, как вы создадите новый объект вашего типа или посетите существующий, у вас появится меню «Отображение», в котором должно быть указано представление. Выберите его, и этот объект теперь имеет этот вид по умолчанию.
(Если вы хотите сделать представление недоступным для выбора на других объектах этого типа, вы можете просто удалить его из конфигурации типа, чтобы его больше нельзя было выбрать - существующая конфигурация вашего объекта останется).
person
jone
schedule
03.01.2013