NB: This blog has moved to http://www.teamrubber.com/rubber/?cat=3 – planet.plone.org hasn't been updated with the new feed yet. If you feel the urge to comment please do so there
Showing posts with label plone. Show all posts
Showing posts with label plone. Show all posts
Wednesday, 2 January 2008
A taste of GHOP
Something slightly less rubbery is the GHOP competition I mentioned a few weeks back. I thought I'd update everyone and put up some screenshots of the themes that our GHOP participants have created to date. These are all plone 3 themes, and in the collective to play with right now.




NB: This blog has moved to http://www.teamrubber.com/rubber/?cat=3 – planet.plone.org hasn't been updated with the new feed yet. If you feel the urge to comment please do so there
NB: This blog has moved to http://www.teamrubber.com/rubber/?cat=3 – planet.plone.org hasn't been updated with the new feed yet. If you feel the urge to comment please do so there
Wednesday, 12 December 2007
GHOP help needed (with pretty graph)
If you haven't heard of GHOP yet, check out optilude's blog post on the subject.
... right, now everyone's up to speed, here's a pretty graph from the statistics that have been sent around everyone on the admin email list:

You'll notice we're dead last in terms of students claiming tasks. I don't accept that plone is inherently less interesting than these other projects, so we've just not got the right tasks.
Please, take the time to have a look at the list of available tasks and submit new ideas to the wiki. If you've got some more free time, email optilude and volunteer to help out by maintaining the task list and helping students.
This is a great opportunity to get young people involved in the community and have some niggling issues fixed, let's not waste it.
... right, now everyone's up to speed, here's a pretty graph from the statistics that have been sent around everyone on the admin email list:
You'll notice we're dead last in terms of students claiming tasks. I don't accept that plone is inherently less interesting than these other projects, so we've just not got the right tasks.
Please, take the time to have a look at the list of available tasks and submit new ideas to the wiki. If you've got some more free time, email optilude and volunteer to help out by maintaining the task list and helping students.
This is a great opportunity to get young people involved in the community and have some niggling issues fixed, let's not waste it.
Friday, 28 September 2007
Miami, er, Bristol Vice
We've been working on the new Vice syndication project, integrating it into our new Viral Content Manager system. Although the system is still pre-alpha it is very impressive! The basic structure of our content types is:
ContentItems are contained in a folderish portal tool, and contain a reference to
We now have working RSS and ATOM feeds for the ContentItems associated with a given ContentChannel, looking like this:
and called in with:
One of the sprint tasks is creating an easy to follow, doctested, readme. Until that comes out hopefully this will help people use this brilliant addition to Plone!
Thanks derek_richardson, pbugni and everyone else who's contributed!
ContentItems are contained in a folderish portal tool, and contain a reference to
0..* ContentChannels which can be anywhere.We now have working RSS and ATOM feeds for the ContentItems associated with a given ContentChannel, looking like this:
from zope.interface import implements
from zope.component import adapts, queryMultiAdapter, getMultiAdapter
from zope.interface import Interface
from Products.VCNArchetypes.interfaces import IChannel, IViral
from plone.syndication.outbound.interfaces import IFeed, IFeedItem
import logging
from plone.app.syndication.outbound.adapters.atct import ATFeedBase, ATFeedItemBase
class ContentFeed(ATFeedBase):
"""Adapter from IChannel to IFeed.
>>> from zope.interface.verify import verifyClass
>>> verifyClass(IFeed, ContentFeed)
True
"""
implements(IFeed)
adapts(IChannel, str)
def __iter__(self):
items = self.context.getContentItems()
while 1:
yield queryMultiAdapter((items.next(), self), IFeedItem)
class ViralFeedItem(ATFeedItemBase):
"""Adapter from IViral to IFeedItem.
Make sure that ViralFeedItem implements the IFeedItem
interface
>>> from zope.interface.verify import verifyClass
>>> verifyClass(IFeedItem, ViralFeedItem)
True
"""
implements(IFeedItem)
adapts(IViral, IFeed)
@property
def url(self):
return self.context.getViral_url()
@property
def body(self):
return self.context.getViral_description()
and called in with:
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:zcml="http://namespaces.zope.org/zcml"
xmlns:five="http://namespaces.zope.org/five">
<class class="Products.VCNArchetypes.ContentChannel.ContentChannel">
<implements interface="plone.syndication.outbound.interfaces.IFeedable" />
</class>
<!-- Adapt IChannel to IFeed -->
<adapter
factory=".contentfeed.ContentFeed"
trusted="true" />
<class class=".contentfeed.ContentFeed">
<require
permission="plone.syndication.ViewFeeds"
interface="plone.syndication.outbound.interfaces.IFeed" />
</class>
<!-- Adapt IViral to IFeedItem -->
<adapter
factory=".contentfeed.ViralFeedItem"
trusted="true" />
<class class=".contentfeed.ViralFeedItem">
<require
permission="plone.syndication.ViewFeeds"
interface="plone.syndication.outbound.interfaces.IFeedItem" />
</class>
</configure>
One of the sprint tasks is creating an easy to follow, doctested, readme. Until that comes out hopefully this will help people use this brilliant addition to Plone!
Thanks derek_richardson, pbugni and everyone else who's contributed!
Subscribe to:
Posts (Atom)