Skip to main content

Provide templated views with schema settings associated with them.

Project description

Introduction

This package allows you to define a set of views, schemas, and templates that can be used as templates for a view on a Plone site.

So basically, it just allows an easy mechanism to provide extra, reusable templates that have settings attached to them. Each template that you fill in the settings for, can then be referenced from another template view on the site elsewhere.

Basic example

Define your settings:

>>> class ICustomSettings(Interface):
>>>     setting_one = schema.TextLine(title=u'Setting One')
>>>     setting_two = schema.Text(title=u'Setting Two', default=u'')

Define a template view utility:

>>> from wildcard.templatedviews.browser import BaseViewUtility
>>> from plone.app.form.widgets.wysiwygwidget import WYSIWYGWidget
>>> class CustomTemplateViewUtility(BaseViewUtility):
>>>     settings = ICustomSettings
>>>     _for = None
>>>     title = u'Custom Template'
>>>     description = u'a custom template settings.'
>>>     custom_widgets = (
>>>         ('setting_one', WYSIWYGWidget),
>>>     )

And wire it up with zcml:

>>> <browser:page
>>>   for="*"
>>>   name="custom-template"
>>>   class="wildcard.templatedviews.browser.BaseView"
>>>   template="templates/custom-template.pt"
>>>   permission="zope2.View"
>>> />
>>> <utility factory=".CustomTemplateViewUtility" name="custom-template" />
>>> <adapter
>>>   for="*"
>>>   provides=".ICustomSettings"
>>>   factory="wildcard.templatedviews.settings.TemplateViewSettings"
>>> />

Then in your custom-template.pt, you can use the settings like this:

>>> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
>>>       xmlns:tal="http://xml.zope.org/namespaces/tal"
>>>       xmlns:metal="http://xml.zope.org/namespaces/metal"
>>>       xmlns:i18n="http://xml.zope.org/namespaces/i18n"
>>>       lang="en"
>>>       metal:use-macro="here/main_template/macros/master"
>>>       i18n:domain="plone">
>>> <body>
>>>
>>> <metal:main fill-slot="main" tal:define="settings python: view.settings">
>>>   <tal:main-macro metal:define-macro="main">
>>>     <h1 tal:content="python: settings.setting_one" />
>>>     <p tal:content="structure python: settings.setting_two" />
>>>   </tal:main-macro>
>>> </metal:main>
>>> </body>
>>> </html>

You’ll also need to add the ‘templated-view’ view to the list of available views on the content type you’d like to use this for.

Now to use it after you’ve installed it, select “templated-view” from the display drop down, then use the “Select Template” and “Template Settings” to customize your templated view.

Check out the source for more examples on how to use it.

Changelog

1.0b4 (2012-08-27)

  • fix use of transform

1.0b3 (2012-08-09)

  • plone 4.1 compat

  • transform uids

1.0b2 (2011-10-25)

  • if traversing to object doesn’t work, try looking it up in the redirect storage

1.0b1 (2011-04-13)

  • provide save events for settings and selected template

  • allow ordering of fields

1.0a2 (2010-04-10)

  • fix issue when no utilty can be found

  • add more utility methods to view

1.0a1 (2011-03-20)

  • Initial release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wildcard.templatedviews-1.0b4.zip (27.5 kB view details)

Uploaded Source

File details

Details for the file wildcard.templatedviews-1.0b4.zip.

File metadata

File hashes

Hashes for wildcard.templatedviews-1.0b4.zip
Algorithm Hash digest
SHA256 75856aa828eaf56f340e7f1cafff2119e9315cd56d09a04a2d8f1dadea165b70
MD5 4f0b7421280a11c2a6edcf86fad34bd8
BLAKE2b-256 2105dc3f6ac7292dca96a80b2f0fc5448a2d57e56f5cc3bac858a191553ba60e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page