The last few months I’ve been diving into different ways to quickly build, setup and manage drupal sites or create distributions (or packages if you will). Mainly:

You can create powerful combinations using these techniques. For example: Open Atrium is basically a Drupal package with features and installation profile. And Aegir leverages the power of drush in combination with an installation profile (among other things). All these projects are moving fast and there is some overlap but the big difference often is between site-building (infrastructure) and site-configurations (settings, database).

Drush
Tool which allows you to communicate with and manage a Drupal install from the command line. This is a real time-saver and a must have.

  • Provides a tool for site-building
  • Makes downloading, enabling and updating modules easy
  • Modules can provide their own drush commands
  • Growing in popularity

Features
Group modules which allow for a complete set of functionalities to be enabled imported/exported. It requires the Context and Spaces modules and compiles a module which holds the configuration for your feature.

  • Provides a tool for site-building and site-configuration
  • Very impressive (watch the screencast)
  • Integrates with Drush

Patterns
Module which uses an XML format to store configurations for your site which can be easily managed.

  • Provides a tool for site-configuration
  • Some overlap with Features
  • Bypasses some limitations which installations profile have (see also FAQ)
  • Lots of discussion, also with in relation with Features about common goals

Installation Profiles
Method to configure your Drupal site.

  • Provides a tool for site-configuration.
  • Included in core
  • Has many limitations
  • Drupal 7 should be a lot better

Conclusion? The big problem for all projects the lack of one Drupal data import/export API which would make life a lot easier. But that won’t be available until at leaast Drupal 8. Until then you will probably need a combination of above techniques to get the most of your distribution. However, I do hope install profiles actually become usable in D7.

Other projects
There are also other projects, but they seem either to have little support or moving very slowly. Like the package management project. Other related projects, but more focussing on migration/backup/deployment are: Deploy, Backup and Migrate and YAMM.

Groups

 

Aegir - a Drupal Hosting SystemIt’s been on my to-do list for quite a while now, especially after a very nice presentation by Roel de Meester at the last DrupalJam. Aegir seems like a very sustainable solution if you need to manage many Drupal sites on your own servers, which is exactly what we do for our clients. Updating and testing all these sites can become time-consuming really fast, so you want to streamline and automate this process as much as possible.

What is Aegir?
Aegir is a hosting system made out of Drupal, with some additional modules, an installation profile and drush.
You can read all about Aegir on it’s own group site where all the discussion takes place. There is also a FAQ in the Wiki.

What can I do with Aegir?
Aegir is a hosting management solution for Drupal sites. Using Aegir, you can easily deploy, upgrade, migrate and manage all your Drupal site from within one interface.

How do I set it up?
There is a detailed install path available in the Wiki but you should first watch this great screencast to get a general idea. It has a complete transcript, but is is for the older Drupal 5 (0.2) version of Aegir – so keep that in mind when you copy-paste stuff around! Setting up a local version of Ubuntu 9.04 with LAMP stack and Aegir 6.x-0.3-rc3 version took me about half a day.

First stepts
I didn’t had any big problems during install although I did misplace the modules the first time because I did some things manually instead of copy pasting the CVS checkout codes. Anyway, the Hosting module and the special Eldir theme should go in the subfolder of your Hostmaster profile, and the provision module should go in a folder named .drush in your aegir home dir. It’s all documented but I simply didn’t catch that dot (.) and placed provision as a sub-folder in the drush directory. This way, drush will not recognize the special drush provision commands. Doh!

Also, in 0.3-rc3, you will need the Install Profile API module in order to set Aegir up. This isn’t documented anywhere yet, probably because it’s a new requirement in 0.3-rc3.

Lastly, you will need a working sendmail (or other means of sending email) on your server, otherwise you won’t be able to add sites.

Aegir may not be stable yet and lots of features are being worked upon, but activity is high. Currently version 0.3 is ready and according to the roadmap there will be support for multiple servers and improvements in the user interface before releasing 1.0.

To sum up, Aegir looks very promosing to me, and I’m looking forward checking it out some more. Another thing I’m curious about is the integration or co-existence of Aegir with other systems like ISPConfig, and how it would handle real-life implementation on a site with live Drupal sites. Importing existing sites is part of the installation profile and is definitely something to test out.

Aegir in Drupalcon Paris:
There will be multiple sessions at DrupalCon Paris about Aegir:

 

social=media-community-building-resourcesIn the last couple of years, I collected a considerable amount of resources (mostly links I keep on del.icio.us) about Social Media, Community Building and On-line Marketing in general. I thought it might be nice to organize them and share them. There are some great must-reads in there for anyone who is involved with building sites which have social features.

