Advanced Drupal Development
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
Summary:
- Image management
- Performance
- Hosting
- Panels and layout
- Drupal.org 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
Performance:
- 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
Hosting:
- 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
Drupal.org
- does not currently use CCK fields, but are going to start using it soon
- Drupal.org just uses custom templates and blocks
- Views are exported to code, as part of things like the Projects module
- Likely to start using Features
- Drupal.org 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
OpenLayers
- 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
Views
- 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
Distributions
- They are going to happen on drupal.org
- 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 drupal.org 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)
Automation
- What can do scheduled publishing and unpublishing? CCK and views? Rules?