Blog

Back from the Plone Open Garden in Sorrento

erstellt von Philip Bauer zuletzt geändert: 2013-04-09T19:08:30+01:00
If you do Plone, come to PLOG next year. Bring your family.

A poster I once designed for World Plone Day said "There is no place like Plone".

wpd.png

The community surrounding Plone is in fact like family for many of us. The Plone Open Garden in Sorrento is one of the events where the Plone-family meets the Plonistas family. It was a near-perfect mixture between a holiday, a sprint and a conference.

Imaging sitting under palmtrees drinking a nice cappucino and doing some light coding while the former president of the Plone foundations splashed around in the pool with his daughter. Add to that the sight of Vesuvius, loads of italian food, great presentations and many people to have engaged discussions with. Bliss.

plog_hiking.jpg

You can even go hiking in the hills above Sorrento

It was also a very productive week. We managed to get a lot of work done  in plone.app.contenttypes that should make it ready for Plone 4.4. I gave a short talk about its state. The slides are not too informative without the demo. But I encourage everyone to use it for your next project or even try migrating a website. A new release will be out in a couple of days.

Thanks to the guys from Abstract for organizing PLOG, special thanks go to Maurizio for his infectious enthusiasm and optimism.

In short: If you do Plone, come to PLOG next year. Bring your family.

See you next year. Be prepared to meet my family :-)

Report from the Munich-leg of the Wine-and-Beer-Sprint

erstellt von Philip Bauer zuletzt geändert: 2013-01-30T13:39:12+01:00
tl;dr: Successful Plone Sprint roundup mentioning wormhole, beer, white sausages and huge progress in the plone.* namespace :)

Last week about 40 people met from Thursday to Sunday in Syslab's Office in Munich for the Wine and Beer Sprint to push Plone forward. I was awed by the large number of people willing to attend, we actually had to close the list a few days before the event since having more than 40 people in the office would have been too bad for air-quality. As it turned out, Syslabs office is a great location to host a sprint since it not only has one huge room but also several smaller ones where groups of people could work in conclave.

We had a mixed crowd of seasoned (2/3) and first-time (1/3) sprinters. What was especially great was the attendance of some people from the local Python user group (that recently merged with the Plone user group), one of them a django-guy who took his first steps with Plone.

Munich was frozen solid during the sprint, a fact that was driven home by the people from the other leg of the sprint (in Capetown, South Africa) who were sitting in the sun wearing t-shirts grinning at us through the wormhole we set up to link the sprints. From what we could understand (wormhole-technology is still only in alpha-state) they had a great time even though they could not get ice for their drinks by stepping outside.

The sprint was very productive, here are some noteable results:

  • The team working on plone.app.multilingual managed to get a release-candidate out. The next-generation translation machinery (that works for Dexterity and Archetypes) is production-ready. At Starzel.de we've been using early stages of it in production together with plone.app.contenttypes for over a year now and are very happy.
  • Together with Timo Stollenwerk I was trying to get people to work on plone.app.contenttypes since I believe that Plone with dexterity-based default-types is a huge win for users (who can extend their types without paying a developer) and developers (who can focus on more challenging tasks than creating simple content-types). We managed to release 1.0b1, although not all features made it into the release and the documention needs more love. Thanks to the work of many (inluding Carsten Senger, Pavel Bogdanovic, Manuel Reinhardt, Tom Blockley, David Glick and my dear coworkers Patrick Gerken and Steffen Lindner) the package now has migrations from Archetypes, working indexes, robot-framework-tests and much more. Timo and me will work on a PLIP for it.
  • A group around the tireless Nejc Zupan managed to release Version 1.0rc1 of plone.api, an effort started at the Plone Konferenz 2012 in Munich (with a "k").
  • Some people worked on Patterns, a javascript-framework aiming to bring webdesign and development together. They fixed a ton of bugs and revamped their website. Rok Garbas worked on making patterns useable in Plone, most noteably plone.app.toolbar and plone.app.widgets.
  • Domen Kožar worked on mr.bob [http://mrbob.readthedocs.org/en/latest/], a successor to paster.
  • Besides working on plone.app.contenttypes Timo Stollenwerk also worked on getting rid of formlib and portal tools. Now all control panels have been migrated to either plone.autoform or plone.app.registry. Timo also held a tutorial on test-driven-development in which he started collective.ploneboard, a rewrite of Products.Ploneboard from scratch with Dexterity and plone.app.discussion. Plus: Timo learned that Augustiner Edelstoff is really good beer :-)
  • Plone.de and the Website of the Python Software Verband have been updated, enhanced and their code moved to github.
  • We saw a very promising sneak preview of new designs and mockups for Plone.com and Plone.org.
  • After the last report-out with South-Africa I even managed to give a short plone-development tutorial by showing collective.team a workspace-ish behavior for Dexterity-folders, that sadly did not see any progress during the sprint.

The non-coding part of the sprint was also a success. The mountain of white sausages that we prepared for the Weisswurstfrühstück will stay in my memory forever. Contrary to the title of the sprint, coffee, Club Mate and Single Malt Whiskey were more popular than beer.

Thanks to Alex Pilz and Florian Friesdorf who not only volunteered their offices to the sprint but also did most of the organizing and were great hosts. Thanks to the Python Software Verband for sponsoring beverages and food.

