Moving stuff around on your Drupal web pages Alex Bergin / @alexbergin Dept. Agriculture & Food @drupalwa Background • Websites are dynamic that’s why we’re here, that’s why we use Drupal. • Not all pages will want to look the same @drupalwa Scenarios • Websites may have: – Homepage presenting a dashboard of content. – Content Pages: Basic pages, products, events, etc. – Index taxonomy term pages, landing pages. – Search results, sitemaps. – User profile pages. – And more! • All of which may have different layouts. @drupalwa SO HOW DO WE DO THIS IN DRUPAL? @drupalwa Blocks @drupalwa Blocks • • • • Baked into Drupal core since 4.x. Manage blocks in your themes regions. Suited for basic brochure sites. Problem: dozens of blocks for dozens of regions, not enabled for all pages? • Problem: visibility conditions limited. Php in db bad mkay. @drupalwa Options • Various contributed modules make layout management easier: 1. Panels: http://drupal.org/project/panels 2. Context: http://drupal.org/project/context 3. Display Suite: http://drupal.org/project/ds We’ll try go over each of these. @drupalwa What do they basically do though Everything on the page Or, all theme’s body content region Or perhaps only node content So you can use these modules in conjunction with Blocks and your theme regions, if you want to. Additionally, these things modules can use block content defined by other custom modules, themselves too 1. Panels Module Screenshot courtesy of themonthly.com.au @drupalwa 1. Panels explained • By the same legend as the Views module – Earl Miles (aka merlinofchaos). Since D4.7. • Dependant on Ctools which includes the Page Manager module that is kind of required to use Panels. • Panels module includes several modules: Panels, Mini Panels, Panel Nodes, and In-Place Panel Editor. @drupalwa 1. Panels explained. More.. • Panels is path driven. So a panel object exists for nodes, node edit forms, search, etc. @drupalwa Panels has its own terminology • Of each panel, you have Variants, which each let you have different layouts, e.g. One for each content type. • Each Variant can have a Layout set. Use built in panels layouts or write custom layout. @drupalwa Panels has its own terminology • Selection Rules, lets you define conditions in your Variants, e.g. Different layout for a different node content type. • Contexts – allows you to draw on other material: content, views, etc. i.e. Product panel variant bring postage conditions node into context. Not to be confused with context module. @drupalwa More on Panels • Panels designed to be very extendable and powerful. • Advanced plugin system via ctools for custom access controls, layouts, content blocks (content types), and block styles. • Modules that extend Panels: – Panels Everywhere – Panelizer – like panel_node module @drupalwa 2. Context @drupalwa 2. Context • Around since D5.x, fairly mature. • Comes with Context, Context Layouts, Context UI. • Create contexts by specifying conditions and then the reactions – be it blocks to show in a region. • No field support though. @drupalwa 2. More on Context • Relatively easy interface to manage. • Addons for Context: – http://drupal.org/project/context_node - lets the content creator select which context to use for their node. – http://drupal.org/project/context_by_node automatically creates a context when the node is created (no official 7.x version available though). @drupalwa 3. Display Suite (DS) @drupalwa 3. Display Suite • Stable. Relatively new. Still catching on. • Specially built for Drupal 7 Entities: nodes, users, terms, etc. • Layouts – includes common layouts, but easy to create new layouts by drush instead of manually. • View modes. i.e. Event has a full, teaser and monthly calendar view. @drupalwa 3. Display Suite • “Disable drupal blocks/regions” setting. • DS Custom Fields (not content fields) lets you create more flexible fields: – Code field - meta tags, tokens, php field. – Dynamic field – kind of like panels context. – Block field - how you add other module blocks “block fields”. – Preprocess fields – possibly lets other modules populate them? Haven’t used this myself. @drupalwa 3. Display Suite – Advanced Stuff • Integration with panels layout manager. • Integration with Views Displays. • Re: Custom layouts with Drush, look for the “ds-build” argument in Drush help. • Very decent screencasts here: http://bit.ly/ds-d7 @drupalwa So what to use then? • Based on Number of Installs: 1. Panels: 120,000 2. Context: 65,000 3. Display Suite (DS): 30,000 All growing, but DS growing the fastest. @drupalwa So, what to use? • Depends on your circumstances. – Basic Brochure site – blocks – For larger sites though: • Panels is probably the most powerful, but has a steep learning curve. • Context is probably the easiest of the lot to learn but still requires templating for laying out field content. • Display Suite looks like it has a good balance of usability, and power. Probably the most exciting. @drupalwa What to use, Continued.. • All are Exportable to features. • One way or another it’s probably possible to do anything in any of the layout modules. @drupalwa Further Info • Blocks vs. Context vs. Panels: http://www.lullabot.com/articles/assemblingpages-with-drupal • Comparison of Layout Editors: http://groups.drupal.org/node/15851 • DS vs. Panels: http://www.jyvesgarden.com/blog/display-suitevs-panels • Great DS instructional videos: http://bit.ly/ds-d7 @drupalwa What’s ahead • Drupal 8 Initiatives: “Concept Model” • Thomas, Sam, anyone read up on this, please share? • D8 discussions on the topic is found here: http://groups.drupal.org/node/227543 @drupalwa Cheers to Thomas for organising these meetups month in month out! @drupalwa
© Copyright 2024