On May 17, I did an inpromptu presentation on the Display Suite module for Drupal 7 written by Kristof De Jaeger (also known as swentel). For those that don't know, Display Suite allows you to take full control over how your content is displayed using a drag and drop interface. Arrange your nodes, views, comments, user data etc. the way you want without having to work your way through dozens of template files. A predefined list of layouts (D7 only) is available for even more drag and drop fun! (ok, this is a blatant copy/paste from the project page. But that is an excellent description!). It has loads of fantastic features (which include creating 'display fields' which are static/semi-dynamic fields you can add to your content (since display suite works off the concept of entities in D7, you can use it on *any* entity which includes nodes, users, taxonomy, comments). You can create various 'view modes' (so you are no longer limited to teasers and full mode views) to show your content on different areas of your site (no more wrangling with fields).
It has options which include:
- Add your own custom fields in the backend or in your code
- Add custom layouts in your theme (only for D7 - thanks to Joe Chellman for letting me know)
- Change labels, add styles or override field settings (semantic fields).
- Full integration with Views and Panels
- Extend the power of your layouts by installing Field Group (D7 only)
I showed how to create new display modes, how to change the default layouts offered, how to add custom fields, and how they can be used with views and the new Search API module without writing a line of code. I wish I had prepared myself a little more for the presentation as I do think its a pretty fantastic module which I may not have done justice. And I didn't get a chance to answer a question asked by someone where 'what are the performance implications?'. The answer is: Because the node has to fully load for the node view to get generated, it could be a fair performance impact. However, you could use it with the Entity Cache module to make things more performant!
Update (June 4, 2011) - it seems that the video of my presentation may now be lost :( Hopefully the LADrupal organizers can retrieve the video from the flash drive on which this was recorded.