The biggest thanks goes to the many sprinters who chose to spend their time to come to the sprint to improve Plone when they could have done so many other things. The spirit of friendship and the dedication of people in the Plone Community to give back continues to humble me and makes me glad and greatful to be part of that.

wpd.countdown portlet - Counting days to World Plone Day

erstellt von Steffen Lindner zuletzt geändert: 2013-02-22T19:58:00+01:00
wpd.countdown is a portlet for promoting the upcoming World Plone Day 2013.

To support the upcoming World Plone Day, we created wpd.countdown, a portlet counting down the days to the World Plone Day - 24.4.2013.

Help us spread the word about the World Plone Day and embed the portlet into your Plone site. The installation is easy and documented on PyPi. The portlet has a nice configlet for customizing the date and the linked URL. If you host an WPD Event, put your link in.

The code is in the collective on Github. We already added the Portlet on plone.de and starzel.de :)

wpd.countdown was developed by Starzel.de based on wpd.mmxi.countdown by Simples Consultoria.

How to get a different look for some pages of a plone-site

erstellt von Philip Bauer zuletzt geändert: 2014-06-30T13:03:27+01:00
It's pretty easy to attach a special look to whole sections. Styling only some pages is a different story.

I'm currently working on a site where the customer wanted some pages to look differently than others.

(I should really not do the "Hey you could also do this and that" when my time is limited!)

The pages should have a additional css and a line of text above the heading. I wanted it to look like this:

foo

Here "what if foo..." is the Name of the folder that contains the document "...hits the bar?", being the h1.

Since the old trick with body.section-foo only works for whole sections and I needed the additional text (what if foo...) anyway I decided to go with the beloved marker interfaces.

Here is how it works:

1. Add a marker interface

In your theme-product edit your browser/interfaces.py and add:

class IMySpecialStyle(Interface): 
    """Marker Interface for  Documents with a special style
    """

 

2. Register a viewlet pinned to the Interface

In your browser/configure.zcml add:

<browser:viewlet 
   name="myspecialstyle.viewlet " 
   manager="plone.app.layout.viewlets.interfaces.IAboveContentTitle" 
   template="templates/myspecialstyle_viewlet.pt" 
   layer=".interfaces.IThemeSpecific" 
   for=".interfaces.IMySpecialStyle" 
   permission="zope2.View" 
   /> 

<browser:resource 
   name="myspecialstyle.css" 
   file="resources/myspecialstyle.css" 
   /> 

The line for=".interfaces.MySpecialStyle" activates the viewlet only for content which have the marker-interface. The viewlet-manager IAboveContentTitle inserts the viewlet just before the h1-tag of the targeted document.

 

3. Add content and styles

Now add a file browser/templates/myspecialstyle_viewlet.pt containing:

<link href="myspecialstyle.css" rel="stylesheet" type="text/css" 
      tal:attributes="href string:${context/portal_url}/++resource++myspecialstyle.css"/>

<div id="myspecialstyle-viewlet">
   <h2 class="myspecialstyle-header" 
       tal:content="python: context.getParentNode().title">
          what if foo ...
   </h2>
</div>

Instead of "getParentNode.title" I could also enter the expected line of text by hand. But like this I can reuse it for other folders.

Keep in mind that for default-pages you might want the 'grandparent‘, so you could use this

tal:define="is_default_page context/@@plone_context_state/is_default_page"

to check if it's a default page, and

tal:condition="is_default_page"
tal:content="python context.getParentNode().getParentNode().title"

to get the grandparents title.

Now create browser/resources/myspecialstyle.css and add:

#myspecialstyle-viewlet {
	position: absolute;
}

.myspecialstyle-header {
	bottom:1.45em;
	font-family: "Arial Black";
	font-size: 500%;
	font-weight: bold;
	left:-22px;
	color: #e1e1e1 !important;
	position:relative;
	z-index: 0;
}

h1.documentFirstHeading {
	z-index: 1;
	position: relative;
	padding-top: 10px;
}

 

4. Use it

Restart Zope. In ZMI go to the page in question (or rather add /manage_interfaces to it's url), select IMySpecialStyle from the available Marker Interfaces and add it.

If you remove everything from the viewlet except for the <link ...>-stuff you get a really simple way to style some selected pages.

 

 

World Plone Day 2013 in Munich

erstellt von Steffen Lindner zuletzt geändert: 2013-04-12T13:07:48+01:00
On April 24 another WPD is upon us. We'll meet in the Seidlvilla in the heart of Munich-Schwabing.

On April 24 another WPD is upon us. We'll meet in the Seidlvilla in the heart of Schwabing.

This year Starzel.de will be presenting three talks (in german):

  • "What is Plone", a presentation of features, use-cases and the roadmap by Philip Bauer.
  • "The Plone eco-system", a wild ride through the architechture underlying Plone and how it relates to other technologies by Steffen Lindner and Patrick Gerken
  • "Pimp my Plone", a very biased presentation of favorite addons by Philip Bauer

The complete Programm can be found here. There is plenty of time for questions and discussions that can be continued into the evening when we move to a beergarden.

Attendance is free, there will be food, but sadly no cupcakes (picture taken from http://davidjb.com/blog/2010/04/good-morning-world-plone-day)