Ein View für Plone 5 erstellen

In einem Plone 5 Produkt ein View erstellen

In das Verzeichnis "browser" des Produkt wechseln.
Hier  die Datei myview.py mit folgendem Inhalt erstellen:

 

from zope.interface import implements, Interface
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
from Products.Five import BrowserView
from Products.CMFCore.utils import getToolByName

class IMyView(Interface):
pass

class MyView(BrowserView):
implements(IMyView)

index =  ViewPageTemplateFile('myview.pt')

def __init__(self, context, request):
self.context = context
self.request = request

@property
def portal_catalog(self):
return getToolByName(self.context, 'portal_catalog')

@property
def portal(self):
return getToolByName(self.context, 'portal_url').getPortalObject()

def mydata(self):
data = {}
data['title'] = 'Title from view'
data['text'] ='This is some example Text'
return data

Jetzt brauchen wir noch das passende PageTemplate mit dem Dateinamen myview.pt

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en"
metal:use-macro="here/main_template/macros/master">
<body>
<div metal:fill-slot="main">
<tal:main-macro metal:define-macro="main"
tal:define="data view/mydata">

<h1 class="documentFirstHeading" tal:content="data/title"> MyView </h1>
<p tal:content="data/text"> Text </p>

</tal:main-macro>
</div>
</body>
</html>

Als letztes müssen wir den View noch registrieren. Hierfür bearbeiten wir die configure.zcml und fügen folgenden Eintrag hinzu:

<browser:page
for="*"
name="my_view"
class=".myview.MyView"
template="myview.pt"
allowed_interface=".myview.IMyView"
permission="zope.Public"
/>

Nun können wir den View in der URL über /my_view oder falls es schon ein entsprechendes Objekt gibt über /@@my_view aufrufen.

Neuen Kommentar hinzufügen

Sie können einen Kommentar abgeben, indem Sie das unten stehende Formular ausfüllen. Nur Text.

Ihre E-Mail-Adresse wird nicht veröffentlicht