Advanced Drupal Development

From DevSummit
Jump to navigation Jump to search

Facilitated by Neil Drumm, Drupal Developer

Session Description

As a senior member of the Drupal developer community, Neil knows both the history and myriad details of this popular content management platform. In this question-driven session, he'll take any and all Drupal questions and share his knowledge and advice on how to the get the most out of Drupal.

Session Notes


- Image management

- Performance

- Hosting

- Panels and layout

- upgrade

- Template Development

- Features and Deployment

- Drupal 7

- OpenLayers

- Embedded Media

- Views

- Distributions

- Data Importation

- Automation

Image management:

- Image management with filefield, imagecache, insert module, and epsacrop

- Media module in drupal 7 should be handle everything

- You can also just constriain images that users upload and display them in fixed places

- Dragable views for reordering nodes


- Always use APC (Alternative PHP Cache) for the cache. It runs at the PHP server level

- APC module uses APC for Drupal's caching

- Boost is dead easy for anonymous users

- Pantheon will handle hosting, deployment, and performance optimization

- Varnish is awesome in high performance environments

- Pressflow is an optimized version of Drupal, that plays nice with all those performace options

- Some modules may be incompatible with Pressflow


- People have many problems with Media Temple. People like it because it has a nice GUI.

- If you want a blank slate VPS, just use Slicehost

Panels vs Other Things:

- Panels is great at people who want to do layout without knowing how to program

- It brings in a whole bunch of things like views and nodes that you can drag and drop

- Panels can be aware of things

- Context is a more developer centric way to handle block display

- Both things from Panels and Context are going to be in Drupal 8

- does not currently use CCK fields, but are going to start using it soon

- just uses custom templates and blocks

- Views are exported to code, as part of things like the Projects module

- Likely to start using Features

- has a sanitized and reduced version of the database that people can download for development

- The staging site is refreshed every couple of hours with live data

- code is stored in BZR

Template Development

- lets you switch between templates and tweak them with a GUI

Features and deployment

- packages a bunch of different components together like cck types, views, menus into code

- can use it for deployment to a live site

- when you make changes to the dev site, you recreate or update the feature and check it into the repository

- when you update the code on the live site from the repository you have to revert the feature to what is now in code (not very intuitive)

- that reverting when updating the site is one of the most confusing things about the process

- staging servers should always have relatively recent versions of the live code

- use testing! Selenium or Simpletest

- some use Mecurial for version control

- Drupal currently is in CVS, but things are moving to Git

Drupal 7

- arguement over how stable the contributed modles are

- coder module can help you upgrade your site to drupal 7


- Create a map viewer with some default base layers

- It can pull in KML files if you just give it the url

- OpenLayers Geocoder lets you create points

- Views integration rocks

- Easily define tooltips

Embedded Media

- Emfield is an exiting module

- oembed uses the oembed standard to wrap media files


- edit Views is something that does something

- How to display a dropdown of existing values in a cck field for form filters?

- Relationships module builds on nodereference


- They are going to happen on

- the holdup in including custom code such as jQuery plugins and such

- there may be a whitelist for third party download sites

- mostly use install profiles, they are on now

- install profiles are now using .make files

- distributions and install profiles are similar, but a distribution may contain multiple install profiles

Data Importation

- Migrate module works well (takes the place of basic things like nodeimport)


- What can do scheduled publishing and unpublishing? CCK and views? Rules?