January Denver Drupal Meetup Recap

Thanks to everyone who attended the January Denver Drupal meetup, we had one of the highest turn outs in recent DBUG history! Special thanks to those who travelled to Denver to attend the Webchick Drupal 7 Tour and stayed around for the meetup.
After general introductions, the meetup kicked off with a presentation of Panels by Jerad Bitner. Jerad discussed a bit of the history and evolution of arranging content on a page from Drupal's blocks system to Context and the idea of contextually aware content, to the latest implementation of Panels that allows a vast range of freedom and flexibility in content placement and design. While Panels does a great job at outputting div based content, often it produces extraneous markup and redundant classes that make hamper styling. There are ways to leverage Drupal's hooks and templates to help cleanup the Panels output, but Jared is working on a solution that would make it easier for all of us. We look forward to seeing what he comes up with.
Drupal 7 was released on January 5th and has been an exciting event in the Drupal community. During the introductions, meetup attendees shared their experiences with Drupal 7 which ranged from those who had only heard about it to those who had contributed to its launch. Greg Knaddison briefly demoed Drupal 7 by performing a standard install and highlighting some of the new features. While there are some visual changes apparent in the install process, one of the major changes is the appearance of the admin toolbar that displays following the install or whenever an admin user is logged in. The tool bar is reminiscent of the Administration menu and other projects in Drupal 6 that helped streamline administrative tasks. The Drupal 7 tool bar is easily customizable and new items can be added to the tool bar by clicking the plus icon on any pop-in or lightboxed admin pane.
Matt Kleve presented on wysiwyg plugins. The Wysiwyg module allows you to add a wysiwyg interface to text areas in Drupal. It supports a number of javascript based wysiwyg interfaces, but two of the most popular ones: CKEditor (formerly FCKeditor) and TinyMCE support the wysiwyg api that allows you to create custom wysiwyg editor buttons and actions. The break plugin that defines a node summary or teaser can be found in the wysiwyg plugins folder and serves as a good example to pattern custom plugins after. Wysiwyg plugins are defined by a .inc file which runs hook_wysiwyg_plugin() to define an associative array of data about the plugin. A corresponding plugin folder contains a .js file that handles the functionality of the plugin. The .js file should define 4 primary methods:

  • isNode which determines when to make the plugin available
  • invoke which is where the plugin performs its task. Note that the invoke function is passed a data argument that contains any text the user has highlighted in the wysiwyg editor.
  • attach is called when the wysiwyg editor is instantiated (e.g. when a user enables the editor)
  • detach is called when the wysiwyg editor is disabled. Attach and detach can be used to display one version of content, but store another version.

The meetup wrapped up with a quick presentation by Joe Shindelar on image handling in Drupal 7. Image handling in Drupal 6 was a complex process that involved installing and configuring a number of modules. With Drupal 7, many of those modules or the functionality they provided has been added to Drupal's core (and often improved upon). The Image field type can be added to any content type or entity such as users (e.g. user avatars) or even taxonomy terms!
As always, we'd love to see you at an upcoming meetup, but there are also a couple other upcoming events you can join us at. Aten Design Group is hosting an office warming party on Friday, Jan 28 and we'd love to party with you. DrupalCon Chicago is fast approaching. Be sure to register soon to get a spot in the Drupal Tower before it's sold out. More information about meetups can be found at the DBUG groups page.

Drupal Planet Events

Read This Next