There are some more Drupal centric thoughts I wanted to share here: more African sites are running Drupal than we realize, but because there is no African Drupal Community to speak of, all this work, these references and experiences are largely invisible. We need more visibility, we need more advocates and we need more community.
The South African Drupal Community is doing very well – I’d love to tap into them and see what we can achieve together.
If you’re working with Drupal somewhere in Africa, or thinking about working with Drupal, get in touch. Really, do get in touch. It only takes a few people per country to take the whole continent by storm. Let’s start small, though. Let’s cover our bases, think this through and make sure we pool our resources as much as possible.
As the Wolof proverb states: Only step by step can you get a monkey out of the bushes.
As some of you already know my time as project lead and trainer at af83 came to an end last December. Their Drupal team will continue to be lead by the more than capable Damien Tournoud (@damz), one of the most prolific core Drupal contributors out there.
During my time in Paris I had a blast co-organizing DrupalCon Paris, helping grow the French community and being part of the team that founded l’association Drupal France et Francophonie, the French Drupal Association.
It’s made me realize that community work is what makes me get up in the morning: the connecting, the building, the learning. It’s awesome to witness and a privilege to take part in.
It won’t come too much as a surprise then, that we decided to move to Senegal (West Africa) to continue the work started in Paris: to support the use and development of open source software (and Drupal in particular, of course) throughout West Africa.
This work will be funded through three channels:
I’m particularly happy we can finally unveil Bantalabs. Co-founder Simon Elliott and I have been preparing this venture for months – defining the core goals, fleshing out the business plan, connecting with higher education institutions and building the site.
We’re really excited about this new chapter in our lives. We have high hopes and ambitious plans. We’re going to have a lot of fun.
Yes, it’s that time of year again: Brussels is gearing up for the annual Free and Open Source Software Developers’ European Meeting. This year Boris Doesborg managed to secure a Drupal Dev Room, so we’re celebrating the Drupal Dev Room’s third Birthday. Yay!
To the point: the Call for Talks ends January 23rd, so if you’ve always dreamed of talking about Drupal in front of the geekiest, Europeanest audience ever, you know what to do!
We’ve been running a small educational non-profit – Edulogos – for over three years now. Until recently edulogos.org has been little more than a WordPress blog with a few extra pages and an off the shelf theme. It was one of the first sites we installed on our then brand spanking new Dreamhost account and we were happy with the results.
Over time however, teaching and project work got in the way of publishing much content. Maintenance was neglected and the limits and drawbacks of Dreamhost became a detractor for giving the site the love it deserved.
We decided it was high time to redesign the site and move it over to Drupal to give it room to grow. Like repotting a plant. “Liefde en substral”, as they used to say in our home country.
Knowing how data migrations are seldom without incident, we prepared for the worst. Surprisingly the migration was over before we got to our second cup of coffee that morning. The rest of the day was spent selecting and tweaking a theme and setting up some notification functionality.
We kept the new theme and functionality as simple as possible and used only a small number of tools and contributed modules:
Contributed Drupal modules:
Using Drush is not required, strictly speaking, but do yourself a favor and get to know it. Drush is a command line tool that lets you do a variety of very interesting things much faster than doing them click by click through your file manager and Drupal administration interface.
In this case, we used Drush to download and install Drupal 6.15 and the modules and theme listed above:
cd /var/www mkdir edu cd edu drush dl drupal cd drupal-6.15 drush dl trackback pathauto rules mollom twitter views admin_menu wordpress_import summertime drush enable trackback pathauto rules mollom twitter views admin_menu wordpress_import
Again there’s nothing stopping you from downloading individual .tar.gz files, unpacking them, moving them to sites/all/modules and cleaning up the archive files. You’ve got to admit though, that drush dl and drush enable are a pretty sweet deal.
1. Export from WordPress
As per the wordpress_import instructions, we went into our WordPress admin interface, exported our content into an xml-file and saved it locally.
2 Import into Drupal
We made sure WordPress_import and its dependency Trackback were enabled and made our life a little easier by installing Admin_menu – we’re suckers for dropdown menus.
WordPress_import takes a previously generated WordPress export file and imports content into nodes, comments into, well, comments and categories into taxonomy terms. Users are created on the fly too, if they don’t already exist.
Knowing how tricky data migrations can be, we were pleased the data import went flawlessly. Granted, the old Edulogos site only contained a good hundred content items, one user and maybe a dozen categories, but still. Kudos to Yann Rocq for a tool that works as advertised.
3. User friendly and search engine friendly URLs
We enabled Pathauto so our blog posts and other content items get nice and tidy urls like /blog/monday-pancake-day instead of /node/42.
4. Avoiding comment spam
Though captchas are an ok solution, we really like the way Mollom attacks the problem. Mollom is a free anti-spam service that will analyze the contents of comments and present the user with a captcha if and when it thinks a message might be spam.
The only thing we needed to do here is create an account at http://mollom.com, generate a set of API keys, enable the mollom module in our Edulogos site, enter the keys and select which forms we want Mollom to protect. In our case it made sense to let Mollom protect the comment and contact forms.
5. Automatic comment notifications
Wouldn’t it be nice if content authors would be notified of new comments? We thought so too. Enter Rules, a marvelous module that allows you to set up specific actions that need to be performed automatically under certain conditions when certain events (triggers) occur.
We set our notification rule up like this:
Action configuration screenshots:
6. Twitter integration
We wanted to promote our twitter account (twitter.com/edulogos_vzw) and show our latest tweets in the sidebar. Walkah’s Twitter module does exactly that. Actually it does much more than we need, so we know there’s some nice functionality waiting for us when we’re ready.
We just wanted to display the tweets of one single twitter account in the sidebar. We entered our twitter credentials and then went to the block administration screen, only to find no twitter related blocks for us to use. After a couple rounds of clearing the cache, running cron and refilling our coffee mugs, inspiration hit us and we turned on the Views module.
Lo and behold, a ‘user tweets’ and ‘all tweets’ block magically appeared. We put the ‘all tweets’ block in the right sidebar, and Bob’s your uncle.
In terms of visual appearance we weren’t going for high originality. We just wanted a nice and clean, professional yet simple design. The Summertime theme fit our needs nicely and we spent the rest of the afternoon tweaking the css, playing around with font sizes and making the Twitter block look nice.
Everyone has their own way of deploying a site, whether it’s through FTP, SSH, a version control mechanism or a homegrown script. We used git, a distributed version control mechanism, together with Github, a git repository hosting service. How we fit git and Github into our workflow is a story for another day.
We’re very pleased with how we migrated our old WordPress site to Drupal, picked and customized a new design and added new functionality – all within a single day and 8 to 10 coffees.
We were able to keep the number of contributed modules to a minimum and didn’t even make a view for the front page: since we had only one content type, we just use the default front page (http://example.com/node). We’ll have a lot less spam comments by using Mollom and we’ll be quicker to respond to comments now we have automatic notifications in place.
Finally, the code is now under source control and we have a script in place to deploy from Github and restore an hour-old database backup whenever we want, but more on that later.
If you’ve got any short-but-sweet redesign/redeployment stories to share, leave a comment!