Drupal 101

From DevSummit
Revision as of 17:21, 5 May 2015 by Vivian (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

facilitated by Kathryn Benedicto from Happy Snowman Tech

participants: Jamila, Ajay, Linda, Victor, and Kate

About Drupal

Drupal is an open source Content Management System (CMS). It is also a platform for extending your website to include community features, workflows, and content with different kinds of fields to manage different kinds of tasks. The community is strong. Drupal is free as in kittens: the download is free, but configuring, maintaining, patching and upgrading the system comes with costs.

Drupal is on the powerful and complicated end of the spectrum.

Companies who need a web presence with simple features like blogs are better served with Wordpress or another system that is less powerful but more intuitive.

Drupal is a good fit for organizations with more complicated needs, including:

  • creating community portals,
  • creating internal/external sites, and
  • creating custom content types.

Drupal tour! California Pan-Ethnic Health Network

Components

Presentation layer: The page layout of your site. Two columns or one column? What colors and typography? You have three choices for presentation layers:

  • Buy a premium theme
  • Use a free one
  • Build a custom theme from scratch.

Lots of firms create Drupal themes, the one used in California Pan-Ethnic Health Network is from Symphony Themes. Themes can be purchased/created for responsive, mobile first, and both mobile/desktop design.

The CMS

The Content Management System enables you to create rules that govern how to display content. For example, one rule might be that any content tagged with “Legislation” appears in Box A. A second rule might be that whatever piece of content tagged “Legislation” and with the most recent date displays first in Box A.

The alternative is to hand code all the content in the HTML on each page, which explodes the amount of work and opens the door to inconsistencies across the site.

Menu System

Creates on menu/navigation system across the site so it doesn’t have to be hand coded across all pages. Each page is linked to the menu system and can then be organized by drag and drop.

User Roles

Enables you to create multiple levels of access to the site. For example, Admins can publish, create new users, and administer the entire site, Authors can write and edit blog posts, Readers can comment on content but not write, edit, or publish.

Content Types

Drupal offers an interface to create custom fields for custom content. This is the key point that makes Drupal more complicated and powerful.

Custom content types allow you to set up fields to associate specific information with a piece of content. For example, say a website tracks bills in the state legislature. When the admin creates a new piece of content for a Bill, the required fields might include the session date, the bill number, the sponsor, the status and a PDF of the bill.

The benefit of this arrangement is that the site can automatically generate a table showing all the Bills saved to the system showing the session date, bill number, sponsor, status and a PDF of the bill. The alternative to this kind of automatic generation is to handcode a table and handcode all updates.

Workflow

Drupal enables you to create workflow rules to ensure that a company’s internal processes are consistent. For example, you could write a rule that states that whenever a new bill is entered into the CMS, the manager has to approve it before it can be published.

Modules

When choosing modules: look for number of downloads, of course, but also frequency of updates. You want to avoid options that aren’t maintained.

Question & Answer

Question: What can get you in trouble in Drupal?

Jamila: You can go down the rabbit hole with customization.

Kathryn: My goal is to create as little custom code as possible, because that’s the hardest to fix when it breaks, and learn what modules are the best solution for your needs and install the minimum number possible.

Updates to accommodate Drupal reversioning generally necessitate a full rebuild. There is no good backwards compatibility. Organizations have to choose to do either a full redesign or stick with their current version and keep using patches as long as they possibly can. There is no one-click update like in Wordpress, and that is a serious pain point in the community.

Question: What are the most popular community modules?

Kathryn: Organic groups. The key advantage of Drupal is that there is a constellation of modules that allows you to assemble a highly functional site with a minimum of custom code. It’s very easy for developers to use, but clunkier for admins.

Question: What are the challenges with integrating module functionality?

Answer: Integrations between Drupal and CiviCRM (an open source database that has a lot of parallels with Drupal) are common enough that the two orgs work together sometimes. The best thing is to look for modules on Drupal.org that manage the integrations and do your homework on which ones are best.

Drupal Gardens lets you test your site.

Pantheon lets you test your integrations.