For the last few weeks I have been working on a new framework for Liferay Portal. We have decided to call it "Application Display Templates Framework" ("ADT Framework" for family and friends :D), and it is basically the application of our templating system to the way we see information in our applications in Liferay Portal.
The ADT Framework will allow portal admins to define via Velocity templates how to show the information on each portlet. Imagine you want to show up your blog entries horizontally, or you want to list your assets in the asset publisher in different sizes depending on where they are going to be shown: now you can do it by using custom Application Display Templates! Cool, right? :)
For the moment I have applied it to the Asset Publisher and the Blogs portlet, but I plan to apply it to Wiki, Navigation, Site Map and Tags/Categories Navigation.
How can you use it? There's a new application in the control panel called "Application Display Templates" (it's in the "Site" section) where you can add and manage the ADTs for the different apps in Liferay, and appart from that, on each on of the portlets that support ADTs (blogs and asset publisher for the moment), in the configuration screen you will be able to choose your ADTs, or the global ADTs (if available).
Appart from this, you'll be able to plug your custom plugins into the ADT framework, just by implementing the interface PortletDisplayTemplateHandler and declaring your implementing class in liferay-portlet.xml (in "portlet-display-template-handler")
How will the ADTs can look like? They will be just normal velocity templates, like the ones you use for the web content or the dynamic data lists. Additionally, there are a set of variables that have been made available for the templates (like $entries, which is the list of entries the user can see at a given moment) so that you can access all the information you need. There are a few samples made available for you in the asset publisher.
We have many improvements in mind that are related to this feature, but before going on I wanted to share this with you.
I write this blog entry for two reasons: the first one is to have the community updated on new features we the core engineering team is working on for the next version, and the second reason is to ask for your feedback and comments.
Today I want to summon the Liferay Bugsquad and the rest of community members: I'd be delighted if you could test this new feature in current trunk, and I'd love to receive your feedback, the templates that you may build, your ideas, your complains or pain points, so that we can improve it asap.
Remember we do Liferay Portal for you: this is the kind of moments when you can have a real impact in the evolution of YOUR project.
Thanks in advance, and I hope you like it
[UPDATE] Thanks all for your feedback! We have added the features you asked for and today (a little after Milestone 4) we have implemented Freemarker support and ADT support for Asset Publisher, Blogs, Wiki, Documents and Media, Site Map, Tags Navigation and Categories Navigation... I'm sure you'll love this tool to create new awesome sites!