DrupalCamp PDX 2008

I attended DrupalCamp PDX 2008 yesterday at the Portland State Business Accelerator. With nearly one hundred attendees, it was evidence of Drupal's accelerating popularity. Here are the two photos I took during the CCK session (photos from other attendees are available here):

Drupal CCK talk Drupal CCK talk

My notes from the event are below.

Drupal Best Practices

  • update.php hooks
  • install profile API / install profile wizard
  • Database merging/migration tool: navicat
  • selenium
  • modules:
    • Database Scripts
    • macro (included with devel)
    • menu_access
    • content_access
    • book_access
    • category - turns taxonomy terms into nodes) (difficult to undo)
    • bio (merged with usernode in drupal 6)
    • content profile (drupal 6)
    • CCK field permissions (search does not respect these permissions)
  • limit theme template files to print/if/foreach (no other php code)
  • Drupal 6: menu_alter
  • Drupal 7 will tentatively allow attaching CCK fields to any object


  • presentation site
  • card sorting
  • Google adwords keyword tool can be used to define taxonomy term names based on high-ranking keywords
  • inventory.overture.com - keyword selector tool based on Yahoo search
  • top three Drupal SEO items: page title, body (content), URLs (pathauto)
  • Yahoo and MSN seem to like meta tags, but generally not necessary
  • meta description will replace the search result snippet, but Google will do a better job of selecting the best content to show as the snippet
  • modules:
    • page_title
    • taxonomy term menu (deprecated in favor of edit term module)
    • edit term (currently has a bug with pauthauto)
  • SpryDev podcast about SEO and Drupal
  • don't hide things via CSS (Google doesn't like this and may consider you a spammer)
  • views list pages can negatively impact ranking if there are many pages that are listing the same content (with links to the same pages)


  • Types
    • Basic Moderation (publish/unpublish)
    • Editorial
      • e.g., Writer -> Editor -> Publisher -> Public
    • Forms
      • e.g., Manager -> HR -> Internal Workforce -> Public
    • Business Process Management (BPM) - refers to documenting, automating, and improving business processes
      • e.g., Department 1 -> Department 2 -> Department 3 -> Workforce
  • Elements
    • States
      • States are defined stages a workflow moves through.
      • With the workflow module, you define your own states.
    • Transitions
      • These allow you to define what states you can move to from your current state and the roles that are allowed to make these moves.
      • Transitions introduce some level of permissions to your workflow.
    • Actions (actions.module)
      • Actions allow you to associate some command when a workflow has moved to a particular state.
      • E.g., sending and email, moving the node to another state, etc. Not necessary in a workflow, but powerful.
    • Roles
      • Defines who has permission to act on the workflow when the workflow is in a specific state.
  • Modules
    • Workflow
      • basic module to allow the creation of arbitrary workflows in Drupal
      • "creation" state automatically added to a new workflow
      • patch available for workflow module to allow showing of only certain form fields during creation of content
    • Workflow Access
      • allows access to nodes based on roles and depending on the workflow state
      • allows defining of who can view/edit/delete *within* a state
    • Workflow-ng
      • allows one to customize Drupal's built in workflows in a very flexible way.
      • it's a rule-based event-driven action evaluation system.
      • can work with the workflow module
      • used by a number of other modules like Ubercart
    • Workflow Owner
      • works in conjunction with workflow and optionally workflow-ng so that admins can designate "Owners" of various states for a given node.
      • can allow for specific permissions - e.g., allowing a specific person to edit a node when the node is in a specific state.
    • Actions
      • Drupal actions
    • State Reference
      • Adds a CCK field type for referencing workflow states in CCK content types.
    • Workflow Workflow NG
      • allows you to integrate workflow and workflow ng
      • requires workflow_token patch
  • Matching Workflow Goals with Modules
    • Editorial: Workflow, Workflow Access, Workflow Owner, Workflow-ng, Actions
    • Forms: Workflow, Workflow Fields, Workflow-ng, Actions
    • Business Process Management: Workflow, Workflow Fields, Workflow-ng, Actions
  • Notes
    • Many tutorials available online
    • when editing workflow, be sure to give Author permission on the creation/draft state so that they can actually create the content
    • module: revision moderation (allows you to keep current page revision public, but create a new unpublished revision)


  • Consider using a CCK field instead of Taxonomy
  • OOP paradigm in Drupal
    • OOP - Drupal
    • Variables - CCK Fields
    • Functions and Sub Classes - nodeapi hook

Panels 2

Views 2

  • only for Drupal 6

Drupal for Non-Profits and Political Campaigns

  • presentation site
  • CiviCRM
    • CiviMail - Mailer with click tracking. Plugin available to allow sending mail through a separate server.
  • Hosting
  • Many mass mailer services available, such as iContact
  • Example sites:
  • Sections module
  • Events functionality
    • events module
    • CCK with Date, Calendar, Views
    • embed Google calendar
  • Google Analytics
  • XML Sitemap (formerly Gsitemap)
    • submits new content to Google
    • can help reduce Google's bandwidth usage
  • Mollum

Hiya Ankur

Cool blog! I'm glad to know that your vast knowledge is being collected somewhere :) It was great to see you last weekend and I hope you'll come out again. We can go hiking for reals next time!