Podpora nastavení portletů
Autor: Jan Pokorný
—
Poslední změna:
Úterý 27.07.2010 22:00
Nahoru o jednu úroveň
Dobrý den,
vytvořil jsem si v Plone 3 vlastní AT Content type, ale když se nyní u vytvořených objektů snažím volat @@manage-portlets, píše mi to Litujeme, ale tato stránka neexistuje...
Musí se v definici Content Type nějakým způsobem volat podpora správy portletů?
Předem děkuji za radu.
Ne, standardne neni nutne nic zvlastniho nastavovat. Zkuste v ZMI/error_log odebrad vyjimku NotFound a vyvolat chybu znovu. V tracebacku by se mozna dalo neco noveho dohledat. Poslete jej sem.
Take muzete zkontrolovat, pro jaky typ je registrovan @@manage-portlets view. Predpokladam ze bude pro vsechny (nedival jsem se) a pak neni duvod aby Plone vypisovalo "Litujeme". Chyba bude nekde jinde....
Díky za odpověď. V error logu se vypisuje stejná chyba jako před tím:
Traceback (innermost last):
Module ZPublisher.Publish, line 110, in publish
Module ZPublisher.BaseRequest, line 504, in traverse
Module ZPublisher.HTTPResponse, line 674, in notFoundError
NotFound:
U manage-portlets view je psáno:
view name
manage-portlets
registered for interface
plone.portlets.interfaces.ILocalPortletAssignable
registered for request type
zope.publisher.interfaces.browser.IDefaultBrowserLayer
template file
C:\Program Files\Plone 3\Python\lib\site-packages\plone.app.portlets-1.1.5.1-py2.4.egg\plone\app\portlets\browser\templates\manage-contextual.pt
zcml file
plone.app.portlets.browser/configure.zcml
Site Error
An error was encountered while publishing this resource.
Resource not found
Sorry, the requested resource does not exist.Check the URL and try again.
Resource: http://www.hradeckymkrajem.cz/kraj/ostas/@@manage-portlets
Troubleshooting Suggestions
- The URL may be incorrect.
- The parameters passed to this resource may be incorrect.
- A resource that this resource relies on may be encountering an error.
For more detailed information about the error, please refer to the error log.
If the error persists please contact the site maintainer. Thank you for your patience.
Bohužel nerozumím tomu, jakým způsobem se view registrují, takže to nemohu ani zkontrolovat
U manage-portlets view je psáno:
view name
manage-portlets
registered for interface
plone.portlets.interfaces.ILocalPortletAssignable
registered for request type
zope.publisher.interfaces.browser.IDefaultBrowserLayer
template file
C:\Program Files\Plone 3\Python\lib\site-packages\plone.app.portlets-1.1.5.1-py2.4.egg\plone\app\portlets\browser\templates\manage-contextual.pt
zcml file
plone.app.portlets.browser/configure.zcmlV diskusich jsem narazil na to, ze to nekolik lidi take trapi, napr.:
http://groups.google.com/group/plone-users/msg/4ac2f2dbc6b4d852
ale nikde neni zatim naznaceno reseni.
Podle dostupných informací musí mít každý custom content type deklarovaný interface, který místní nstavení portletů umožňuje, konkrétně:
class ILocalPortletAssignable(IAttributeAnnotatable):
"""Marker interface for content objects that want to have local portlet
assignments.
"""
Nemám však tušení, kam mohu do svého produktu tuto deklaraci napsat. Nepoužívám egg, ale klasický produkt.
Poradí te mi, prosím?
Pokud je váš typ zděděný z ATContentTypes, pak tento interface již implementuje. Viz plone.app.portlets/configure.zcml:
<class class="Products.ATContentTypes.content.base.ATCTMixin">
<implements interface="plone.portlets.interfaces.ILocalPortletAssignable" />
</class>
Pokud není, pak můžete podobný řádek přidat do vašeho configure.zcml nebo ve vaší třídě použít:
from zope.interface import implements
from plone.portlets.interfaces import ILocalPortletAssignable
class MujTyp(...):
implements(IMujTyp, ILocalPortletAssignable)
Založeno na Ploneboard
