Personal tools
You are here: Home Quills Blog Topics Plans

Plans

Oct 12, 2007

Response to MrTopf

by tim2p — last modified Oct 12, 2007 05:32 AM

Christian Scholz has posted some thoughtful comments on blogging in Plone. He mainly discusses Quills, but some of his previous experiences are now outdated...

"Getting the Blogging story right in Plone" is a good post, getting to lots of the problems that we see and have seen in blog products in Plone. I just want to respond to a few of the specific points as Tom Lazar and I have been working on many of them for the upcoming Quills 1.6 and "2.0" (that version number is not set in stone yet, I'd say) releases.

So what’s wrong with blogging in Plone right now? Mainly I think it’s commenting, at least this is the reason why I switched my COM.lounge TV blog to Wordpress. With Quills I had several problems back then. Some might be due to the version I used (it simply seemed to be bugs) but the most important was trackback spam actually.

Yup. Commenting sucks in Plone. This is something that Plone needs to fix, not Quills. Happily, people do seem to be working on this area. See the new release of easycommenting (which I haven't had a chance to try out yet).

Trackback is something that the Quills project should handle. For the 1.6 release, we have recognised that our implementation is not nearly as good as it should be, and so ship without it. That's better than shipping with something unusable (due to spam) as was the case in Quills 1.5, but obviously it's not optimal to ship without this important functionality. My view is that trackback should share lots of code with commenting, so careful work on the latter has the potential to push forward the former as well.

enable every content or folder to be turned into a blog. This was an idea I had a while back and it seemed that Tom had it, too :-) It probably is simply about adding some marker interface to a folder to enable various blogging features.

This is what is slated to be be Quills 2.0. There is code that does this in the collective under the QuillsEnabled project. It worked a couple of months ago, but is currently broken (I expect) as the code it shares with Quills 1.6 was refactored somewhat, without these changes being reflected in QuillsEnabled... yet. I believe Tom plans to sprint on this after the Plone Conference!

If a folder is marked as a blog it might enable a blogging API for using a blog editor

See QuillsEnabled :).

If a folder is marked as a blog it might have technorati tags as a viewlet available

This may be something that PloneBookmarklets does or could address.

enable blogging APIs (the more we can provide the better) to also edit non-blog content, like normal pages or news items (what’s the difference anyway?)

See QuillsEnabled :). We currently have a MetaWeblogAPI implementation that will work with standard plone content as soon as QuillsEnabled is updated. I know Tom is keen on AtomPub. Ian Bicking appears to be working in this area as well, albeit not explicitly for Plone.

Enable simple statistics on your blog. It would be nice to directly be able to see a rough click count per entry a la Wordpress, the same would be nice for your RSS subscribers.

I agree this would be nice, but has to be something the Plone and/or its documentation handles, I think.

Enable a "more" section on posts which doesn’t show up in the overview listing or the RSS feed.

Quills basically has this already. The weblog view can be told to only display entry summaries (i.e. the standard AT description field), instead of the full text. This is not wired up to the syndication feeds yet, I believe. But that should be easy enough for an only slightly enterprising hacker :).

Enable a feed per category (should be easily doable with collections but making it even easier for end-users or even automatic might be nice)

Quills has had this since 1.5. Append /@@atom.xml to any of the 'topics' URLs, and you get an atom feed for that topic. Likewise for the other feed types we offer. e.g. http://quills.sitefusion.co.uk/blog/topics/Core/@@atom.xml.

So, Quills already offers lots. And where it doesn't quite meet expectations, we have code in the works to address them. Things are getting better :).

Jun 04, 2007

My SoC Proposal in Full

by tim2p — last modified Jun 04, 2007 04:41 AM
Filed Under:

The motivation for the proposal was/is to provide a more compelling weblog solution for Plone. It is hoped that this will be useful in and of itself, but also as a way of attracting users to the Plone platform more generally.

Weblog

First, following the pattern used by plone4artistscalendar, provide a TTW/TTP facility to mark individual content objects - like "Folders" and "Smart Folders" - with an interface that causes the default view for the object to switch to a weblog-ish view based on the "IWeblog" interface. Further, such a marker interface could/should cause extra options to become available for the purpose of providing more weblog-specific configuration options. I propose to store this configuration data in "IAnnotations".

Second, provide adapters for those types that are markable as a Weblog to an IWeblog interface. The major part of the implementation would be fetching those (sub)objects that should form part of the weblog. Each of those (sub)objects would, in turn, be adapted to an "IWeblogEntry" interface. Thus, the use of arbitrary (and standard) Plone content types as weblog entries would be made possible simply by providing adapters for each to the "IWeblogEntry" interface. The implementation would provide such adapters for the "Page", "Image", "Link", "Event", "News Item", and "File" standard Plone content types.

Third, provide a traversal adapter that allows such a repurposed container-ish content object to use archive-by-date URLs of the form "[containerish]/2006/05/06/[weblog-entry-id]". This is a standard weblog feature. As an intermediate step, the implementation would also require the provision of a non-persistent WeblogArchive class. Instances of this class would be injected into the traversal path by the Smart
Folder traversal adapter, and would then allow for archive listing views to be used on URLs of the form "[containerish]/2006/05/". I have worked on a partially complete branch of Quills implementing this traversal feature already exists on the maurits-traversal branch. It has issues at the moment, but provides a good base to build from.

Trackback

Completion of the plonetrackback product that allows for trackback pings to be sent to and from arbitrary Plone content objects. The core implementation is largely complete, with just unit tests and more complete integration with the CMF/Plone catalog required. However, the major impediment to the usage of trackback is ping spam. In order to make the product truly usable, some kind of moderation queue system is a necessity. (This is true to a large extent for commenting in plone, IMHO.) Optional integration with the Akismet service would be desirable - and very possible given the two python Akismet wrappers and the Akizmet Zope product - but is probably reliant on implementation of moderation to be effective. Simplistic moderation for trackbacks should be fairly trivial to implement, but I wonder if there is a more generic approach that could/should be taken. The existing workflow machinery is an obvious candidate for reuse here, but the current plonetrackback implementation probably doesn't play nicely with that. I'd be grateful for guidance from a mentor in this area.

Update Pings

Provide a component-enabled tool/utility that allows for update pings to be sent to services such as Technorati. This would be equivalent to the functionality offered by qPingTool, but implemented in a way that is agnostic to the object types that update pings should be made for (by using adaptation). With the introduction of workflow transition events in CMF 2.1, I propose to listen for "publish" transitions and send pings as appropriate. This will require some TTW/TTP configuration for the object types and locations to listen for.

Remote Blogging

Provide remote authoring functionality with Zope3 views. The current Quills implementation of "MetaWeblogAPI" works as a persistent attribute on weblog objects, which makes it more complicated than it should be to disable the feature. Migration code is also potentially more complicated, and a hard dependency on the "RPCAuth" product (to provide authentication) is introduced to the Quills product. The latter relies on something of a hack to achieve its goal. None of this is desirable, and none of it is necessary. Non-persistent views that authenticate via a custom PAS plugin offer a way around all of this, with the added bonus of considerably enhancing the potential for reuse by other products.


p.s.  On the issue of motivation for getting Plone blogging software up to date, see Jon Stahl on how blogs can capture users for plone.