Drupal is a free software package that allows an individual or a community of users to easily publish, manage and organize a wide variety of content on a website. Tens of thousands of people and organizations have used Drupal to power scores of different web sites, including
Drupal is ready to go from the moment you download it. It even has an easy-to-use web installer! The built-in functionality, combined with dozens of freely available add-on modules, will enable features such as:
and much more.
Drupal is open source software licensed under the GPL, and is maintained and developed by a community of thousands of users and developers. Drupal is free to download and use. If you like what Drupal promises for you, please work with us to expand and refine Drupal to suit your specific needs.
Drupal is more than software - it is a project and a community. This section presents the structure and decision-making process in Drupal. There are various roles and responsibilities that people can assume in the Drupal project.
By building on relevant standards and open source technologies, Drupal supports and enhances the potential of the Internet as a medium where diverse and geographically-separated individuals and groups can collectively produce, discuss, and share information and ideas. With a central interest in and focus on communities and collaboration, Drupal's flexibility allows the collaborative production of online information systems and communities.
For developers Drupal aims for a development system that is:
For administrators, Drupal aims to provide solutions that are:
For users, all elements of the Drupal user interface should be:
In 2000, permanent Internet connections were at a premium for University of Antwerp students, so Dries Buytaert and Hans Snijder setup a wireless bridge between their student dorms to share Hans's ADSL modem connection among eight students. While this was an extremely luxourous situation at that time, something was missing. There was no means to discuss or share simple things.
This inspired Dries to work on a small news site with a built-in webboard, allowing the group of friends to leave each other notes about the status of the network, to announce where they were having dinner, or to share some notewhorthy news items.
The software did not have a name until the day after Dries moved out after graduation. The group decided to put the internal website online so that they could stay in touch, continue to share interesting findings, and narrate snippets of their personal lives. While looking for an appropriate domain name, Dries settled for 'drop.org' after he made a typo to see if the the name 'dorp.org' was still available. Dorp is the Dutch word for 'village', which was considered an appropriate name for the small community.
Once established on the Web, drop.org's audience changed as the members began talking about new web technologies such as moderation, syndication, rating, and distributed authentication. Drop.org slowly turned into a personal experimentation environment, driven by the discussions and flow of ideas. The discussions about these web technologies were tried out on drop.org itself as new additions to the software running the site.
It was only later, in January 2001, that Dries decided to release the software behind drop.org as "Drupal." The motivating factor was to enable others to use and extend the experimentation platform so that more people could explore new paths for development. The name Drupal, pronounced "droo-puhl," is derived from the English pronunciation of the Dutch word "druppel" which stands for "drop."
To learn more about the history of Drupal, see also Drupal videos from Drupalcon (2006) in Vancouver.
As a communication center and project management space, drupal.org includes members who use Drupal as a personal website solution; IT professionals implementing Drupal for clients; and programmers, writers and others contributing to the growth of the Drupal open source project. Members work together to maintain extensive development and support resources on site:
Learn more
See the links below, the other sections of The Drupal Handbook, and the many discussions in the forums for more information.
After Drupal had been created, an obvious matter was the choice and creation of a logo. Of course it would have to do something with a drop... or water.
The inital idea was simple: a drop in a circle. . It was featured as an "O" in a liquidish "Drop".
When the community grew, the idea came up of a cartoony drop with a face. Steven Wittens (UnConeD) created a 3D drop, but the idea didn't get too far mainly because 3D is hard to print, hard to edit, etc.
When the logo-issue had come up again, Kristjan Jansen (Kika) came up with idea of putting two side-way drops together to form an infinity-sign. When put into a filled circle, it resembled a face. After some more work by Steven Wittens, the Druplicon was created: a stylised drop with the infinity eyes, a round nose and a mischievous smile.
That's the 'story' behind it... I like the idea that the infinity-eyes symbolise the infinite possibilities that Drupal offers :)
See more versions of the logo in the marketing section.
Documentation and support is collaboratively provided by the Drupal community. Members span all Drupal roles and skill levels. Remember that you are dealing with people, so etiquette matters. References:
If you discover or learn about a potential error, weakness or threat that could compromise the security of Drupal, please mail your concern to the Drupal security team: security@drupal.org. Please provide as many details as you can about the environment, Drupal version, modules used, their versions and so on.
If you are required to encrypt your report, use the OpenPGP key: 0xA1FDFAC2.
Our policy is one of full disclosure; we will never withold information about a security problem and hope that it won't be discovered by others. However, public announcements will only be made when the threat has been addressed and a secure version of Drupal is available. We ask that when reporting a security issue, you observe these same guidelines, and beyond communicating with the security team, do not share your knowledge of security issues with the public at large.
As soon as we learn about a security issue with a contributed module, we forward that to the maintainer of said module with a deadline. As soon as the maintainer fixed the problem, the security team will issue the relevant advisory with instructions on how to upgrade. However, if the maintainer does not fix the problem within the deadline, an advistory will be issued nonetheless, but we will advise to disable the module and we will disable the project as well.
The most important help you can provide is reviewing proposed patches with a security mindset. You can also help by reporting issues and working with the team on a fix.
Welcome to the community.
The drupal.org community is comprised of a diverse group of people; from developers to neophytes, professionals to hobbyists, and contributors to non-contributers. Using Drupal as a foundation, you can build a powerful flexible website.
As with all powerful tools, what you get out of it depends on what you put into it. With a base Drupal install, you can build a fairly powerful database driven site without knowing PHP. If you need something beyond what is provided with the base install and the more stable contributed modules, you will need to be familiar with PHP and databases (primarily MySQL), be willing to learn about them, or be ready to pay someone for their services. If you are familiar with developing, then you will want to spend time learning Drupal's API and read through the Developer's Guide. The mail list and archives is also a good source of information for development.
As with all communities, members have many vigorous discussions over various approaches and viewpoints while others work to provide helpful support to friendly newcomers and even the occasional troll. To make the forums a more pleasureable and productive experience for all, be sure to read and keep in mind the forum posting tips.
Open source communities work best when everyone jumps in and helps out. The handbooks mention a number of ways anyone can contribute. Once you have installed and begun configuring your site, you can easily lend a hand by assisting others in the fourms who have the same basic questions you once had. Whether you help in the support forum, write or revise documentation, review patches, or create patches, your help is always welcome.
So you've decided to jump in and hitch a ride with Drupal? That's great! The Drupal community welcomes everyone who uses the application for their own needs, be they personal, corporate, community-based, or otherwise.
Whether you contribute back to Drupal or not, the crew enjoys having your company: after all, it is a very long journey. They also know that many of you do your bit by recommending Drupal to others.
All of you count, because you all contribute to the size of the Drupal community - and the more people there are, the bigger Drupal is, and the better it becomes.
What's more, it is understood that you have to be a user before you can become a contributor, and that many of you have the potential to contribute your own valuable skills to Drupal, once you've learnt a bit more about how it all works.
However, you should realise that you're benefiting from the generosity of hundreds of other people who have made Drupal the great platform that it is, and you're doing it at no cost.
All that is asked of you is that you appreciate the time and effort that others have put into Drupal on your behalf, and that you abide by one basic rule of etiquette:
Don't start making demands!
Drupal is a volunteer effort. You're welcome to suggest features. You're welcome to point out bugs or usability problems. You're welcome to politely ask for help. But do not angrily rant about the features that Drupal lacks and that you require of it, and then demand that "the developers" address said shortcomings as soon as possible.
This is a good way to annoy the rest of the community, who do not deserve to have their countless unpaid hours of service rewarded in this manner, and to find yourself without any further support.
As a member of the community you have no obligations to any other member, but neither do any other members have any obligations to you.
Even if you don't code, there are many ways to contribute to Drupal, participate in the community and influence development. A good place to start is to read these pages:
Drupal.org README first
HOWTO: Enact change within the Drupal community
Frequently, people complain that the process of contributing back to Drupal is overly difficult.
Additionally, people say that the Drupal community can feel unwelcoming.
So, some good news. If you're reading this, you are part of the Drupal community. Welcome!
And, if you're a non-coder and/or a new user and want to contribute, here are some ways to start.
Often, the questions in these forums are from users who are having hard time getting their heads around exactly how to use Drupal. People new to Drupal have a perspective many experienced users lack. As a result, new users are often the most effective at helping fellow newcomers.
So, welcome aboard, and thanks for your contributions to the Drupal project.
A lot of people have a lot of suggestions for how the Drupal community could be improved. This is fantastic, as it shows that people genuinely care about Drupal, and want to see it improve.
However, it is unrealistic to expect every request to be implemented. Drupal is a community of volunteers, and since there are more things to be done than there are people to do them, those volunteers are forced to pick and choose their battles. Changes also take time; even changes which are "technically" simple (such as enabling a module or two on Drupal.org) need to be given consideration in terms of how useful they will be to the community as a whole, whether there are any adverse effects to doing so, and whether or not effort is best spent there or in another area which may have a greater long-term benefit.
Therefore, a much better and more effective approach than merely asking for change is to take steps to enact change yourself. "Own the problem" -- if you see something you don't like, resolve that you will do what you can to help fix it. Drupal's community provides countless ways in which to do this: participating directly in development discussions, adding or submitting corrections to handbook pages, submitting modifications to modules, and so on.
The success of how your ideas are received depends a lot on your approach. While there is no guarantee that an idea will be adopted into the project, here is an outline of steps detailing the best practice method that more experienced members of the community tend to follow in order to get their ideas heard:
1. Inquire
Ask "why is this like this?" Don't make assumptions. Maybe there's a good reason. Try to find out who the people are behind the decision-making process for your particular issue, and talk with them to see if there's a way to create a solution that both meets your own needs and satisfies the existing requirements.
2. Research
See what other solutions are out there that you might be able to extend to meet your needs. See how other people are handling the problem you're currently facing. Talk with other community members to see if they see merit in your idea, or if they have an alternate approach.
3. Propose
In as much detail as possible, outline the steps to fix the problem. Do a mock-up of what you think the solution would look like, and describe how it would work. Anyone can propose an idea. "I think Drupal should do this." Great! But an idea that has been researched, that is backed up with a plan, and which is able to quantify its purpose and effectiveness is far more likely to get attention and to later be implemented.
4. Refine
Get feedback from the community, as this can often improve upon your original idea. Take criticisms and either address them or incorporate them into your plan.
5a. Be patient
Depending on how well you've written your proposal, you might catch the eye of a developer who says, "Yes! I know exactly what you mean, and I want that very thing too!" You might catch the eye of someone with money who says, "Yes! I will pony up $500 to put into a pool for that feature!" which will in turn attract a developer.
However, bear in mind that change in the Drupal community is evolutionary rather then sudden and immediate. Change occurs over weeks and months rather then days and hours. Discussion tends to occur in a time lagged fashion on the forums and through email over time in collaboration. It's not just one person that makes the decision, it's generally a group consensus. Keep in mind that while your proposal makes sense to you, it may not make sense to a majority of others at first.
5b. Be willing to DIY
On the other hand, you might receive luke-warm acceptance, or you might get a lack of response because people don't fully understand your idea and how it would work. Sometimes the best matter is to take things into your own hands, and Drupal.org gives you literally dozens of opportunities to do so. You can:
....and on and on and on.
By contrast, here are some things that will NOT help enact change:
Accusations
Some people take the approach of talking in a very accusatory manner toward developers, implying that they are lazy, selfish, uncaring, and worse. Nothing will make people less sympathetic to your cause than taking this kind of attitude toward them.
Demands
No one from this community is being paid by "Drupal" to do work, so they tend to go after issues that interest them, or issues that they're being paid by their employers to address, and so on. That may mean that no one has the interest or the time to fix your specific issue. Either accept that, or take steps to fix the issue yourself, as outlined above. Demanding that it be done only makes people less willing to help.
Impatience
Rome wasn't built in a day, neither was Drupal, and neither will be your brand new concept. Things take time in order to be properly thought-out, planned, and implemented. Accept this, do not be frustrated by it. If every idea was thrown in willy-nilly, we would not have the stability of a system which we all know and love.
Does this sound like a lot of work? You're right, it is. While none of these steps need take a ridiculous amount of time and preparation individually (an "inquiry" could be a 5 minute conversation on IRC, and a "proposal" could just be a forum post), it requires free time, energy, patience, commitment, and skill to see changes through. And even after all of this work, sometimes ideas *still* aren't implemented for various reasons (read more on the decision-making process at http://drupal.org/node/10261). So try to realize that it is really pretty unreasonable to expect other people both to have all of these qualities, AND to be willing to drop everything and work on your specific issue, all at no cost to you. Have some compassion for the fine folks running and participating in the Drupal community, and take responsibility to do what you can in order to make it easier for your ideas to see the light of day.
Welcome to the community!
Drupal is a highly configurable, modular content management system. Before you can answer if Drupal is right for you, consider a couple of questions: Which type of Drupal user are you, and what are your needs?
Below is a list of common user types followed by Drupal features. If the features meet your needs and you have the skill-set required to implement them, Drupal might be a perfect system for you. (See the list at the bottom of this page for more on required skills.)
I'm a Blogger and I need...
Skills needed: end-user, administrator
I'm evaluating Drupal for my organization/company and we need...
Skills needed: evaluator, end-user
I'm a community organizer and I need...
Skills needed: evaluator, end-user, administrator, site developer (to some extent)
I'm a small business owner and I need...
Skills needed: evaluator, end-user, administrator, site developer (to a limited extent)
I build or design websites for clients and I need...
Skills needed: evaluator, administrator, site developer, developer (to some extent)
I'm a programmer and I need...
* a robust, well-designed, modular system that I can customize and extend
* well documented APIs
* system and architecture documentation and coding standards
* access to a community of other developers
* a rich feature list
Skills needed: administrator, programmer
Do you know what type of Drupal user you want to be? If you do, review the skill sets below to see what you'll need to get started:
Now is a good time to learn more about Drupal. The Case studies section examines typical types of sites that use Drupal and gives links to real sites of each type. This section includes a listing of hundreds of Drupal sites.
In the Feature overview we survey some of the most important and commonly deployed features of Drupal.
A discussion of the merits of using Drupal over writing a custom Web-application framework to support your project is presented in Rolling your own system vs. using Drupal.
Take a moment to visit some exceptional Drupal websites that exhibit the versatility of this tool. These sites display how Drupal sites can be built to meet many different functions and needs while still being graphically appealing and dynamic.
Drupal meets the needs of different types of web sites:
Community Portal Sites If you want a news web site where the stories are provided by the audience, Drupal suits your needs well. Incoming stories are automatically voted upon by the audience and the best stories bubble up to the home page. Bad stories and comments are automatically hidden after enough negative votes. Examples: Debian Planet | Kerneltrap
Personal Web Sites Drupal is great for the user who just wants a personal web site where she can keep a blog, publish some photos, and maybe keep an organized collection of links. Examples: urlgreyhot | Langemarks Cafe
Aficionado Sites Drupal flourishes when it powers a portal web site where one person shares their expertise and enthusiasm for a topic. Examples: ia/ | Dirtbike
Intranet/Corporate Web Sites Companies maintain their internal and external web sites in Drupal. Drupal works well for these uses because of its flexible permissions system, and its easy web based publishing. No longer do you have to wait for a webmaster to get the word out about your latest project. Examples: Sudden Thoughts | Tipic
Resource Directories If you want a central directory for a given topic, Drupal suits your needs well. Users can register and suggest new resources while editors can screen their submissions. Example: Entomology Index
International Sites When you begin using Drupal, you join a large international community of users and developers. Thanks to the localization features within Drupal, there are many Drupal sites implemented in a wide range of languages. Examples: PuntBarra | cialog
Education Drupal can be used for creating dynamic learning communities to supplement the face-to-face classroom or as a platform for distance education classes. Academic professional organizations benefit from its interactive features and the ability to provide public content, member-only resources, and member subscription management. Examples: ENGL 420S | WPA
Art, Music, Multimedia When it comes to community art sites, Drupal is a great match. No other platform provides the rock solid foundation that is needed to make multimedia rich websites that allow users to share, distribute, and discuss their work with others. As time goes on, Drupal will only develop stronger support for audio, video, images, and playlist content for use in multimedia applications. Examples: Terminus1525 | Project Opus
Drupal-related reviews and analyses of different software tools and platforms.
Telecentre.org has outlined plans for a distributed network of telecentre network sites around the world, which will include a site for telecentre.org itself. This document outlines the process we followed for choosing a telecentre.org web platform; the platform we ultimately selected was Drupal. For the specific requirements and overall web strategy that guided this process please see the separate telecentre.org online strategy document. The overall vision is of a network of sites that will likely run on a variety of platforms, including a growing number of sites that run on our Drupal-based “support net in a box”.
RSS offers the obvious means of sharing and aggregating information across the sites in this network. Because telecentre end users are often accessing the Internet with low-bandwidth or intermittent connectivity, and RSS-based strategy also offers options for getting content easily and storing it locally for later reading. By tagging (assigning keywords to) as much of the sites' content as possible, it will be easy to organize content across sites and even across multiple languages. The implementation of RSS and tagging was thus central to our review of software options.
Our search for the optimal web platform for the telecentre.org support-network-in-a-box (SNIAB) focused on options that might combine content management features (like the ability to easily create and edit web pages, register users, and automatically create navigation structures) with community and collaboration features (like RSS, blogging and wikis). We initially expected to choose a separate (though compatible) platform for the event-in-a-box (EIAB), with some overlapping functionality. As our vision for both SNIAB and EIAB grew more nuanced and concrete, we concluded that there would be significant advantages to selecting the same platform for both purposes. The primary advantage would be the ease of incorporating event-driven content into the flow of content among telecentre network sites; a secondary consideration was that it would be easier for telecentre partners to become familiar with a single tool, rather than two.
We gathered preliminary candidates by reviewing the tools used to create sites with community features, reading online discussions of CMS tools for the non-profit sector, and soliciting suggestions from colleagues. We wanted to find a tool that wasn't just a CMS with a bunch of blog-like features attached to it; we wanted a tool that was fundamentally suited to a distributed network in which content would be continuously exchanged among sites. We also wanted to ensure that sites that were not built on the core platform would still be able to access content from the sites that were; we recognized that RSS was the only standard that could serve this purpose.
The goal of establishing a distributed network that circulated content via RSS led us to three core questions that served as a filter on our potential platform:
1. Has this platform been used to rapidly deploy a large number of interlinked sites from a basic template?
2. How widely does the platform integrate RSS into its structure – both in terms of creating outbound RSS feeds and in enabling easy, flexible aggregation of inbound RSS feeds?
3. Does this platform support blogs or wikis, which are the most common tools for online community and collaboration?
These three questions provided a litmus test for whether a platform had “community DNA”, and allowed us to quickly narrow a long list of possibilities. Some of the initial options that were set aside due to lack of community functionality included:
Ekton: no blogging
Kintera: minimal RSS orientation
MCMS: no blogging
Red Dot: blogging not core
Sharepoint: no blogging
SiteRefresh: RSS feeds are not core to software
We took a closer look at seven options:
APC ActionApps: The distributed network model is central to the design of ActionApps, which lets users share “slices” of content with other ActionApps sites. The limitation of the slice model is that it is a content distribution scheme that is specific to ActionApps, so any telecentre network sites running on other systems would not be able to participate in the content-sharing scheme. While there is some RSS support it is not the primary mechanism for content-sharing, and both blogging and wiki functionality are still under development. We were also concerned that the small developer community for ActionApps did not promise significant growth on the platform.
Mambo: The user and administrative interface for Mambo was one of the best-designed options on our shortlist. We were also interested to note the emergence of Soapbox, a Mambo toolset geared towards the nonprofit community. The Soapbox toolset is however limited (at this point) to integration with the Democracy in Action CRM, and to single sign-on among sites. The information architecture of Mambo itself proved incompatible with the telecentre.org project, since it is structured around categorization (rather than tagging), which in practice imposes such limitations as precluding multiple categorization of inbound RSS feeds. Since much of the telecentre.org network's content will need to be distributed to multiple categories (e.g. a story on a Bolivian wifi project needs to be tagged “wifi” and “Latin America”), the categorization structure was a deal-breaker.
Plone: As a CMS based on the Zope platform, Plone offers much greater programming extensibility than other CMS options we considered. The flip side of this virtue is that Plone's relative advantages are much less compelling for a project that (like telecentre.org) specifically wants to limit its custom programming commitments. Ultimately our biggest concern was that Plone's RSS aggregation capacity was not part of its standard install; while adding an aggregation module is a trivial technical challenge, the lack of native aggregation support spoke to the platform's orientation towards single-site content management rather than distributed community.
SocialText: We used SocialText as a platform for circulating our requirements, which gave us an opportunity to try out the software in action. SocialText was appealing primarily as an EIAB option, and once we decided to focus on choosing a single platform for both EIAB and SNIAB, SocialText made little sense. In particular we found that its pricing model – based on per-user or per-day pricing – made little sense for our purposes, and reflected the fact that it is really a collaboration platform rather than a content platform.
Userland Manila: As a CMS that began as a blogging platform, Manila seemed like a promising option for a community-oriented web platform. However it lacked many key features we required, including wiki support and flexible, native RSS support. While it would be possible to extend Userland with scripts that allowed (for example) aggregation of different RSS feeds to different areas of a site, the extent of custom-scripting needed to effect the kinds of RSS control we'd like indicated that Userland was oriented to single-site CSS rather than distributed network community.
TIG (Taking it Global): Taking It Global is an NGO that runs both its own TIG community on a homegrown platform, and offers that platform to other users (such as the Digital Divide Network). The platform is specifically oriented toward supporting multiple sub-sites, but its model for supporting multiple sites is based on storing all sites on a single server (and in a single database) rather than as a truly distributed network; this would make it difficult to integrate non-TIG sites into a TIG-based telecentre.org network. While we were confident in TIG's ability to quickly and efficiently deliver additional programming as needed, the relatively long list of features that would require custom programming for our purposes (site-wide tagging support, separate aggregation pages, wikis) again suggested that the TIG platform was not fundamentally oriented towards an RSS-based distributed network.
Drupal: With a fast-growing user base in the non-profit sector, Drupal's strong online community focus made it an appealing prospect. Nonetheless we were concerned about documentation and interface issues and its wiki support. Our wiki concerns were resolved by a demonstration of a Drupal site with installed wiki-like features that fully met our needs. Documentation remains a concern but appears to be a priority for both Bryght and CivicSpace, two major players in the Drupal community. Likewise an improved administrative interface is high on the development agenda at CivicSpace, and may be partly manageable in the shorter run by implementing a custom theme for administrators.
Most importantly, Drupal was alone among all CMS options in its compatibility with a distributed network approach. The platform is essentially built for exactly this kind of approach: it supports ubiquitous outbound RSS feeds, complex aggregation of inbound feeds, per-feed or per-item non-exclusive tagging, and native support for blogging. Compared to the other options, which are virtually all CMS platforms that have developed distributed community features, Drupal is innately oriented towards community networking and distributed content creation. The following outlines how we anticipate using particular features of the Drupal platform to support core elements of the telecentre.org web strategy.
Most of us who have worked closely with Drupal know that it's superior to other products out there. But when asked why, we seem to have a hard time presenting our case. Either we become too technical (in which case we turn away non-techie users) or we gush incomprehensibly about nodes and taxonomies (in which case we turn off even the programmers!).
Here's an attempt to explain Drupal to both the technical and non-technical audience. Those who are not necessarily programmers, but have brief experience in setting up and maintaining their own websites and intranets will also understand the language. The essay is being revised, so please post your comments to help me make it better!
For the original article with photo's, please visit:
http://kleercut.net/en/open-source-campaigning
Every time we see traffic coming from a discussion forum pointing out that the Kleercut campaign site is using the popular Drupal open-source content-management system, it becomes more convincing that there is a philosophical or political alignment between the progressive community and the free-software movement.
When we look further and find the Wikipedia entry on Kimberly-Clark and Kleenex, an article on CorpWatch and another in the ever-popular Grist magazine — all sites supported by free and open-source software — it became a sign that we needed to speak up and add our story to the growing collection of literature on grassroots, open-source-powered campaigns.
It’s simple: Kimberly-Clark, the world’s largest manufacturer of tissue products, famous for its Kleenex brand, destroys ancient forests around the world. It does this to create consumer products that are used once and then thrown away or flushed down the toilet. Kimberly-Clark has been linked to the clear-cutting of ancient forests in Canada and the United States, including forests that are home to threatened wildlife like the woodland caribou and wolverine. The Kleercut campaign is an international corporate campaign to pressure Kimberly-Clark to clean up its act.
The Kleercut campaign launched in mid-November 2004 and has steadily grown into one of the more successful online forest campaigns in recent Canadian history. Month-over-month, more activists have visited the site, taken action, spread the word to others and joined the Forest Defenders e-mail list, which has grown at rate of about 1000 new sign-ups each month.
At the core of the Kleercut.net Web site is the highly regarded Drupal content-management system — that much is obvious to most folks who take time to look under the hood. Although the campaign is only taking advantage of a small number of the available features, Drupal has proven itself (once again) to be lightweight, fast and flexible enough to meet a wide range of online campaigning needs.
However, the campaign’s success and growth are less about technology than about the open source networks that support projects like Drupal and CivicSpace. Specifically, it is the people, the ideas, and the free exchange of information across progressive activist networks that have helped to make the Kleercut campaign possible. From the dedicated Greenpeace forest campaigners, communications and Web staff, and volunteers — who are spread across Canada and the U.S. and working 24-7 — to the far-flung network of progressive “geeks” and online publications that have provided key direction and promotion at critical points in the campaign’s development. These networks have organically come together when needed to breathe life into a logo, a Web site and a simple idea: it isn’t necessary to wipe away ancient forests just to have Kleenex tissue paper.
At a very basic level, Drupal provides the public face for the campaign on the Web. It also has made it possible for campaigners to update the bilingual site at a moment’s notice — keeping the work of dedicated volunteer activists and their important campaign updated front and centre. This includes everything from adding new fact sheets, campaign material, and activist toolkits, to photo galleries of Greenpeace forest campaigners and volunteer activists adopting a local grocery store or challenging Kimberly-Clark on its own turf. We’ve also used Drupal effectively to list Kleercut events happening in communities across Canada and the U.S.
Sometime in August 2004, several small gatherings were held at Greenpeace to discuss a soon-to-be-launched anti-corporate campaign. In those meetings the campaign objectives, the strategy for achieving them and the tactics to be employed were all detailed. Drupal and CivicSpace were both discussed early on. There was a push to stay focused on the campaign plan and not the technology and eventually we ended up with a campaign calendar and a preliminary wire frame of the site and no firm technology commitments.
As the details were worked out, the Vancouver-based design studio Cowie and Fox worked magic on the Kleercut logo and branding.
Our next obstacle was determining how to empower online activists to get involved with the campaign through a series of interactions, like signing online petitions, sending targeted faxes and e-mails to Kimberly-Clark decision makers, forwarding postcards to friends, and receiving regular communication from the Kleercut campaigners about specific actions.
The challenge for the Kleercut campaign was that free and open-source campaign toolsets available in September 2004 were either:
Early on, we had contacted Zack Rosen from CivicSpace to ask about the status of phpList integration with Drupal or the CivicSapce project. Zack had been in touch with phpList’s developer, Michiel, to discuss the work that was being done on a mass-mailer module that would be able to connect to a variety of database-driven mailing engines. We also pulled Mike Gifford of OpenConcept into the conversation to explore the work he had done to integrate other similar tools into the back-end content-management system.
(Since then, several modules have been developed for CivicSpace to support advocacy, including petitions, tell-a-friend tools and a targeted e-mail delivery.)
Along the way, we also explored the following options:
In each case, the people we connected with were helpful beyond words; it was an illustration of the fluidity and openness in the network that connects so many of the progressive software developers and tech-oriented activists.
Ultimately, it was timing that pushed us to look at other options for the e-mail deployment and, ultimately, for the rest of the activist toolset that exists on the Kleercut.net site. The final decision to use Drupal instead of the CivicSpace branch for basic content management was a last minute choice made on a plane between Toronto and San Francisco. The Drupal team had announced a new stable release; CivicSpace was still based on an earlier version of Drupal. The user interface and theme engine improvements made the choice clear: the site had to be built in the next week and there wasn’t time to wait for CivicSpace to merge the newer version of Drupal into its code.
Over the course of the campaign, many “weak connections” (what social-network enthusiast would loosely refer to as people you know who aren’t close friends or family) have helped an organic network of dedicated and talented Web developers, online strategists and traditional campaigners coalesce into a well-organized and well-connected team. This is happening across North America and the world: from the early work done to mobilize for the historic Battle for Seattle, the Quebec City Summit or the more recent counter-conventions to the Republican National Convention and G8 gatherings.
An integral part of these mobilizations is the trust networks that are built over time, through face-to-face interactions. Groups like the Aspiration Technology Foundation in the U.S. is catalyzing these networks through events like the Advocacy Developers Convergence, Penguin Day and the SMSsummit or SMSactive. Similar, but much larger and focused on a range of communications issues, are events like the Designs on Democracy conference. And, for the past four years in British Columbia (that’s in Canada for all you Yanks!), a small group of people have gathered on Cortes Island — surrounded by old growth forest and ocean — to have an intimate discussion about the role of integrity, reflection, relationships and technology in campaigning, advocacy and social change.
It was though gatherings and networks like these that we were able to learn about the approaches and tools being used across the U.S. and Canada and to meet the people behind them. One organization at these gatherings was the recently launched ActionWorks.ca* — a social enterprise that was started to support the work of WildCanada.net, with the aim of offering their action centre technology to other NGOs as an earned-income initiative.
(*Sadly, ActionWorks has recently announced to its clients that it will not be able to continue and will be closing its doors. This leaves a relatively large hole in the landscape of advocacy tools for bilingual Canadian campaigns. If you know about French language tools in Quebec or France that are off the radar, please let us know!)
On November 18, 2004, the Kleercut.net site launched in English and French with full ActionWorks.ca integration to deliver bilingual e-mail and fax advocacy, send-to-a-friend postcards, “my actions” pages, and e-mail list management.
The next several months were a combination of building momentum and awareness around the campaign, both online and, more importantly, off-line — on the streets and in the stores where people shop. Street engagement, press conferences and store adoptions helped to build interest and intensity and made for great imagery on the Web site. Short articles and blog posts covered a range of Greenpeace-supported actions and a growing number of volunteer-supported actions. And, finally, we reached out to progressive online publications and news media like Grist, Corporation Watch, and Indymedia.org to amplify the message, in addition to working with tongue-in-cheek initiatives like Act for Love, the online dating site for activists.
In addition to the online articles and cross-site promotion of the campaign, Greenpeace Canada leveraged its own mailing list, in addition to using lists run by Greenpeace International and WildCanada.net, to increase the reach of the campaign to more than 150,000 activists in Canada and Europe. There was also outreach to a number of well-trafficked blogs and discussion forums to raise the issue of forest destruction and to point people to the Kleercut.net site. It’s rumoured that there will be even more covert “electronic-ops” in the months to come (though we can’t tell you exactly what).
What’s been most interesting to watch is the steady climb of the Kleercut site in Google’s rankings, as more and more network capital is built at a grassroots level. The more sites that get out the Kleercut message and point back to the site, the higher the ranking. Six months ago, the site didn’t even rank on Google — as of July 2005, the site is about No. 8 when searching for Kleenex and Kimberly-Clark. We’re aiming for No. 1.
In addition to putting the pressure on Kimberly-Clark on the Web, the campaign has been building a grassroots network of local activists across Canada and, more recently, the United States. Building on the experience of campaigns like the Billionaires for Bush in the U.S. — which leveraged a large network of local chapters to deliver innovative street theatre (capturing national media attention) — tools were launched to support local autonomous organization, specifically the Kleercut Groups (powered by the open source Sympa mailing list and hosted at NPOgroups.org) and the Kleercut Action Pack.
We realized early on that the success of our online activism is very closely tied to the success of our grassroots “in person” activism. They are very interrelated and support each other. We firmly believe that a campaign is successful when it bridges the technology gap and is based on coalition building and empowering the average person to take action.
Action Pack in hand, motivated and environmentally concerned citizens are taking a stand in their community and saying no to ancient forest destruction by Kimberly-Clark and Kleenex. Already there have been store adoptions from coast-to-coast across Canada and the U.S., and there are more local groups forming every day. The objective: a one-on-one, neighbor-to-neighbor, citizen-to-citizen movement that delivers the message along with the trust that exists in those local networks. The result: a magnitude of increased consumer pressure on Kimberly-Clark to end its environmentally irresponsible practices.
And there is much more being planned...new tools, new actions and new partners on the campaign. To stay tuned and to get updates, please take one minute right now to join the Forest Defenders list, to take action and send a message to Kimberly-Clark and to spread the word about this campaign.
If you’d like to help even more, please post a link to this article on your site (or reproduce it entirely). And, if you’re a Web developer, Flash designer, blogger, online campaigner, writer, editor, illustrator or just plain talented and pissed-off at Kleenex, please get in touch with us.
The Kleercut campaign team,
Christy, Earl, Eric, Phillip and Richard.
This part is dedicated to real-life examples of how drupal can help to solve your business problems. Please share the success of your drupal implementation.
Drupal is well suited for community plumbing, alright. But what if you want to apply its power, elegance, and simplicity to your corporate website? In this article, we explain our approach to creating a corporate website with Drupal, show you how to create your templates and arrange your content. So why would you want to enter into such a formidable endeavor?
Note: the original article is on contaire.com's site, and contains additional screenshots and illustrations.
Our requirements were quickly set:
We started development with the following ingredients:
The most prominent feature here is the horizontal navigation tabs. This has become a popular arrangement recently, very often enhanced with drop-down menus. In our case, there are no drop-down menus. The underlying implementation, however, should be easily extended to host these as well.
Three standard features of Drupal, a PHP theme function and a little CSS magic are used to implement the horizontal tab menu. The features are
For example, the entry "partner" links to "partner":/partner which is an alias for "collimator/4":/collimator/4, i.e., the two column listing of teasers for topic 4 ("Lebendiges Netzwerk").
What remains is a function that renders the menu:
<?php
function _contaire_menu($pid = 1) {
$menu = menu_get_menu();
$entries = array();
if (isset($menu['visible'][$pid]) && $menu['visible'][$pid]['children'])
{
foreach ($menu['visible'][$pid]['children'] as $mid) {
$style = (count($menu['visible'][$mid]['children']) ? menu_in_active_trail($mid)
? 'expanded' : 'collapsed')
: 'leaf');
$entry = array('style' => $style, 'link' => theme('menu_item', $mid));
$entry['kids'] = _contaire_menu($mid);
$entries[] = $entry;
}
}
return $entries;
}
function contaire_menu($pid = 1) {
return _phptal_callback('_menu',
array('pid' => $pid, 'entries' => _contaire_menu($pid)));
}
?>
In the PHPTAL theme engine we use, this function can be written into the @template.php@ file of our theme and be called from the file @page.tal@ as
<div id="header">
...
<div tal:content="php:contaire_menu(26)" />
</div>
Here is the menu entry for our custom menu.
Except for the horizontal navigation, the front page looks like standard Drupal, but looking more closely, even here there are interesting details:
There is one feature not visible on the site as presented to the public that are little edit buttons placed to the right of the headlines. These become necessary because we haven't linked our headlines to a detail view with tabbed local tasks, and
We have created "a small Drupal module":http://drupal.org/node/14920 to provide these features.
Porting our original content we needed a way to layout some pages in two columns. One example is our partners page (http://contaire.com/partner) where in addition to the two columns we have an introductory text at the top. We quickly settled on the contributed collimator.module but had to patch it to give us control over the way it sorts articles. The collimator offers the standard modes by-date and by-title to sort. We wanted to control sorting explicitly and abused a new node field _teaser_weight_ for this. The _abuse_ here is that actually this field should be a property of the table term_data but there is no easy way to add this without patching the taxonomy.module. We provided our changes as a patch (http://drupal.org/node/15240) to the collimator.module.
The single column text at the page top is simply the description of the page's taxonomy term, fed through Textile.
We just love our new page! Once we decided on the selection of modules and exactly for which features we would have to write some code the actual effort was well worth it. The phptal.engine has had its first live test and proved fun to work with.
All in all, Drupal again showed its greatness and that - with a little thought and planning - it can be used for many a corporate website.
CSC-SY.net has been recently migrated from PHP-Nuke to Drupal, the migration process involved moving stories, forum topics, polls, posts and comments, private messages, and user accounts, we also had to port the theme we were using with PHP-Nuke to PHPTemplate, localize Drupal into Arabic, and finally configure Drupal to provide PHP-Nuke's features (and much more), details of the reasons behind the migration, and of the process itself follow.
CSC-SY.net is an Arabic community website for computer science students, it was started one year and a half ago, we chose PHP-Nuke in the beginning for several reasons, it was easy to flip the layout to RTL, which is a must for an Arabic site, PHP-Nuke had an Arabic translation, and its features were close to what we had in mind when we planned for the site. we were aware of PHP-Nuke's security issues, but with 3rd-party patches and our own modifications it went well in the beginning.
During the period of time we used PHP-Nuke, we realized how poorly-written PHP-Nuke was, as the site evolved we needed new features to be added, and with PHP-Nuke it became a nightmare, because it usually involved modifying so many files, making version updates another nightmare in turn, we had to update individual files by hand to patch security vulnerabilities, exploits were often found and updates had to be done often, every while we thought of moving to a more secure CMS, but the site was doing OK overall and we could live with PHP-Nuke, until several months ago, when the site's control panel started acting strangely, most of the strings were missing and after some debugging we couldn't fix it, we decided it wasn't worth the hassle, it was time to move to a new CMS.
The site was aging and missed all the new web features, like blogs and RSS feeds. We wanted to end the PHP-Nuke security nightmare. Web standards played a role in the decision, the new CMS had to be XHTML/CSS complaint, use UTF-8 encoding, and needed to be active in development.
After some investigation, our choices were narrowed down and finally we decided to choose Drupal, the main reason behind it was the tight integration of all site sections, more specifically forum.module, although it looked basic in the beginning, several sites customized it to look and act like other popular forum packages, so we thought it would be possible with our site, on the other hand, using a CMS that features a forum module instead of integrating another forum solution meant better security and compatibility.
After some investigation and testing, we realized that the migration process had three major points: data migration, theme creation, and localization.
Data migration seemed easy in the beginning, given that many scripts were available to do the task, but after further investigation, it turned out that none of them did what we wanted exactly, each solution missed something that had to be migrated, our plan was to migrate almost all of the site's content stored in PHP-Nuke's database, the migration involved moving the following items:
* ~770 users
* ~240 stories and polls
* ~360 comments
* ~17500 forum posts
* ~7110 private messages
Data migration made us research how PHP-Nuke and Drupal store those items, and research the best way to move data from one system to the other, given the large amount of data needed to be migrated, we had to develop a set of scripts to migrate our data, we made use of the already available scripts, and improve upon them, to create a semi-automatic script that fixes PHP-Nuke's database oddities (like date/time being stored as text, or having duplicate usernames, ...), migrates the data to Drupal's database, and we had make sure our work to fix things after running the script is minimal.
In addition, we had several private sections in the PHP-Nuke site, like admin forums and private message, we had that in mind while working on the script, a bug in the script could expose private data to the public.
We opened a beta section on our site to let users test the migration process, the script evolved as members reported bugs, and in the final stages before the migration, it had all what we needed for the data migration to be complete.
We had minor problems while working on the data migration other than moving across databases, data in PHP-Nuke is stored in windows-1256 encoding, but Drupal uses UTF-8, unfortunately MySQL 4.0.x doesn't support UTF-8 natively, so we had to figure out some workarounds to get over this, Arabic characters take more that one byte of storage in UTF-8, MySQL