Drupal to the Next Level
Thanks to everyone who attended the presentation on taking Drupal to the next level. This was a follow-up from my first session on Drupal in January 2008, where we built this site, www.foxvalleycp.com from scratch. It was a basic 101 type session which focused on installation and the adminstrator interface. Since we haven't done much with this site since then except some occasional posts, I thought it would be appropriate to build out some more functionality and share how that was done.
So read on for...
- Drupal Building Blocks
- Core Modules: Node, Menu, Block, Taxonomy
- Contributed Modules: CCK, Views, Panels
- Bob's Favorite Modules
- Hans's Favorite Modules
It's a pretty information filled post, I hope you at least take the time to skim it.
Drupal Overview - most of this was recast from the January session, Bob's Spectacular Drupal Flying Circus.
Drupal Building Blocks - we introduced some of the core modules of Node, Menu, Blocks and taxonomy, as well as some key contributed modules such as CCK, Views and Panels. I will attempt to summarize our discussion in the following "glossary"
- Node - A node is a content "record" in the Drupal database and is presented in the content area when it's URL is accessed. When you "create content" you are making a node. A site can have an extensive number of content types (different kinds of content records) all of which can be granularly selected, themed, and controlled. We spent some time touring everyone through the creation of a node.
- Menu - Drupal allows for multiple menus to be created giving access to any URL. Menus can be single or multiple levels, expanded or collapsed. As we discussed menus we introduced "weight", an important concept used through the Drupal system, allowing you to control the "level" of an item. Most weight designations are from -10 to 10, with lighter (less than) weights appearing before or above a heavier (greater-than) number
- Blocks - Blocks in Drupal serve the purpose of containerizing site components. Each menu or view you create also is identified as a block and you control where, when, and in what order blocks are displayed throughout your site.
- Taxonomy - provides the means for categorizing/tagging your content in a wide variety of ways to allow for extremely focused selection of content. This is an extremely powerful core module in the Drupal system. Time spend learning all the ways taxonomy can be used in Drupal and planning your taxonomy categories will pay dividends down the road.
- Modules - are the components of Drupal which can be turned on to provide additional site functionality. When you install your base Drupal version you will see the Core modules. These are the modules that are embedded in the system. When you look at www.drupal.org/modules you see a list of all the hundreds of modules that have been contributed by the Drupal community, these are commonly referred to as Contributed Modules. Note: in order to maintain the integrity of your installation, it is strongly recommended that you install Contributed Modules (in /sites/all/modules) in a different location than the Core Modules (/modules) in your file system. You will note that as you install and activate Modules, there may be multiple module components available to be activated.
- Permissions - As you enable additional Modules, additional permissions are also made available for module functions in Access Control. Drupal provides a grid for granting permissions for various module functions by Role. New Roles can be created and user accounts can be assigned to multiple Roles to provide granular access to site functions according to your design needs.
- CCK - Content Construction Kit functions as a means for extending content types or creating new content types in Drupal. CCK allows for you to build content forms for specific data. For instance CCK was used on this site to build the "Questions" area in this site.
- Views - provides the ability to create lists, tables, pages, and blocks of selected content and content type "fields" of nodes. For instance, the block titled "Open Questions" on the right hand column is a view created to show content type: Questions, with an open status, sorted by Priority.
- Panels - were not discussed but are an important way of structuring your page layout into sections which can include any combination of content, views, or blocks.
Whew! That was a lot to cover in just 40 minutes, but without the background I am sure some people would have been lost. I based my presentation on the people I saw signup on the Fox Valley Computer Professionals Meetup site, but there were some others so I adjusted the 5-15 minutes I was going to brush on introducing Drupal for a more complete run-through.
My apologies, I tied to embellish and add some more advanced discussion to hold everyone's interest, but I'm not sure how successful that was.
I will make another post shortly on the new features I built into the Fox Valley Computer Professionals site and some of the thinking I considered as we prepared for this presentation. It always bugs me when I see posts and tutorials that demonstrate something, but don't tell how they did it, so I will wait until I have time to take you through it. [Future Link Here]
Bob's Favorite Modules
for administration...
- http://drupal.org/project/admin_menu and http://drupal.org/project/admin_menu_dropdown - easier to use than the Drupal Administration Menu
- http://drupal.org/project/adminrole - allows you to assign a role which will be given all permissions for all active modules/components.
- http://drupal.org/project/backup_migrate - you have to have backup, this is a good pick.
- http://drupal.org/project/dba - provides DBA functions for MySQL within Drupal.
- http://drupal.org/project/sitedoc - provides documentation for your site.
- http://drupal.org/project/sitenotes - provides facilities to communicate on site tasks and notes.
- http://drupal.org/project/mollom - A cool new way to keep site spam under control, we use it on this site.
- http://drupal.org/project/menu_per_role - easy way to provide specific menus based on user roles.
- http://drupal.org/project/update_status - provides connection back to drupal.org for module updates, including security updates.
- http://drupal.org/project/upgrade_status - helps assess the availability and status of site modules for the next version of drupal. Am I ready for v6.x?
for SEO...
- http://drupal.org/project/google_analytics - put your google code in and track for every page.
- http://drupal.org/project/pathauto - provides a user readable name for content pages.
- http://drupal.org/project/xmlsitemap - creates a sitemap based on sitemaps.org, compatable with google, yahoo, ask, and windows live.
others...
- http://drupal.org/project/cck - the all important Content Construction Kit
- http://drupal.org/project/views - Views for your content
- http://drupal.org/project/panels - Description above. I haven't had a chance to use it in production yet, but I can't wait!
- http://drupal.org/project/comment_notify - notifies users of comments to posts
- http://drupal.org/project/invite - a must for any community site, invite other people.
- http://drupal.org/project/nodeprofile - makes a user profile into a node so you can extend the information on your users.
- http://drupal.org/project/extlink - a nice icon to show an external link
- http://drupal.org/project/fckeditor - some people like TinyMCE, I like this editor better.
- http://drupal.org/project/fivestar - used on foxvalleycp.com you get to vote on posts and comments, give it a try.
- http://drupal.org/project/mass_contact - What good is a community site without the ability to send mass emails to users?
- http://drupal.org/project/simplenews - a good tool to provide for simple newletters.
- http://drupal.org/project/userlink - users can submit links... that's what Favorite Links is all about on our menu.
Drupal Links & Resources:
- Primary- http://drupal.org for Modules Themes Projects News
- http://drupal.org/getting-started/before
- http://drupal.org/requirements
- http://www.cdmug.org The Chicago Drupal Meetup Group
- http://themegarden.org/drupal50/
- http://www.drupalsites.net/
- http://www.drupalmodules.com/
- http://www.lullabot.com/ Some great video and tutorials
Please Comment
There's probably more Drupal presentations coming in the future, so please comment, tell us what you think and offer up what topics you might want us to cover. Hans has offered to do an indepth on Drupal theming, and I am open for preparing whatever the group wants to see.
- Bob

Comments
Great Presentation
Bob-
Great presentation and excellent follow-up post. Having worked with Joomla for the better part of a year now, it was nice to be able to compare some of the features of Drupal against Joomla.
I would love to see a follow-up Drupal presentation involving integrating CiviCRM into Drupal, or perhaps just a demo of CiviCRM in general. There seems to be a lot of potential there.