Articles:

The state of online communities 2008
Analysis and research done by Forum One Networks.

The Art of Creating a Community
Article from 2006 by Guy Kawasaki, but still very true.

Why Traffic, Your Subscriber Count and Money doesn’t matter
Excellent article by Skelliwag.org which will make you see the truth about your visitors.

The future of social media
Research by Forrester in the world of social media.

Monetizing communities
This should not be your goal, but there are ways to make money with communities.

Tips from a master
Ben Ho from I Can Has Cheezburger has some simple tips.

Keep it Simple Stupid
Or, why an overload of functionality might clutter and kill your community.

12 Ways To Doom Your Community Before You Launch
There are probably many more, but here are some common pitfalls.

Social Media ROIpart 2part 3
Blog posts about the Return Of Investment on social media in three parts.

Dutch:

Howto make a social media succes story
General article with good advice and some essential ingredients for succes.

About designing social media
“Sociality, not functionality is key in designing social software.”

Christina Wodtke about community design
Another (bit older) look on web 2.0 and virtual communities.

Showcase – Flaironline.nl
Showing the importance of groups.

Getting people motivated
You’ve got a mission, but how to get others participating?

You won’t get there without Passion
Something which is easely forgotten by marketeers.

The Business of User-Generated Content
UGC sounds great, but it’s not that easy.

Drupal related:

Building advanced social networks with Drupal
Excellent slideshow/video taken from DrupalCon 2009 in Washington, highly recommended.

The Drupal community group
Discussion group on groups.drupal.org about community building.

Social networking modules
Some common modules used for community building with Drupal.

Showcase of a social media site built with Drupal
Showing an implementation with improved media handling.

Books:

Naked conversations
Great book by Robert Scoble about how the web is changing into conversations.

Tribes
Another great book by Seth Godin about groups of people connected to each other.

20 free e-books about social media
Great resource with downloadable PDF’ about social marketing.

Building a community site with Drupal
A tutorial e-book howto built a community site like drupalfun.com with Drupal 6.

There are probably lots of other great articles on the web, feel free to add your favorite article!

 
Aug
5

Multiple fieldgroups with CCK

Gepost in Drupal door Albert

If you are using Drupal+CCK intensively you will sooner or later run into limititations. One of these is the unability to create multiple fieldset groups. This is a very common problem when you need a way for users to insert an unknown amount of items and each items uses the same combination of fields.

For example: you’ve got  a profile content-type where a user can provide their education from a pre-defined list (select dropdown) but you also need to provide a year with each chosen education. And you want the user to able to provide anywhere from one to an unlimeted number of these sets.

Using CCK 2.x you will be limited because it isn’t possible to duplicate an entire fieldset. It is possible to duplicate single fields by setting the number of values to a higher number but it isn’t possible to do this with an entire fieldgroup, like in the screenshot below.

Example created with CCK 3.x Multigroups

Solutions
Yes there are solutions! And as usual with Drupal, there are several options.

The last option may be unattractive if you’re not a programmer or don’t want to spend much time on coding.

Flexifield allow for the desired behaviour but it is a bit of a hackish way. It also involves an elaborate process creating separate content-types for each set of fields you want to re-use. It has Views integration but it still feels a bit messy. It looks like CCK 3.x implements this better – see this comparison for some technical details about the database structure.

However, CCK 3.x is still in development and therefore not stable. It was initially developed under CCK 2.x but was officially introduced in CCK 3 . You can still find the patches and process for this module in this issue queue (longest isse queue I’ve seen so far!). But is definitely not recommended trying to get this to work under CCK 2. If you get it to work you will have a CCK version which you won’t be able to upgrade.

Still, it seems the 3.x-dev is being reported to be used without any ‘big problems’. There are some issues with still need attention (involving more complex structures like nested fieldgroups) but if you keep a a good eye on the issue queue, it might be the most durable solution.

update : one caveat when using CCK is you won’t be able to store multiple values within a field in a multigroup. So for example: you can use content taxonomy in a multigroup but you won’t be able to store more then one term for each item. See also this thread.

If you’re not sure and happen to be in Paris during the next Drupalcon, you might want to check out the proposed sessions about this topic, a lecture from the author of Flexifield.

Drupal 7
Okay, so what about Drupal 7? We all know fields got in core recently for D7, but what about this feature? Fields in core means a big part of CCK has moved to core. But there will still be a contributed part which might have additional functionality. Back at the Drupal fields-core group, you can read more about this. and apparantly, multigroup has a somewhat lower priority to be pushed in core.