Drupal in Use at Duke Duke Web Services Office of Information Technology • • • • • • • • • • 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 Schedule upgrade for production Exploratory run Research / troubleshoot / adjustments Practice run Drupal Theme Best Practices 1. Always use a child theme (or sub-theme) 2. See #1 3. .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 theme 1. 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)); How Easy is creating a child theme? Copy files to sites/all/themes Edit the .info file Ready for Customization 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/sessio ns/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? Next Project ? Resources at Duke • • • • training.oit.duke.edu/lynda oit-dws@duke.edu The person next to you Future gatherings, email list, etc?