The Denver Drupal meetup continues to grow, and despite bringing in extra chairs, every seat in the room was taken at the April meetup. But don't let that deter you from coming to future meetups! More people in attendance means more people who can answer your drupal questions and more community members to network with.
After the standard round of introductions, we spent some time with general community announcements:
- DrupalCamp Colorado will be held on the Auraria Campus in downtown Denver on June 11 and 12. DrupalCamp Colorado is one of the largest Drupal events outside of DrupalCon and is an inexpensive way to learn more about Drupal and get connected to the Drupal community. In addition to the two camp days, Lullabot and Chapter 3 will be offering full day Drupal training on June 10. You can find more training information on the DrupalCamp Colorado training page and register for camp today!
- The Open Media Foundation is looking for more volunteers to operate the studio cameras. You can be a part of producing the Denver Drupal meetup's live television broadcast! For more information, contact the Open Media Foundation.
- On August 13, the Open Media Foundation will be hosting Project Fresh Kicks, a 24 hour event to build 10 websites for 10 non-profits. For more information about applying as a non-profit or getting involved as a participant, visit http://projectfreshkicks.com.
- The Boulder Drupal meetup, which meets on the second Wednesday of the month, is moving from Boulder Digital Arts to Applied Trust at 1033 Walnut St.
Following announcements, Andy gave a presentation on DesignKit and Imagene Gradient Generator. The DesignKit module allows you to dynamically adjust design elements, including imagecache settings and colors, through your theme admin page. DesignKit can be used in conjunction with Imagene Gradient Generator to create gradated images on the fly.
To configure DesignKit, you'll first need to add variable to your theme's .info file in the form of
designkit[color][body_bg][default] = "#FFFFFF"
This will create a $body_bg variable that you can insert in your page.tpl.php file or any other template file. You can then navigate to your theme's configuration page (usually at admin/build/themes/settings/<theme_name> to find color widgets where you can adjust the color for your newly created variables.
Imagene can generate a number of different gradated images by invoking an image call with a specifically named file. For example, setting an image src to "5x10-ffffff-000000.png" would dynamically create an image 5 pixels wide by 10 pixels tall gradating from white at the top to black at the bottom. Using this naming convention, it's easy to substitute the colors for DesignKit variables.
After Andy's presentation, we held an open question and answer time and invited television and online viewers to call Scott who relayed questions to the studio.
The first question was a quick poll of how many attendees had used Drupal 7. Drupal 7 was officially released this past January and has been quickly adopted, as over half the room responded that they had used it.
One of the new features of Drupal 7 is the way that fields and languages are integrated into core. Specifically, custom fields appear as:
$node->field_name[<language>][<delta>][field_attribute] = 'field_value';
Where language is often "und" and delta is the array key starting at zero and increasing for multiple value fields. The question posed to the community was, "where is the best place to pull the language?" The node object contains $node->language, which seems to be the most correct value, but Drupal 7 provides language independent fields, so it's possible that there may be fields in a language that is different from the node's language. In those cases, it's not clear, but it might be better to pull the language from the site configuration or user preference.
A subsequent difficult question posed was, "how do you create a set of secondary or tertiary navigation tabs that appear conditionally based on a matching URL?" The hook_menu_local_tasks_alter hook appears to be the best way to manage that functionality, although the proper implementation was a bit uncertain, particularly surrounding access permission issues with anonymous users.
After two tough questions, one attendee asked about Drupal support as new versions are released. Drupal generally maintains one past version in addition to the current version. This means that when Drupal 7 was officially released, Drupal 5 was declared "end of life" and core maintenance stopped. However, that doesn't preclude anyone from continuing to run their website on Drupal 5. It also doesn't apply to contributed modules, so there's a chance that security updates or even new features may be available for older Drupal sites.
One attendee asked for advice on publishing content originally entered on a development server to an independent live server. The deployment module was designed to handle this exact scenario, although it's still in development and may not work as desired for certain situations. Other alternatives suggested by the community are Services and Feeds. Services provides an API that allows external access to data in Drupal. Feeds is designed around the consumption or aggregation of various feeds (RSS being the most popular). Most attendees felt that Feeds would be the most straight forward solution, by setting up the development server to publish a feed of content and configuring the live server to consume those feeds, turning feed content into Drupal nodes.
The final question of the night came from a call-in viewer, who asked for more information about DrupalCamp Colorado. We can't say enough about how great DrupalCamp Colorado will be. Past camps have been amazing weekends full of training, networking and loads of fun... and this year's camp is shaping up to be bigger and better.
As always, we'd love to see you at the next Denver Drupal meetup. For those who can't attend, we'll be airing and streaming live and we hope to have a better call-in system in place. More information about upcoming meetups can be found at the DBUG groups page.