Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install collective.portlet.contentprovider

How to install collective.portlet.contentprovider

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install collective.portlet.contentprovider
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
1.1 Available View build log
1.0 Failed View build log
Windows (64-bit)
1.1 Available View build log
1.0 Failed View build log
Mac OS X (10.5+)
1.1 Available View build log
1.0 Failed View build log
Linux (32-bit)
1.1 Available View build log
1.0 Failed View build log
Linux (64-bit)
1.1 Available View build log
1.0 Failed View build log
 
Author
License
GPL
Dependencies
Lastest release
version 1.1 on Apr 2nd, 2011

Introduction

collective.portlet.contentprovider allows you to put content providers like viewletmanagers into portlets. This tool is meant for use by experienced theme developers since real-life use is going to require the ability to rewire viewlets and viewlet managers in ZCML and Generic Setup profiles.

Installation is typical for a Plone add on. Add collective.portlet.contentprovider to your eggs list in your buildout. If using an early version of plone, also add it to the zcml slugs.

Using collective.portlet.contentprovider

Use is probably best demonstrate with a real use case: adding a Products.Carousel slideshow to a portlet. Normally, Carousel adds its banner viewlet, Products.Carousel.viewlet, to the IContentViews viewletmanager. Let's say we wish, instead, to display it in a collective.portlet.contentprovider portlet.

Viewlets aren't meant for use as direct content providers (they need a manager), so we need to tell a contentprovider portlet to show a viewletmanager that displays Products.Carousel.viewlet. So, we could just add a contentprovider portlet and tell it (in the provider field in the portlet editor) to display plone.contentviews. This works, but it also drags in everything else handled by plone.contentviews.

So, to do this right, we need to do the typical viewlet dance for moving viewlets from one manager to another. We'll also make use of the fact that collective.portlet.contentprovider registers a viewlet manager that isn't used anywhere else. So, in our theme product's configure.zcml, all we need to do is set that manager to handle the carousel

<browser:viewlet

System Message: ERROR/3 (<string>, line 36)

Inconsistent literal block quoting.

name="Products.Carousel.pviewlet" for="*" manager="collective.portlet.contentprovider.interfaces.IContentProviderPortlet" class="Products.Carousel.browser.viewlet.CarouselViewlet" permission="zope2.View" layer=".interfaces.IThemeSpecific" />

And, in our viewlets.xml setup file, hide the Carousel viewlet in the old manager:

<hidden manager="plone.contentviews" skinname="plonetheme.ucdvaw">
<viewlet name="Products.Carousel.viewlet"/>
</hidden>

Finally, just add a contentprovider portlet and tell it to display collective.portlet.contentprovider_vmanager.

Changelog

1.1
  • Fix missing file in initial release
1.0
  • Initial release

Subscribe to package updates

Last updated Apr 2nd, 2011

Download Stats

Last month:1

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.