• duke.edu• pratt.duke.edu• divinity.duke.edu• today.duke.edu• medicine.duke.edu• nursing.duke.edu• studentaffairs.duke.edu• law.duke.edu• mclibrary.duke.edu• chapel.duke.edu
Our use of Drupal
• Late 2008: our first Drupal 6 site• October 2009: duke.edu• November 2011: our first Drupal 7 site
Drupal 7 Upgrade Overview
Initial assessment
Exploratory run
Research / troubleshoot / adjustments
Practice run
Schedule upgrade for production
Drupal Theme Best Practices
1. Always use a child theme (or sub-theme)2. See #13. .tpl files are for markup, not logic
1. Make use of pre-process functions
4. Don’t go crazy with contributed modules.5. Use Drupal’s Methods to add css/javascript to
your theme1. E.G. conditional stylesheets
1. drupal_add_css(path_to_theme() . '/css/ie7.css', array('group' => CSS_THEME, 'browsers' => array('IE' => 'IE 7', '!IE' => FALSE), 'preprocess' => FALSE));
Which Parent theme do I choose??????
• What does your site need to do?– Be responsive?– Conform to ‘the grid’?– Change layout/colorization/look-and-feel based on
context?– Does it need to be accessible?– Other special aspects?
Some Starter Themes to Consider
• Omega– We use it. Tons of regions, and fine grained layout control from UI,
and uses grid system. It’s very responsive, though it uses a layered-onion approach to responsive styles.
• Boilerplate– HTML5 output. Fixed layout. Very semantic.
• Genesis – Very flexible framework. Fixed or fluid layouts. Uses grid system.
• Fusion– also has many configurations from the UI. Uses grid system
• Zen– Trusty and widespread. Very good community support. Very handy
starter themes.
Other important Theme questions
• Who is going to work on the theme?– A team?– An individual?– Your nephew?
• Who will maintain the theme?• How will you handle versioning and delivery?– Git?– Svn?– Printed copies?
Resources
• Delivering Drupal - http://denver2012.drupal.org/program/sessions/delivering-drupal
• Drupal Contributed Themes - http://drupal.org/project/themes
• Drupal API - http://api.drupal.org/api/drupal• Drupal & GIT - http://drupal.org/node/803746
Projects: Installation profile
• Create common default roles and permissions• Configure Shibboleth• Install commonly used modules• Set recommended site options• Optional development set-up
Projects: Duke Events module
• Provides default content type with fields set up for Duke Events information
• Provides several default views for events
Projects: Duke Feeds module
• Preconfigured parsers• Currently supports Events@Duke– Maps information coming out of Events@Duke to
fields with no extra set-up• Next step: additional information formats– Scholars@Duke– Faculty Database System (FDS)
Project: Google Custom Search module
• Provides integration of Google Custom Search into Drupal
• Provides default styles for more detailed customization if needed
Project: Attachments module
• Straight-forward way to handle attached documents (PDF, Word, etc)
• Tagging and access control• User-friendly• Database-friendly
Project: Drupal 7 Upgrade Assistant
• Generates module/theme status report• What do you need to upgrade to latest version
of D6?• What are you using that has no stable release
for D7?
Resources at Duke
• training.oit.duke.edu/lynda• [email protected]• The person next to you• Future gatherings, email list, etc?