About Drupal

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.

History, mission and community

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.

Mission

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.

Principles

  • Modular and extensible.  Drupal aims to provide a slim, powerful core that can be readily extended through custom modules.
  • Quality coding.  High quality, elegant, documented code is a priority over roughed-in functionality.
  • Standards-based.  Drupal supports established and emerging standards.  Specific target standards include XHTML and CSS.
  • Low resource demands.  To ensure excellent performance, Drupal puts a premium on low-profile coding (for example, minimizing database queries).  Drupal should also have minimal, widely-available server-side software requirements.  Specifically, Drupal should be fully operational on a server with Apache web server, PHP, and either MySQL or Postgresql.
  • Open source.  Drupal is based on the open source philosophy of collaborative free software development and is licensed under the GPL.  Drupal is itself open source and builds on and supports other open source projects.  Specifically, Drupal is coded in the open source scripting language PHP and supports as primary data sources the open source database formats MySQL and Postgresql.
  • Ease of use.  Drupal aims for a high standard of usability for developers, administrators, and users.
  • Collaboration.  Drupal development supports open, collaborative information sharing systems and approaches.

Usability aims

For developers Drupal aims for a development system that is:

  • well-tooled with a system of hooks that provide ready means to accomplish most foreseeable coding aims that involve interaction with core elements

For administrators, Drupal aims to provide solutions that are:

  • easy to install and set up so that there is a minimum requirement for specific technical expertise
  • intuitive and self-explanatory so that administrators can easily find the configuration options they need
  • highly configurable so that site administrators can present just the interface they wish

For users, all elements of the Drupal user interface should be:

  • intuitive and self-explanatory so that users with minimal prior experience can easily discover, navigate, and use functionality
  • uncluttered so that users are not faced with a difficult task of sorting the essential from the non-essential

History

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.

Development and support

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:

  • Support. Users experiencing difficulties installing and configuring Drupal should first consult the administrator's guide, much of which is also available through help in the administration section of every Drupal installation. In cases where documentation fails to provide a solution, search the support forum and drupal-support mailing list archives. If the solution is not available, please write a detailed description of the problem, include the Drupal version number, and post it to either venue. Note: all support is provided on a volunteer basis and is dependent on the good will of community members; please be patient with any support requests.
  • Development. The Drupal developer's guide contains information on Drupal architecture, API specifications, guides for theme and module developers, and instructions for contributing your code to the project. The Bug tracker system should be used to submit bugs, ideas for new features, suggestions for improving drupal.org, and contributing ideas for usability and documentation. Those seriously interested in contributing to development should also consider joining the drupal-devel list.

Learn more

See the links below, the other sections of The Drupal Handbook, and the many discussions in the forums for more information.

Druplicon (the logo)

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.

The Drupal core

  • Founder and Lead Developer. Drupal was founded by Dries Buytaert, who retains primary control over the software and makes most decisions on proposed changes. In approving or rejecting proposals and patches, he gives special weight to comments made by individuals whom he trusts and respects based on their past contributions to Drupal.
  • Core committers. A small team that reviews proposed changes and maintains code. They are the only ones who have write access to the core CVS repository.
  • Maintainer. While not directly making decisions, maintainers have informal responsibility for a designated portion of the core (e.g., a particular core module). Individual areas of responsibility are listed in the file MAINTAINERS.txt. Maintainers are appointed by Dries. Core contributors who have made substantive contributions (particularly to a core component not individually maintained) may apply for Maintainer status by writing to Dries; Dries may also individually invite them.
  • Core contributor. Core contributors are those who contribute code patches or documentation for the Drupal core, contributions that are peer reviewed and then decided on by Dries or another of the core committers. It should be noted that anyone can submit patches against Drupal core.

Contributions

  • Contributions repository manager. The CVS repository of Drupal non-core "contributions" (mainly, modules and themes) has a maintainer, who reviews and approves applications for CVS access, and one or more other team members who fill in when the Maintainer is unavailable or otherwise occupied.
  • "Contributions" contributor. "Contributions" contributors develop and maintain "contributed" code packages that are hosted on the Drupal site but not part of the Drupal core. A contributions contributor has applied for and received write access to the "contributions" CVS repository. Contributions contributors are improving the overall reach of Drupal by producing and sharing enhancements that can be used by others. Contributions contributors are generally listed in the README or CREDITS files included in module and theme downloads.

Documentation and support team

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:

Users

  • User. Users are the people who use Drupal. Users don't generally contribute code but make valuable contributions by submitting bug reports or feature requests through the issues system (http://drupal.org/project/issues) and participating in the drupal.org forums (http://drupal.org/forums)

Security team

Goals of the security team

  • Deal with reported security issues.
  • Constantly review the code for potential security weaknesses.
  • Provide assistance for contributed modules' maintainers in dealing with security issues.
  • Provide documentation on how to write secure code.

How to report a security issue

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.

How we deal with reported security issues

  • Review the issue and evaluate the potential impact on all supported releases of Drupal.
  • If it is indeed a valid problem, the security team is mobilized to eliminate it.
  • New versions are created and tested.
  • New packages are created and uploaded to Drupal.org.
  • We will utilize all available communication channels to make it known that a security issue has been found and fixed, and what steps must be taken by Drupal administrators to protect themselves.

Disclosure policy

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.

Which versions are supported?

  • Not all historical versions of Drupal are actively supported only the current and one back (at this moment these are 5 and 4.7). Versions of Drupal that are not actively supported will not get security releases. It is therefore not recommended to run unsupported versions of Drupal. Please upgrade so that you will benefit from security releases.
  • The development branch of Drupal is not intended for production use and while security problems are fixed, security announcements are not issued. If you are using the development branch for testing or evaluation, we assume that you will update your code regularly.
  • The security team oversees the security of the code found in the core Drupal distribution. The security of contributed modules and code lies with the individual maintainers. See the process below.

Issues with contributed modules

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.

How to get involved?

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.

Security team members

  • Khalid Baheyeldin
  • Dries Buytaert
  • Robert Castelo
  • Heine Deelstra (team leader)
  • Robert Douglass
  • Neil Drumm
  • Uwe Hermann
  • Ayman Hourieh
  • Morbus Iff
  • Thomas Ilsche
  • Bart Jansens
  • Gerhard Killesreiter
  • Andy Kirkham
  • Erdem Köse
  • Kieran Lal
  • Karoly Negyesi
  • Adrian Rossouw
  • John VanDyk
  • James Walker
  • Moshe Weitzman
  • Matt Westgate
  • Steven Wittens
  • Derek Wright

Welcome README

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.

Hitchhiker's guide to the Drupal community

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

How non-coders and new users can contribute to Drupal

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.

  1. Help out in the forums. The following forums see a pretty good share of questions from new users who need some guidance about how to use Drupal.

    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.

  2. Take a look at the mailing lists. All of the mailing lists are archived; while reading through the archives is not for the faint of heart, it gives some good insight into the level of thought going into the Drupal project. If you want to contribute further, join the Documentation or the Support list. Both of these areas have opportunities where non-coders and new users can help out.
  3. At the risk of sounding like an etiquette manual, help keep the tone civil. Many people who post questions in the forums are frustrated, and that frustration shows in how they ask their question. Often, instead of asking a question, people rant, make demands, blame others, bait others, or do any number of things that are less than socially appropriate. While there is a very understandable temptation to give some questions the answer they deserve, please don't. Flame wars detract from the drupal community, and they can scare off new users. Keeping the tone civil and constructive helps ensure that new users will feel comfortable asking questions while getting started.

So, welcome aboard, and thanks for your contributions to the Drupal project.

HOWTO: Enact change within the Drupal community

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:

  • Submit a patch via the projects system to improve modules
  • Engage in discussion with developers via the mailing lists to improve infrastructure
  • Submit documentation with the handbook system to improve documentation
  • Put forward money to hire a developer who would otherwise be working on something else to address your issue.

....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!

Is Drupal right for you?

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.

Gallery: Images and links to the home pages of Drupal sites

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.

Case studies: descriptions of different types of sites and links to them

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

Reviews and Analyses

Drupal-related reviews and analyses of different software tools and platforms.

Choosing a platform for the telecentre.org distributed network

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”.

Envisioning an RSS-based distributed network

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.

Our goal: a platform with community DNA

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

Evaluating specific CMS options

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.

Choosing Drupal

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.

Drupal and the New Paradigm for Content Management

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!

http://digitalsolutions.ph/couchkamotereviews/newCMS

The Kleercut campaign and open-source networks

For the original article with photo's, please visit:
http://kleercut.net/en/open-source-campaigning

Why are we writing this article?

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.

What is the Kleercut Campaign?

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.

1,000 new activists a month

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.

Free software, open-source networks

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.

Drupal and CivicSpace (and a short history of how we got here)

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:

  • still in pretty major development (like the mass-mailer in CivicSpace)
  • mostly pieces that would need to be loosely coupled together (phpList, phPetition)
  • not designed with the needs of Canadian campaigns in mind (i.e., not easily made entirely bilingual to support both French and English).

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.

Building networks and social capital

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!)

Encouraging an open-source tipping point

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.

What's next?

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.

Sites that use Drupal

The old sites listing is off for now, please check out http://drupalsites.net and http://top.drupalsites.net for various Drupal based sites.

Success stories

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.

Contaire.com: a corporate website based on Drupal

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.

  • Both the layout and the underlying HTML of our old website needed a face lift.
  • We specialize in sophisticated content management solutions, yet our website consisted of static HTML pages with an absolute minimum of PHP code to avoid the worst code duplication. We knew we could do better.
  • At times we were slow to post updates of our site. The process of doing so should be more straight forward.
Our requirements

Our requirements were quickly set:

  • The site layout should remain largely as is, with two thirds for the main content area and a column of news headlines on the right.
  • There is a flat list of sections with articles, some of which arrange the teasers in two, others in a single column.
  • The sections can be accessed by a dynamical list of tabs at the top of the page.
  • Sections should have simple URLs, with some other articles having intuitive URLs as well.
  • The page structure is such that the front page features article or section teasers.
  • Initially, there will be no community features like comments.
  • Content should be editable through its front end view.
  • The site should validate as XHTML, and should further follow the guidelines for barrier free web sites.
  • Text formatting should be using Textile markup.
  • Technically, there should be as little as possible software development on top of stock Drupal. However, we wanted to develop templates using the PHPTAL engine and knew we would have to transform one of the standard Drupal templates to this notation first.
The ingredients

We started development with the following ingredients:

A dynamic horizontal tab menu

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

  • Taxonomies. We use a separate vocabulary "Sections" to organize content.
  • The menu is not linked directly to this vocabulary as would the Drupal module taxonomy_menu.module do, but rather is created through a customized menu.

    This allow linking menu entries to taxonomy pages, individual nodes, or two column pages generated by the collimator.module.
  • Finally, links in the menu are cleaned by assigning URL aliases to menu entries.

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.

A new teaser.module

Except for the horizontal navigation, the front page looks like standard Drupal, but looking more closely, even here there are interesting details:

  • Each teaser has a picture associated with it.
  • The teaser pictures float automatically to the left and right.
  • The "weiter" links are placed behind, not below the teaser texts.

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

  • the "weiter" link may link to an arbitrary URL.

We have created "a small Drupal module":http://drupal.org/node/14920 to provide these features.

Two columns, but sorted, please

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.

Conclusion

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 Migrated to Drupal

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.

Intro

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

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 didn't realize this, leading to chopped-off text, we developed a script to convert PHP-Nuke's database to UTF-8 first, without losing any text, it involved increasing the length of some fields, and using iconv, at the end, all text data was migrated successfully.

Another side of data migration was converting BBCode (used by Nuke's phpBB forums) to something Drupal could parse, in the beginning it seemed that bbcode.module could handle this, but later it turned out that phpBB adds random strings to BBCode, so we updated our scripts to strip them out, we decided to do so instead of converting BBCode to HTML because we were planning on installing bbcode.module anyway, we guessed members used to BBCode would prefer to use it over HTML after the migration.

Theme Creation

When we opened up the first Drupal beta on our site, members complained about two things, forum threaded look and the theme in general, we started with a theme based on SpreadFirefox, but the majority didn't like it, we switched to FriendsElectric later and got less complaints, but later we realized that we had to develop our own theme for several reasons:

  • Using a contrib theme from Drupal.org would make our site look like many other Drupal sites.
  • Our site would keep the look it had for a year and a half.
  • None of the contrib themes looked particularly similar to our original theme, or suitable for our site.

With that in mind, we started to port our PHP-Nuke's theme to Drupal, the original theme is based on tables, and hardly made use of CSS if it all, we based our work on Box_grey and ported the theme to XHTML/CSS, as I said earlier, Arabic is a right-to-left language, so the theme's layout needed to be so too, this complicated things a lot, especially that drupal.css doesn't take this into consideration, and assumes that the theme's direction is always LTR, after coding and debugging, we came up with a theme almost identical to the original theme, working well with Mozilla and IE browsers, the theme works with Opera and KHTML, but with minor annoyances.

Another aspect of the theme was making the forums flat, the forums were the core of the old site, and a major change from flat to threaded look wasn't welcomed by our community, so we worked on making the new forums look like phpBB, in other words, the forums' theme had to show the member's avatar, post count, registration date, and other info, to the side of the post body, the fourms should behave like phpBB in being flat, new replies should always appear in the bottom, with some theme work, it all was possible.

We also made modifications here and there to make the site look right, comment.module assumes the layout is LTR too, we had to fix this, we also added topic icons to the homepage, and did some changes to the user page.

Localization

As I said earlier, we chose PHP-Nuke in the very beginning of the site because it had an Arabic localization, later when we were evaluating current CMS's to choose what to migrate to, Drupal had "having a recent Arabic localization" as a plus,however, we then realized we couldn't use the localization available at Drupal.org, it wasn't updated to 4.6, wasn't consistent and had many typos, instead of fixing it, we decided it would be easier to start fresh, it didn't take long, and we had a localization customized for our site, right now all the site is fully translated into Arabic (including contrib modules we use) except for some parts of the admin area.

Drupal Configuration

After the migration work, Drupal needed to be configured to cover the old site's functionality, and provide new features we had in mind, Drupal's core covered frontpage news, polls, forums, comments, and user profiles, we installed many contrib modules as well, some of them are:

  • article: for the articles section of the site.
  • attachment: makes it easier for members to upload files with there posts.
  • flexinode + taxonomy_dhtml: for the downloads section.
  • image: for the gallery.
  • privatemsg: for private messages.

In addition to many other modules that add more functionality, the most welcomed one by the community is TinyMCE, we also have taxonomy_access for the site's private sections, like admin, mod, and active members forums, and quote, freelinking, and bbcode for easier posing of content, troll, mail, and adminblock for easier administration.

After the migration we enabled two new sections, blogs and wiki, both were welcomed by the community, and provided functionalities that weren't possible before, blogs provide a space for each member to talk about their personal matters, and the wiki is where the community collaborates and makes decisions.

Drupal's tight integration made the whole site more active, members used to prefer the forums over other sections, and given that the old forums (phpBB) weren't that integrated with the rest of the site (PHP-Nuke), many members didn't realize that content was posted to the other sections as well, now with Drupal, /tracker provides a list of all updates, forums feel more like a part of the whole site, comments on news, polls, as well as forum posts count towards member's post count, and many other small details that made members participate in all site sections now, thanks to Drupal design and integration.

Drupal's search engine friendliness made our site reach top 3 links in many Google searches for phrases that are major and popular in Arabic, the site is even the number one result for some generic single-word searches now!

Members are glad with the new features and speed of the site, there are some minor bugs here and there, but we worked/are working on fixing them quickly with the help of the community.

We believe that CSC-SY.net is one of the first Arabic sites on the Internet that utilize Drupal, have a right-to-left theme and full Arabic localization, and it's definitely the very first fully-Arabic community site powered by Drupal, we hope that the site will convince other Arab web admins to try out Drupal, seeing how it can handle Arabic just fine, we are sure they will be satisfied with it as we are.

A Final Word

I'd like to thank the Drupal developers and contributors for their awesome work that made our new site happen, I've done the migration process almost single-handedly, and now I'm very satisfied with the results, I'd like to give back to the community, I've already contributed two patches for contrib modules, and I have some more, I'm also willing to contribute the Arabic localization if it's possible, I'd like to thank the folks at #drupal-support, especially chx and BuddaBoy for their help, and brick for the interesting chats, since I've started with the migration, I usually stick in #drupal-support and offer help as much as my knowledge allows me to.

-Ayman (CSC-SY.net site admin)

Destination Bride - Wedding Resource Website Powered by Drupal

Website: Destination Bride

The owner's original dream for this website was to build a comprehensive resource directory for all major wedding destinations in the world; the completion of which was to coincide with the release of her new book on the topic. The problem was that her "static" website was nowhere near completion and was full of inconsistencies.

Problems with a Static Website

She found herself frustrated by the time and complexity involved in expanding the current "static" website that had been developed for her. Editing the pages with Macromedia Contribute was not too difficult, but waiting (weeks) for "the other" web design company to add a page, then to sort through the inconsistent or incorrect menu links was really gumming up the works. Just to add a database-driven menu system - without any other content management - was going to cost thousands.

In addition, much of the website was not spidered by the major search engines. The Javascript menu and non-clickable breadcrumbs (what's the point?) were suspected as the problem here. Most of the pages that were found by Google had no descriptions in the results. Many didn't even have titles! The website was not performing well in the search engines as a result.

The Task at Hand

I was originally asked if I could create a database for the menu structure. With our friend Drupal, I was able to provide a complete, content managed, SEO friendly website solution at a fraction of the cost of my competition. Here's how I did it:

  • Flexinode created the regional pages with data entry for area overview, climate, currency and other information. Eventually, flexinode will allow couples to maintain Personal Wedding Pages.
  • Taxonomy support for the Banner module was developed for use on this website. Advertisers sponsor regions and/or resource pages, and banners are served up according to respective vocabulary terms.
  • Menu on the Fly assisted in building the enormous resource navigation structure.
  • Edit as New allowed for the addition of the 29 identical resource pages listed under each of the 50 included regions.
  • Nodewords allows for the customization of keywords and meta descriptions. Default node titles alone helped place several of these pages in the top ten of Google - without any content yet!
  • Hopefully Google Sitemap will help.

  • I used the Image module to upload regional maps.
  • The Wedding Planning Packages are organized with Book pages (Drupal core) for easy browsing.
  • Amazon Associate Tools simplified the migration of her existing books from the old website to the new one. The "related books" feature for nodes will allow for future additions.
  • Mail allows for the sending of simple newsletters to registered users and advertisers.
  • Originally, FCK Editor was installed to allow the website owner and her staff to edit the pages, but they decided against editing the content themselves. But they could if they wanted to!
What About the Design?

She was also very pleased that the design didn't have to change. I started with the box-gray theme and was able to recreate the look and feel of her existing website almost exactly. Promoting nodes to the front page took the place of the few little blurbs placed on the previously "static" home page. Blocks house menus, ads and news items in a simplified and consistent way.

A Happy Ending

It's been two years. But with two months of amazing Drupal Power, this website is nearly complete. The content for all regions including links, maps and other information is posted. The resource naviagtion tree is always accurate. The banner system keeps track of statistics and expiration dates. News and other important items are promoted to the front page to generate interest in the content offered. Users are starting to register themselves. And the wedding team at Destination Bride can focus on what they do best - plan amazing weddings!

God Bless Taxonomy - Creating CraftyTraveler.com with Drupal

(A non-programmer, non-admin web designer wades in!)

Having just sold my share of the web development company (www.pangomedia.com), I decided I needed a second career/hobby. I'm a bit of a travel buff, and have always been frustrated with the cruddy travel sites on the web, so I decided I'd make a repository of screened/edited travel guides (user submitted) at www.craftytraveler.com.

Being a web geek that is decidedly from the graphical side of things, I was hesitant about Drupal. I was very used to having a programmer/admin at my disposal (I no longer did), so I was hesitant to go beyond my solo-comfort-zone (static HTML). But the idea of managing thousands of travel articles (categorized and searchable) was fairly horrifying. And I'd heard enough clients say "If we had KNOWN it was going to get this big, we woulda built it right from the get-go!" that I was damn well going to set it up so that it could scale up as it needed to without a major retrofit.

I'd set up exactly 1 Drupal site before in my life, so I was definitely not a Drupal expert. I'll walk you through the assorted development stages of the site and talk a bit about my learning experiences as I went.

1. Prototyping

I'm a bit of a nut for user-interface and design (in that order). Despite the fact that I knew Drupal had limits, I was resigned to designing an interface FIRST, and then trying to poke and prod Drupal to make it work. So I created a Photoshop document first (jpg shots here, here and here, then chopped it up into a prototype HTML document (can be seen here). I fiddled with it for a few weeks, asking friends and colleagues for feedback to refine it and submitting it to the infamous "Mother Test" (putting it in front of my Luddite mother and seeing if it confused her). It finally passed muster, and the next step was uncharted territory for me-- installing a PHP/MySQL application by myself.

2. Drupal Install

What a delight! The mystery of installing a PHP/MySQL application was a mystery no longer-- in fact, it was ridiculously easy. With a simple FTP program and PHPMyAdmin (web based MySQL controls), I installed my first solo instance of Drupal. The directions were spot on, and no errors (initially) cropped up. I later found out that my hosting company (like MANY out there) was using a slightly old version of PHP which rendered the search functionality of Drupal thoroughly broken. No biggie-- I had to migrate to a new server. Though it'd be good to make darn sure what your hosting company is running (version-wise) before you get deep into development of your site.

3. Templating

(note: from my first Drupal experience, I took one valuable piece of information: FIXED WIDTH TEMPLATES ARE A PAIN IN THE BACKSIDE. You will save yourself a ton of heartache if you design your site with a percentage-based design-- i.e. one the expands to fit the browser window).

My first step after install was to create the visual wrapper (template) of the site. To start, I just duplicated one of the directories in the "themes" directory and starting hackin' around to see how it was set up. I strongly recommend using the PHPTemplate engine over the XTemplate engine (which seems to be the default, strangely). It took a few minutes to install, and made templating a lot easier.

To create my template, I took my prototype HTML file and stripped out all of the content, and renamed it page.tpl.php. I then took one of the stock page.tpl.php in one of the other theme directories and started copy-pasting anything that looked remotely like PHP into what I thought would be the appropriate place. If it was inside the <head> tag in the working template file, I put it there in my prototype. If it was in the lefthand column, I dropped it there in my prototype... Well, you get the idea. Remember, that I couldn't program my way out of a paper bag (though the PHP statements were intelligently named, so they were generally pretty obvious). Once I ran out of PHP stuff to move over, I uploaded my revised file (now named page.tpl.php) and lo and behold! It worked (once I set it as the default template). It still looked cruddy (because I had to monkey with the other tpl files and the CSS), but it was definitely my template!

As I dug in a bit more, I realized that most of the other tpl files really didn't require much editing-- most of the visual controls were in the CSS file(s). To move the text styles in the direction I wanted to, I just started one style at a time. I found a piece of text whose style I wanted to alter, and looked at the code to try to figure out which style controlled it. Sometimes it took a bit of trial and error (there is evidently a global stylesheet in the misc directory called drupal.css which can override some stuff you might want to do), but I eventually got the text styles about how I wanted.

4. Taxonomy & Categories

Taxonomy is the term that makes most Drupal newbies grumpy, but it's really the thing that sets Drupal apart. My goal was to eventually have thousands of travel guides. I knew that a browse-interface was the way to go in the early stages (it's no fun to search a largely empty database) but eventually I wanted the home page of my site to be a simple google-esque search interface with a few advanced options. If a person (eventually) wanted to search for articles written by women about traveling in the Middle East that included discussion of adventure travel and local cuisine, I wanted them to be able to search for EXACTLY that. Which is where taxonomy came in.

I first created a vocabulary (category) called "World Regions". Makes sense. I then added a series of terms under that category (North America, South America, Europe, etc). I didn't go any deeper than the main regions of the world (yet). To accommodate the ability to search/browse by style of travel, I added another vocabulary (Category) called "Travel Style". Under that, I created a series of terms (Adventure Travel, Local Cuisine, Nightlife, etc). I created a final vocabulary called "Gender", under the assumption that woman travel writers might talk about things that women care about, and threw two (hopefully obvious) terms in that category. Note that right now, content is largely offered through a browse interface. But as soon as I feel I have enough content, I can (in about 5 minutes) open up the capability to search/sort/browse by travel style or gender.

Here's the great thing. I really didn't want a big empty site to scare away visitors. I could've created a deeper regions category, creating a subcategory of each world region for countries, provinces, states, cities, etc, but I didn't. Instead, when I received and approved an article (I got 70 in the first 10 days of the site being live), I create the appropriate subcategory for it. My first article was on Jack the Ripper Tours in London England-- so I create a term called "England" and assigned Europe as it's parent.

Here's the other great thing. I didn't both to create a "London" term and assign it as a sub-sub-term of Europe (under England) - why bother breaking stuff down that deeply until I have a whole pile of England articles? So I left it floating under England where it will live happily with any other England Articles. Once I get enough articles about England that they get awkward to browse through, I'll create some new terms to further define the articles. It only takes a few scant clicks to re-assign a story to a different bunch of categories/terms.

5. Modules

Drupal by itself feels incomplete in a lot of ways-- and I think that's on purpose. Rather than force developers to deal with their users in a specific way, they leave a lot of functionality open-- to be filled by the gazillion modules that are available (or you can try to develop one yourself, though that is certainly outside my skillset). A lot of these modules are fantastic. I was a little frustrated by the fact that you pretty much have to install the module to see exactly what it does/what it looks like-- but given that it really only takes 5-10 minutes to download and install a module, this didn't turn out to be a big deal.

Here are a few modules that I (easily) installed and configured:

Taxonomy Context - This is the core of my current article navigation scheme (on the lefthand side). World regions are obviously very nested, so a nested list like this seemed ideal. Essentially, this allows you to regurgitate a category specific list (in this case, World Region) as a block (either in the left-hand column or right-hand (though presumably you could put it anywhere if you installed Flexiblock)

Path and Pathauto - These allow you to have (overridable) URL paths based on your taxonomy and story/page/node names. This is a big deal for search engines, and allows people to have a good sense of where they are in the site besides. A good example is /usa/tennessee/bbq_in_memphis_tennessee.

Inline - There is a lotta grumping in the Drupal forums about the assorted image handling modules. Inline (and img_assist) are both quite handy for adding images to stories. Ultimately, for what I wanted, I ended up using a combination of these and a few free PHP scripts to do what I wanted.

6. Problems and Frustrations

There really weren't too many frustrations/problems in the development of this site-- but there were a few land mines that maybe others can avoid or will be dealt with in future versions or modules.

a. The search functionality in Drupal 4.6 requires a relatively recent version of PHP. Not a huge deal for me to move it to a different server when I found this out. But if you have a shared hosting company that you love who happens to be running an older version, you're likely outa luck. "You want me to upgrade PHP on a production box with the PLESK control panel for you, a $10month hosting account?! Bwahahahahaaha!"

b. Image modules. I wasn't able to find an image module that fit my needs exactly. Some of my authors submitted articles with no images, some provided a single image, some provided a whole gallery. For those that provided many images, I wanted to have both a simple-to-set up slideshow gallery as well as dynamically sized popup windows for inline images (you can see both of these in action here). Unfortunately, no modules did the trick. Eventually, I'll likely have a contract programmer write a module, but for the time being, I used a few free PHP scripts that I found out there. Which leads me to...

c. PHP Code Input Format. If you want to put PHP into a node (story/page/whatever), Drupal won't create a suitable teaser-- it just uses the whole dang article for teaser. I understand there is a committed patch for this, but I couldn't get it to work-- so demoted the node off of my front page. <sigh>

d. Tables in nodes. Even if you don't do PHP Input Format, you have to be careful about putting table code of any flavor into a story. When Drupal creates the teaser, sometimes it'll pull a chunk of that table as part of the teaser, thoroughly borking the HTML of the rendered page. I dealt with this by dropping any tables well past the 200 characters that Drupal uses as a teaser.

None of these things were a big deal, but they definitely forced me to do things in what I thought was a non-ideal way. I'm also happy to admit that (because I'm a non-programmer) there may be solutions to this that are a lot less stupid than the ones I came up with. In fact, I just saw the module Teaser Module, which should deal with my C & D issue!:-)

 

Pando: Sharing Big with Drupal
About Pando

Pando is small New York City-based startup with a large mission: to make it easy for anyone to send and receive large files via email, IM, and RSS and to post large files for free download on any Web site. To accomplish our mission, we developed a small piece of consumer software that runs on top of our BitTorrent-based P2P network. The goal of our Web site is foremost to drive downloads of the Pando client, but the site also houses documentation, FAQs, promotions, corporate info and even content feeds, which we'll explain below.

We chose Drupal for our primary company web site and for a number of related side projects. Over 3 million people have downloaded the Pando software on www.pando.com, and we're currently getting over 100,000 page views a day. (Our P2P network, by the way, now delivers over 40 terabytes/day of user generated data daily).

Choosing Drupal

When preparing to launch the web site to promote the first Pando beta we reviewed a number of options. We use Java, Tomcat and MySQL for our protocol application server so, wanting to play to our strengths, we first looked at Java-based options like blojsom. Not finding anything satisfactory, we then reviewed LAMP-based CMS frameworks, including Drupal. Pando CTO Laird Popkin had used Drupal in the past and was impressed by its powerful flexibility and relatively elegant implementation compared to other available CMSes.

Zero to Launch

In just a few days we assembled a basic theme, pulled together initial content and got our first site up and running. We made good use of the page and book modules right out of the box and quickly added front page, quotes and theme editor modules for design flexibility. We started with Drupal 4.5 to make life easy on our sysadmins, who could install it as a pre-built Debian package.

Rapid Hacking

Early on, we needed to quickly add a web-based user registration system to integrate cleanly with the Pando platform. Grabbing a copy of the existing LDAP integration module, modifying it and lightly hacking Drupal core, we were able to get the system up and running to spec in a few days. This wasn't the ideal implementation, but it was fast to implement and we met our deadlines.

We also needed to do some basic data collection to measure downloads of our app and collect email addresses from our beta testers. Again, on a tight timeline and with little Drupal expertise in house, and with relatively modest requirements, we simply put together some custom php snippets embedded directly in specific pages to collect and report on this data.

Cleaning House

Our ability to get up and running rapidly with little Drupal-specific experience was a testament to Drupal's generous flexibility and power. Once on our feet we brought on board a LAMP developer with some Drupal experience (Scott Trudeau) to help us move forward.

With Drupal 4.7 on the near horizon and a business decision to remove the user registration requirement in place, we made the update to 4.7 a priority. Since our web-based registration was integral to earlier versions, and since we'd altered core and hacked up the LDAP module to support it, the upgrade took some careful attention but went very smoothly. As our user base grew, we added extensive help and support documentation, using the book module extensively.

Search Engine Optimization

As Pando began to grow in popularity, we looked for ways to spread our reach even wider. One key area we sought to improve was in search engine optimization (SEO). Drupal turned out to provide a number of handy tools to make this task easy. We made use of the built-in path module to ensure human and search-bot friendly URLs; we grabbed the page title and node (key)words modules to have better control over page metadata; and used the site map and XML Sitemap modules to help search bots index our site.

Continual Development

We continually add functionality to our primary site and take advantage of the rich set of tools the Drupal community has provided. We used the Send module to build an "email postcard" system. Because send required the mimemail module, we found use for that in some of our php snippets that which had been using php's mail() function. We also began to use some simple taxonomy structures to create modified themes for special cases and to generate an RSS feed for our monthly newsletter.

Latest Projects

Pando's main site gets the most traffic and attention, but we're also using Drupal for a number of other projects.

Pando RSS

Pando supports RSS so that users can subscribe to video podcasts (for example), with P2P technology allowing for efficient delivery of higher quality files than typical podcasts.

To support this, we built a web site (rss.pando.com) that provides a sample Pando RSS feed.

To make it easy for podcasters to produce Pando RSS feeds, we then built a tool using Drupal (leaning heavily on the actions, workflow and views modules combined with Drupal's cron hook) to automatically index and convert rich media RSS feeds to Pando RSS feeds that can be subscribed to with the Pando client. Pando RSS audio and video podcasts are available from the Pando Podcast Gallery.

Pando Developer Toolkit

We recently launched a Developer Toolkit that allows web sites and applications to easily integrate Pando. Since we use Drupal so heavily, we have implemented a "demo" Pando module that demonstrates how to use the new Pando developer toolkit to make it easy to use Pando to share large files on any Drupal web site, which combines quite nicely with Drupal's powerful community capabilities. For example, anyone can submit content using Pando, which can be moderated, published, discussed, voted on, and syndicated via RSS. This module takes advantage of the Drupal 5.0's improved multi-step form handling capabilities, and may implement some dynamic behavior using the new jQuery javascript library. We are also working on producing a "one click Pando sharing site" based on Drupal 5.0's distribution profiles.

Pando Developer Web site

We're planning a launch of a separate Pando developers' site based on Drupal to house projects like the Drupal module. We are excited that this site will allow us to try out more of Drupal's community and project management capabilities.

Conclusion

Our experience with Drupal has been a largely positive one. It measure up to our early impressions of it's power and flexibility and has grown well along with us. We're delighted to be part of the large and growing Drupal community.

VisitPMR.com: quick site building with Drupal

Drupal-powered sites don't have to look like Drupal at all. The brief for developing www.VisitPMR.com (a travel information site for the Pridnestrovian Moldavian Republic) called for a commercial look to compete with official tourism "brochure sites" from other countries. At the same time, we wanted Drupal's taxonomy features, ease of editing content, and ease of adding new content.

The site was done by two people in just five days ... thanks to the magic of Cascading Style Sheets and the even bigger magic of Drupal.
We started by making a design and then incorporating it into the phptemplate engine. Then we added just five modules: Feedback, front_page, image, img_assist, image_exact; all of them standard without any modifications. In the design template, we placed the left hand blocks underneath the main content (rather than to the left), and let the right hand blocks stay on the right. This required a simple copy-paste edit to page.tpl.php to overcome the 4.6 limitation (in 4.7 you can place blocks anywhere, as this layout required, but at the time of building we wanted production ready rather than a beta).

In less than a week's worth of work we launched a site that would have taken a month, and more manpower, to build otherwise. Within days it already started ranking high in search engine results; raising awareness about the new country as a potential travel destination.

www.VisitPMR.com

Why Linux Journal converted to Drupal and how it went

We had been looking for a "Content Management System" for quite a while, and one of our employees discovered Drupal while researching CMS software on the web. Drupal appeared to be much more flexible than PHP Nuke, which we were using, and the more we looked at it the more impressed we became. At that time all of the features we thought we would need, except one, which we decided to write a module to provide, were on the table to be implemented in the next Drupal release.

We decided to convert Linux Gazette to Drupal in order to become familiar with Drupal under real life high usage conditions and to setup Doc Searls' IT Garage to experiment with Drupal's blogging and other interactive abilities. After we were satisfied with Drupal's ability to handle the traffic at Linux Gazette as well as its interactive abilities at Doc Searls' IT Garage and had set up and tested Drupal's flexibility by creating several sites for internal corporate use, we decided to create a Drupal site to replace the Linux Journal PHP Nuke site that we were using for Linux Journal. We started out with version 4.3 of Drupal but by the time we decided to convert Linux Journal to Drupal, version 4.4 was out so we started building our new site using that version. There were not any major problems, just the typical learning curve requiring new ways of looking at problems, nothing we could see that would prevent us from using Drupal for the new site. Most of our time was devoted to developing methods to convert the old articles and content of Linux Journal magazine to the new format required in the new site.

One thing that Drupal did not provide was a method that we could use to display static content in the main center section without the other content that Drupal normally puts there. We wanted to be able to link to static html and text files and have only that file be displayed in the center section. To do that Mitch Frazier created a module he called xstatic.module. The xstatic module allows you to define one or more base directories that can be used for storing HTML files, PHP files, text files, and image files. When the xstatic module is used in the URL, the argument to it is interpreted as a file path name. This file path name is searched for relative to all each of the predefined xstatic directories. The file type extensions are appended automatically. If the file is found its contents are displayed in the main (center) section of the Drupal page. If the file is a php file it is first evaluated and the result is displayed. This allowed us to create anything we wanted in the center, without having to create a node, while maintaining a consistent Drupal "look" with the site's header, sidebars, and footer intact. The xstatic module gave us a great way to separate all information that is not editorial content from the marketing and business oriented pages as well as providing us with a simple way to quickly integrate existing HTML files into the site.

After converting 10 years of articles and getting the "look and feel" we wanted, we decided to do the roll over from PHP Nuke to Drupal at 8am on Nov. 1st. Unfortunately on the evening of Oct. 30, while doing the final move of the articles to the new site, we discovered that Anonymous users could not leave their name or email address when making comments. This was a feature we "had" to have and was only available on version 4.5. On earlier versions of Drupal you had to have an account before your name would appear with your comment. This was a "show stopper" and even though we had less than 48 hours to do it in, we decided to install a new 4.5 site and bring over the blocks, theme and other changes we created for the earlier version. Mitch Frazier had it working in 24 hours and we spent the rest of the time before the roll out testing and doing minor cleanup.

The new site has been well received by Linux Journal subscribers and www.linuxjournal.com readers. Lots of helpful suggestions have been made and new features implemented because of them. Because of this warm reception, when we decided to create a publication called TUX, which is primarily for the new Linux user, we decided to use Drupal for its web site. Since we were short of time, we simply cloned the Linux Journal site. We then made cosmetic changes and cleaned up the database. This allowed us to have a working site while we worked on a completely new layout and design. The new TUX layout and design has been finished and is now in place. Steven Wittens, one of the core Drupal developers helped us with the look and feel of the new TUX site which is based on the phptemplate theme.

On the Linux Journal site, Drupal version 4.5 is handling 400,000 hits per day, and MySQL is handling the storage and the searches for 5,000 articles and over 14,000 comments. We are currently using these contributed modules; print, spam, subscriptions and themedev on both the Linux Journal and TUX sites. We are also considering using weblink, userpost and webforms as well. We are very pleased with the power and stability of Drupal and because of this are creating internal Drupal sites to be used for information dispersal and coordination between employees and departments. We are considering using a node level permission module that Matt Westgate is developing to control access to information in these internal sites. We are constantly amazed at how versatile and powerful Drupal is and at the new uses we find for it.

The Drupal Community has been a great help in answering questions and making suggestions that allowed us to create, design and convert our existing web site to Drupal as well as create new ones. To return the favor we are planning on releasing the xstatic module that Mitch Frazier created, some time after the first of the year. Mitch is also working on a few other new ideas and we will be releasing them after they are fully developed and researched.

Many thanks to the Drupal Community from the staff of Linux Journal, TUX, Doc Searls' IT Garage and Linux Gazette.

--
Keith Daniels
Web Coordinator
SSC Publications, Inc.

Publishers of:
Linux Journal
TUX
Doc Searls' IT Garage
Linux Gazette
A42
Groups of Linux Users Everywhere

Feature overview

General features

Collaborative Book - Our unique collaborative book feature lets you setup a project or "book" that needs to be written and then authorize other individuals to contribute content.
detailed information 
Friendly URLs - Drupal uses Apache's mod_rewrite to enable customizable URLs that are both user and search engine friendly.
 
Modules - The Drupal community has contributed many modules which provide functionality like taxonomy display, jabber authentication, private messages, bookmarks, etc.
detailed information 
Online help - Like many Open Source projects, we can't say that our online help is perfect but have built a robust online help system and written the core help text.
detailed information 
Open source - The source code of Drupal is freely available under the terms of the GNU General Public License (GPL). Unlike proprietary blogging or content management systems, Drupal's feature set is fully available to extend or customize as needed.
detailed information 
Personalization - A robust personalization environment is at the core of Drupal. Both the content and the presentation can be individualized based on user-defined preferences.
 
Role based permission system - Drupal administrators don't have to tediously setup permissions for each user. Instead, they assign permissions to roles and then group like users into a role group.
screenshot . detailed information 
Searching - All content in Drupal is fully indexed and searchable at all times.
 

User management

User authentication - Users can register and authenticate locally or using an external authentication source like Jabber, Blogger, LiveJournal or another Drupal website. For use on an intranet, Drupal can integrate with an LDAP server.
detailed information 

Content management

Polls - Drupal comes with a poll module which enables admins and/or users to create polls and show them on various pages.
detailed information 
Templating - Drupal's theme system separates content from presentation allowing you to control the look and feel of your Drupal site. Templates are created from standard HTML and PHP coding meaning that you don't have to learn a proprietary templating language.
detailed information 
Threaded comments - Drupal provides a powerful threaded comment model for enabling discussion on published content. Comments are hierarchical as in a newsgroup or forum.
detailed information 
Version control - Drupal's version control system tracks the details of content updates including who changed it, what was changed, the date and time of changes made to your content and more. Version control features provide an option to keep a comment log and enables you to roll-back content to an earlier version.
screenshot 

Blogging

Blogger API support - The Blogger API allows your Drupal site to be updated by many different tools. This includes non-web browser based tools that provide a richer editing environment.
detailed information 
Content syndication - Drupal exports your site's content in RDF/RSS format for others to gather. This lets anyone with a "News Aggregator" such as NetNewsWire or Radio UserLand browse your Drupal site from the comfort of their desktop.
detailed information 
News aggregator - Drupal has a powerful built-in News Aggregator for reading and blogging news from other sites. The News Aggregator caches articles to your MySQL database and its caching time is user configurable.

Note: This prevents losing track of your news as in other aggregators when you're offline for a few days.
detailed information 
Permalinks - All content created in Drupal has a permanent link or "perma link" associated with it so people can link to it freely without fear of broken links.
 

Platform

Apache or IIS, Unix / Linux / BSD / Solaris / Windows / Mac OS X support - Drupal was designed from the start to be multi-platform. Not only can you use it with either Apache or Microsoft IIS but we also have Drupal running on Linux, BSD, Solaris, Windows, and Mac OS X platforms.
 
Database independence - While many of our users run Drupal with MySQL, we knew that MySQL wasn't the solution for everyone. Drupal is built on top of a database abstraction layer that enables you to use Drupal with MySQL and PostgreSQL. Other SQL databases can be supported by writing a supporting database backend containing fourteen functions and creating a matching SQL database scheme.
detailed information 
Multi-language - Drupal is designed to meet the requirements of an international audience and provides a full framework to create a multi-lingual website, blog, content management system or community application. All text can be translated using a graphical user interface, by importing existing translations, or by integrating with other translation tools such as the GNU gettext.
detailed information 

Administration and analysis

Analysis, Tracking and Statistics - Drupal can print browser-based reports with information about referrals, content popularity and how visitors navigate your site.
screenshot . detailed information 
Logging and Reporting - All important activities and system events are captured in an event log to be reviewed by an administrator at a later time.
screenshot . detailed information 
Web based administration - Drupal can be administered entirely using a web browser, making it possible to access it from around the world and requires no additional software to be installed on your computer.
screenshot 

Community features

Discussion forums - Full discussion forum features are built into Drupal to create lively, dynamic community sites.
detailed information 

Performance and scalability

Caching - The caching mechanism eliminates database queries increasing performance and reducing the server's load. Not only can the caching be tuned in real time, while your site is under load, but it has been successfully tested under a "slashdotting" and performed extremely well.
detailed information 

On backwards compatibility: the drop is always moving

Everyone considering Drupal should understand that Drupal development is always about improvement and staying on the cutting edge. Each major release of Drupal offers vast, often radical new improvements. (For more information on what Drupal version numbers mean, please see: http://drupal.org/handbook/version-info.) However, while each new major release of Drupal contains the means for stable and reliable upgrade paths that preserves your data from previous releases, each new release of Drupal provides little or no backward compatibility.

Drupal founder Dries Buytaert explains:

When I first released Drupal, I chose not to preserve backward compatibility, because I was mainly interested in getting the technology right. Preserving backward compatibility often requires that you drag historical baggage along, and in interpreted languages like PHP, this comes at a significant performance cost. So it was decided that we can break people's code, but not people's data. Our mission was to make Drupal fast, small, clean and on the bleeding-edge of technology. In the early days I focused, completely and utterly, on the aesthetics of Drupal's code. I spent days trying to do something better, with fewer lines of code and more elegant than elsewhere. And with me, many others.

It was the right thing to do. Over the years, we've seen a lot of innovations happen that would not likely have happened while preserving backward compatibility (the node system being one of the most prominent examples). Developers always had free reign to implement their ideas in the best possible way. It is something that Drupal has in its favor compared to many other content management systems. It's been interesting to see how Drupal has spread and how it has grown to be more flexible and cover more niches than many other systems. If anything, this needs to be attributed to the fact that we haven't cared much about backward compatibility, and our single-mindedness to get the technology right....

...Given the fact that Drupal's main strengths have always been the agility with which it can respond to the ever-changing landscape of web development, and the almost infinite amount of flexibility and expansion it affords developers, I feel that preserving the ability to constantly innovate is of higher importance, at the present time at least, than preserving backward compatibility. None of us would be here now using Drupal were it not for this core value, and I strongly believe that it is fundamental to our future. It always has been.

This philosophy and approach to ongoing development has been embraced by the Drupal development community.

Caveat Emptor

  1. Each new major release of Drupal contains many often-radical new improvements in functionality, scalability and usability.
  2. Such new improvements are enabled by not having to support previously released code; stable and reliable upgrade paths are included in the goals of each and every new release.
  3. Only the current stable release series and the previous release series (e.g., 4.7 and 4.6) are supported by the Drupal development community at any given time.
  4. As a result, each stable major release of Drupal will eventually age to the point that it is no longer actively supported by the Drupal community.
  5. Unsupported releases may, in the future, be found to be vulnerable to as-yet-undiscovered or yet-to-be-invented security vulnerabilities.
  6. Therefore, people adopting Drupal for their web or CMS project should plan for periodic upgrades of their project to the latest major release (every 6-12 months) in order to benefit from the ongoing active support of one of the finest open source development communities.

Typical Drupal applications

By enabling and configuring individual modules, an administrator can design a unique site, one which can be used for a combination of knowledge management, web publishing and community interaction purposes. So that you can better understand the many possibilities, the following list of features have been organized by common web platform characteristics:

  • Content management. Via a simple, browser-based interface, members can publish to a number of available content modules: stories, blogs, polls, images, forums, downloads, etc. Administrators can choose from multiple theme templates or create their own to give the site a singular look and feel. The flexible classification system allows hierarchical classifications, cross-indexing of posts and multiple category sets for most content types. Access to content is controlled through administrator-defined user permission roles. Site pages can display posts by module type or categorized content, with separate RSS feeds available for each display type. Users can also keyword search the entire site.
  • Weblog. A single installation can be configured as an individual personal weblog site or multiple individual weblogs. Drupal supports the Blogger API, provides RSS feeds for each individual blog and can be set to ping weblog directories such as blo.gs and weblogs.com when new content is posted on the home page.
  • Discussion-based community. A Drupal site can act as a Slashdot-like news site and/or make use of a traditional discussion forum. Comment boards, attached to most content types, make it simple for members to discuss new posts. Administrators can control whether content and comments are posted without approval, with administrator approval or through community moderation. With the built-in news aggregator, communities can subscribe to and then discuss content from other sites.
  • Collaboration. Used for managing the construction of Drupal, the project module is suitable for supporting other open source software projects. The wiki-like collaborative book module includes versioning control, making it simple for a group to create, revise and maintain documentation or any other type of text.

For a more comprehensive feature list, consult our feature overview. For live examples of possible site implementations, see the featured sites included with the Drupal case studies. Or visit some of the many sites that use Drupal.

Rolling your own system vs. using Drupal

Some of you might consider rolling your own system instead of using Drupal. As the Drupal community is very interested in having you join us instead, we will, for your consideration, present you with some advantages of using Drupal over rolling your own system. We encourage you to consider the following before setting off on your own.

The Drupal path is fun and educational

As you struggle to get your sites to fit your needs, Drupal will stimulate you in a more rewarding way than would a more low-level environment such as a plain programming language. As you go along you
will experience and learn the inner workings of a system which has proven very powerful and which has become very popular. This will be useful for you in your later projects.

Dealing with insignificant details when writing a framework can be frustrating. With Drupal, the framework is in place and you can focus on the 'meat' of your project. With Drupal, you get the job done with less pain.

With Drupal, you are able to create a cool site

I've collected some example sites to illustrate this point. Notice that they are quite diverse.

More examples can be found in case studies and in this forum for showcasing drupal sites.

Drupal's user and developer base

Drupal is used by tens of thousands of sites on the web, and more than seven hundred people are visiting drupal.org as I write this. This gives you several advantages if you take the Drupal path:

  • Modules for a wide range of needs: As you build your site, needs may arise which you didn't predict. As users of Drupal experience needs, a module is often written to fill it. In most cases these are contributed, so with the Drupal path you have the opportunity to download modules and easily plug these into a system which is able to handle them. Furthermore, you have the oppertunity to hack the modules to fit your needs better as they are open source.
  • Easy access to help: As mentioned, lots of people are active on drupal.org. Letting them know of your problems in the forum or searching there will often result in suggested solutions. When rolling your own system, you don't have the advantage of a large community "speaking the language" of your framework.
  • A thoroughly tested platform: As the complexity of a system grows, it is likely to create errors or bugs. It will eventually be difficult, if not impossible for mere human to predict all eventualities. You can not count on your site's visitors to report errors, because instead of reporting they may choose to leave.

    Every installed Drupal site comes with a watchdog module. This module logs errors and report them to the administrator when she visits the administation section of her site. Furthermore it is important for all users of Drupal that their sites work as expected. Therefore users report errors to the maintainers of Drupal and her modules. To ease this process, Drupal's maintainers have created a system which keeps track of issues, showing them to interested persons able to correct them.

Drupal is flexible

A reason for rolling your own system might be to have it fit your needs exactly. However, Drupal is designed to fit a range of needs, one of her key features is flexibility. Chances are you're better off towards your goal with Drupal. In addition to the already mentioned modules and their ability to be adapted to fit your special needs, it is fairly easy to roll your own modules. This is typically done by making a file with some functions implementing certain hooks in addition to other functions. The following function implements the help hook which is called by the Drupal core and possibly some other Drupal modules.

<?php
                                                                                                                                                                           
function mymodule_help($section) {                                                                                                                                              
  switch(
$section) {                                                                                                                                                            
    case
'admin/help#block':                                                                                                                                                    
      return
'My module will help you realize your dreams.';                                                                                                                                
      break;                                                                                                                                                                    
  }                                                                                                                                                                             
}                                                                                                                                                                               
?>

This way modules and the Drupal core interact, and it has proved very powerful. By using hooks, modules can interact with and take advantage of the building blocks of Drupal such as her node, category, administration and user systems.

With Drupal, you can create for the future

Drupal has been around for four years and continues to attract interest and active developers. With this track record, you can rest knowing it will continue to grow and be maintained in the future. Continued active development is important for site adoption and planning. With 'custom code', you need to know that someone has provided the appropriate documentation or commenting throughout so as not to contribute to "Maintenance nightmare".

The Internet is in a constant flux of new ideas and methods for communicating and Drupal is focused on growing with the future and providing standards compliant solutions. Take RSS as an example, with Drupal, you turned on a module. With the 4.6 release, RSS is now updated to RSS 2.0 standards.

While we don't know what future web standards or ideas will come often custom site updates involve a complete rewrite of your code. With Drupal you can be sure that it is flexible and modular enough to grow and easily adapt to those changes.

Drupal for Information Architects: an overview of configurability

Information Architecture (often abbreviated "I.A.") is the practice of structuring information (knowledge or data). These are often structured according to their context in user interactions or larger databases. -Wikipedia.com

Drupal provides several ways to structure information through layout, navigation, styling, and applications. It provides a framework for managing information as content through extensible applications called modules. The modules provide user interactions with content, such as a volunteer management application. Each module provides a configurable administration interface to customize it's application behaviour. Permissions for each module are configurable for each custom user role.

There are over 370 modules currently available for the 4.6 release which allows a high degree of customization without any programming. Complete customization can be done using CSS, PHP, and AJAX. While each web site has it's own complexity a highly functional and customized site with a modified theme, permissions for user roles, and configured modules can be deployed in hours.

Layout Drupal supports the layout of content in three main ways: Blocks, columns, and menu's. Blocks have 5 default regions: left, right, header, footer, and content. These are extensible to more regions. Drupal can be themed to have a variety of column layouts with the most popular layout being the three column layout with a floating center column. Layouts can be implemented using Drupal's theme system with PHP and styled with CSS. Drupal also has configurable menu system which can be configured to provide navigation in a block.

Drupal has a rudimentary wireframe module which allows IA's to create interface components in HTML and then configure those components on a live site for user testing. The wireframe theme style which is selectable in seconds, is part of the CivicSpace theme.

Navigation Drupal supports many different times of navigation including global, local, contextual, and situational navigation. Drupal's theme system allows for configuration of primary and secondary navigation, independent of other navigation, that can be statically defined in theme administration.

Theme based navigation is often used for global navigation either in the header, tabs, or a footer. Local navigation is often implemented dynamically through the use of categories, child links in menu, or dynamic blocks. Contextual navigation such as breadcrumbs to show where in the site users are is implemented typically in the theme template. Situation navigation can be implemented through the use of response messages indicating error or success. Common situation navigation is navigation to help from inside a user form.

Styling Drupal ships with a series of default themes that are configurable for the site or selectable per users. Drupal makes use of PHP in theme templates to help with styling the xHTML about from Drupal and it's modules. Cascading Style Sheets are used to implement changes in color, color grouping, and typography. Themes can be customized to allow for special styling on site location, user status, or content types. Graphics and images can be embedded into themes or content.

Categorization One of the most popular ways IA's structure information is through the use of Drupal's categories and over 20 contributed modules for extending categories. Drupal allows you to manage categories, alternately refered to as taxonomies, using tags, flat, hierarchical, and multi-hierarchical vocabularies. Information can be structured by categorizing content which can add semantic information to content. IA's and site developers frequently implement navigating by categories using Drupal to meet the information flow or the business rules of their organization.

Applications Drupal has approximately 570 contributed applications, refered to as modules, with 360 modules available in the current 4.6 Drupal release. The modules can be categorized into the following groups:

  • 3rd party integration
  • Administration
  • Categories
  • Community
  • Content
  • Commercial advertising
  • Evaluations and ratings
  • Events
  • File management
  • Filters/Editors
  • GUI/Content Display
  • Import/Export
  • Location
  • Mail
  • Media
  • Security
  • Syndication
  • Themes
  • User Access and Authentication
  • Utility
  • Other

This page was writing by Kieran Lal, from CivicSpace Labs, if you are interested in contributing Information Architecture expertise to the Drupal project or contributed to this page please contact me.

Drupal for professional consultants: typical client requirements

When specifying the requirements of a project most clients ask many of the same questions, whether the project is an ecommerce site or a social network. Listed below are the common concerns of most projects and relevant information available in other parts of this handbook.

Note: Information listed on this page is about a subject not a how-to for that subject, e.g. 'Scalability: Case studies' rather than 'Scalability: How to tune the server'. Some how-to links are being left in for the moment but will be removed in later revisions.

Platform Support

Scalability

Security & Access Control

Administration Overhead

Auditing

Disaster Recovery

Maintenance

  • Upgrade tutorial
  • Do we have any info on dates of previous releases? It would be good to be able to give clients a very rough idea of Drupal maintenance cycles

Documentation

Accessibility Legal Compliance

Professional support

Interoperability

Accessibility

Drupal is Section 508 and WCAG Priority 1, 2, 3 compliant.

Strict coding standards have been used to keep Drupal's data, logic and presentation separate from each other. This means that the mark-up of all of Drupal's output is completely controlled by the application's presentation layer, known as the 'theme'.

The accessibility compliance of a Drupal powered site depends on which theme is being used.

Themes distributed with Drupal:

Bluemarine

Chameleon

Marvin

Pushbutton

Note:

Some third party contributed modules which add extra features to Drupal might not adhere to the strict coding standards of the Drupal application, and may wrap data in mark-up, which could break accessibility. Breaking accessibility is considered a bug, and when this happens the author of the module is alerted to the issue.

Accessibility Test Tools

Cynthia Says
Section 508 and WCAG 1.0 Priority 1, 2, and 3 tests
Bobby
Section 508 and WCAG 1.0 Priority 1, 2, and 3 tests
Vischeck
Shows what a site will look like to a user with color impaired vision

Books about Drupal

Pro Drupal Development

by John VanDyk and Matt Westgate.

Paperback: 375 pages
Publisher: Apress (April 9, 2007)
Language: English
ISBN: 1590597559


Building Online Communities with Drupal, phpBB and WordPress

by Robert Douglass, Mike Little, and Jared W. Smith.

Paperback: 560 pages
Publisher: Apress (December 26, 2005)
Language: English
ISBN: 1590595629


Drupal. Community-Websites entwickeln und verwalten mit dem Open Source-CMS.

by Hagen Graf

Publisher: Addison-Wesley, München (March, 2006)
Language: German
ISBN: 3827323215


Building Websites with Drupal

by David Mercer

Language English
Paperback 230 pages [191mm x 235mm]
Release date Expected April 2006
ISBN 1904811809


Drupal.org feeds

Below are listed various RSS feeds people may find useful for tracking things on Drupal.org. Please use common sense for how often you update your feeds.

Feeds of common interest
Security
New modules
Translations
Themes

Forums
General
News and announcements
General discussion
Drupal showcase
Events
Usability feedback

Support
Pre installation questions
Installation problems
Upgrade problems
Post installation
Converting to Drupal
Hosting companies
Paid Drupal services
Module development
Theme development
Translations

Development (working groups)
Database compatibility
Documentation
Drupal core
Drupal.org infrastructure
Media and document management
Performance and scalability
Social software and communities

Support and professional services

There are many ways to get support for your Drupal-based project or site.

Hosting and services

The following subsections highlight people and organizations offering services related to Drupal. In addition to the listings provided on this page, there is a list of Drupal.org account holders who have indicated that they provide Drupal-related services. This list is automatically generated from user profiles and can be viewed at http://drupal.org/profile/drupal-services.

Drupal hosting

This section lists some organizations which specialize in hosting Drupal-based web-sites.

To be listed on this page: Send an e-mail to development@drupal.org with the appropriate details. The current page maintainer will then add your organization to this page.

CivicSpace

CivicSpace has been a core contributor to the Drupal community since CivicSpace's inception with the Howard Dean for President campaign in the United States. CivicSpace focuses on delivering simple Drupal install profiles designed for civic groups through a free and open source download and through our on demand service.

Services

CivicSpace On Demand. Get Drupal + CiviCRM in an instant, pre-configured package with fully functional CiviMail (mass email) and CiviContribute (online donations). This is a service for individuals and groups that want to get a dynamic community oriented website up quickly and easily.

Drupal Contributions

CivicSpace is proud to employ some of the leaders in the Drupal community.

Kieran Lal
Nedjo Rogers
Jeremy Andrews
Robin Monks
Henrique Recidive

Website

www.civicspacelabs.com

Contact

David Geilhufe
Managing Partner

Drupal hosting list

Please edit this page and add the host, with url and a short comment to this list. For a list of official Drupal hosts look into our services section.

name comment
1 & 1 Internet Inc. This huge German hosting company has actually created a configurable, cookie-cutter account that will run Drupal with a bit of minor tweaking. They support both FTP and SSH access, as well as having an extensive control panel. One will probably need to use SSH/shell to get Drupal working well. MySQL is the only database they support.
bryght Bryght offers a fully hosted Drupal service that maintains and upgrades Drupal and a bundle of contributed modules. They also offer virtual private servers for production Drupal hosting.
norrix we will manually install Drupal for you, for no more then $10 per month
pajunas interactive Pajunas supports a very fully-featured PHP install, and both MySQL and PostgreSQL. Drupal runs just fine. Access is through scalable WebDav accounts. This provides better security, but one downside: writable filesystem directories are a bit more difficult to set up, because the admin, owner or developer account has full access rights, while the web server does not.
pingVision Hosting is part of our design and administration services for Drupal- and CivicSpace-powered website installations.
site5 Site5 offers scripted Drupal installs, phpMyAdmin, and many other useful tools for managing your site, at a reasonable price.
Meant4.com LLC
Meant4.com LLC

Originally formed as a website design group in 2002, Meant4.com quickly expanded their services to include software development, web design, technical support and website hosting. Meant4.com is leading hosting solution for Content Management System (CMS) based websites.

In case of any pre-sale questions please send us an email at info@meant4.com

Egressive Limited (New Zealand)

Egressive is a hosting provider based in Christchurch, New Zealand, and
specialises in the implementation, customisation, and hosting of Drupal
sites - on servers with Apache2/PHP5/MySQL5/PostgreSQL8.1. Egressive
offers customised hosting solutions and peerless technical support at a
reasonable cost.

GrafiX Internet B.V.

GrafiX Internet B.V. provides transit, co-location, and dedicated servers in Amsterdam and Rotterdam, The Netherlands. We are most proud to be the dedicated server provider of choice for www.drupal.org, as well as some offspring projects such as www.drupaldevs.org.

We believe in 'medieval marketing', and thus our web presence (www.grafix.nl) is fairly humble. We strive to make our combination of service and support legendary, and our name to pass mouth to mouth, spread wide and far by our many satisfied customers.

It would honor us if you will consider GrafiX Internet B.V. as a service provider for your drupal-based deployment! Contact us at sales@grafix.nl or by phone at +31-(0)180 - 450170

We can offer:

  • Server co-location starting from 59 €/month (Our network, your hardware).
  • Dedicated Servers starting from 200 €/month (Our network, our hardware).
  • Raw or managed transit capacity starting from 1 Mbps to gigabits per second.
  • Rack (cabinet) space starting from 1/3 rack and up to entire datacenter cages.
  • Network, operating system, and security consultancy.
Ixis IT Managed Hosting

Ixis offer managed Drupal hosting for commercial projects who need scalable hosting backed by a solid SLA.

Our Drupal servers are located at the Rackspace datacentre (London, UK) enabling us to offer an enterprise grade service with

  • Redhat Enterprise Linux install
  • 100% network uptime guarantee
  • 24/7 Site availability monitoring
  • Managed daily backup facilities
  • Drupal installation, configuration and upgrade support

For more details on our SLA and support services for clients hosted with us visit the managed Drupal hosting page over at www.ixis.co.uk

Koumbit

Koumbit is a non-profit organisation whose mission is to promote the appropriation of free, libre and open software by social groups in Quebec, in Canada and abroad. We provide professional Drupal hosting & consulting, among our services.

Find out more about Koumbit at: http://koumbit.org/en/apropos

Our Drupal experience has been summarized here: http://koumbit.org/en/DrupalExperience

Koumbit's contributions to Drupal can be viewed in detail by checking our members' profiles under Track -> Track code. Their profiles are available here http://drupal.org/profile/companies/Koumbit

OpenSourceHost

OpenSourceHost is a specialized web hosting company focusing on providing quality web space and support for open source content management systems, as well as other open source software systems. For Drupal hosting, we provide graphical installation instructions, and if you take advantage of our special offer at http://drupal.opensourcehost.com/ you will receive an additional 100 megs of space and 1 gig of bandwidth added to the hosting package of your choice.

Schultz Consult

Schultz Consult is a Danish company developing for and hosting Drupal sites.

Within the drupal site you would get the following:

For only 149,- Danish Kroner you would get the following:
149,- Danish Kroner is approximately 19.96 €
- Latest Drupal installation
- Unlimited use of webspace
- 10 e-mail accounts
- 1 database
- 5Gb of transfer pr. month.
- And loads of more...

At the moment the site with information about Schultz Consults Drupal hosting is in Danish, but it will soon be translated into English.

You may look at Schultz Consult for more information about our Drupal products.

Synerger Hosting (Australia)

Go to Synerger Hosting

Looking for somewhere to host your Drupal site? Synerger Hosting is an Australian hosting company ready and able to do it. We run linux servers with nightly backups (on and offsite) for both databases and filesystems. Our mail administration system gives you full control of your mail needs through a web interface. Including mailing lists! Yes! Including mailing lists!

We are running PostgreSQL 7.4 with PHP 4.3 giving you a stable platform on which to run your Drupal 4.6 (or later) site. We give you 1GB of space and, if that's not enough, uploaded data is free! Not to mention no extra charges for mailboxes, aliases and webmail. Mailing lists are a very low cost add-on making it a breeze to contact your customers.

Choose Synerger Hosting for all your hosting needs!

Our prices for hosting are (in Australian Dollars):

Drupal site (core)*
Monthly Price: $20
Setup: Free** (normally $100)
Contrib module
Monthly Price: Free
Setup: $30/module
Custom module
Monthly Price: Free
Setup: POA
Mailing lists
Monthly Price: $5
Setup: $20
Standalone Mail Hosting (per domain)
Monthly Price: $11
Setup: Free** (normally $100)

Contact us to put your Drupal site online with Synerger Hosting!

Want us to keep your Drupal installation up-to-date? Site maintenance (e.g upgrades) can be also be arranged. Get in touch for pricing.

We also design and develop custom web solutions and applications. Send an email to our sales team to find out more.

* Per domain. We will install 4.6 and 4.7 (once released) core modules. 1GB of space plus POP3 mailboxes, aliases and webmail at no extra cost (IMAP is available at extra cost).
** Free setup until 30 June 2006 for those that mention this advertisement.

vhost.org.uk

vhost.org.uk is a UK-based hosting company focusing on providing
web hosting and services for open source systems. I've just
finished the first phase of setting up our site and our Drupal
service. For £5 a month (£60 a year), we offer:

- Installation of Drupal 4.6.x or 4.7

- Unlimited web space

- Unlimited email accounts

- Unlimited (and unmetered) data transfer

- MySQL database

Our servers have been reconfigured to be 100% Drupal-compatible
and, if anyone has any problems running Drupal on our servers, I
guarantee that we will either fix whatever causes the problem or we
will offer a full refund (within the first month).

More details can be found on http://www.vhost.org.uk

Oh, and vhost itself runs on Drupal. Which is nice.

CascadeHosting

A small webhosting company run from Portland Oregon, CascadeHosting offers cheap web hosting ($99/year includes free domain registration) and web programming contract services. We'll setup Drupal for free as part of our $99/year account, and answer any drupal related questions at drupal@cascadehosting.com. For more information, check their Drupal page.

Drupal services

This section is a directory of some of the individuals and organizations providing Drupal-related services including installation, configuration, design, module development, drupal customization, training, support and other consulting services.

Please note that the directory is sorted alphabetically, and not in an order that would imply preference or relative importance of one listing over others.

Note: We only list individuals and companies that have contributed to Drupal. Even though a "contribution" is somewhat subjective and hard to define, it is fairly easy to understand once you see it. See this discussion on the Development list for more definitions of contribution.

To be listed in the service directory:

1. Post an e-mail request to Drupal developer mailing list (subscription required)

2. Include the relevant details on your contributions to the Drupal project.

3. Include a draft of how your page would look like on the directory.

A site maintainer will then verify your data and add your draft to the directory.

2bits.com (Canada)
Location

Located in Waterloo, Ontario, Canada, 2bits.com offers services mainly to customers in the USA and Canada, but is available for consulting over the internet.

Services

Using the powerful, flexible and open Drupal Content Management System and Framework for database driven backends for web sites, 2bits.com offers various Drupal services including:

  • Development of customized Drupal modules to fit your specific needs.
  • Modifications to existing Drupal modules.
  • Porting modules to older or newer versions of Drupal.
  • Demos, Prototypes, and Proof of Concept web site using Drupal and the modules you need.
  • Installation and configuration of Drupal and any add-on modules you need on your web hosting server.
  • Upgrading your Drupal server to the latest release.
  • Setting up a test server so you can experiment on without affecting your live server.
  • Automated backups of your Drupal web site
  • General consulting, such as web site troubleshooting, optimization, and performance tuning.
Qualifications and Experience

2bits.com has been an active participant in the Drupal community since 2003. They have contributed patches and features to Drupal core, such as modifications to the contact module as well as the site offline feature in 4.7. They have developed many modules which they contributed back to the community such as:

2bits.com also contributes to other areas within Drupal, including the security team, and the infrastructure team responsible for the Drupal.org web site.

We have also consulted for several web sites. Please see what our clients think of our services in the testimonials page on our web site.

Further Information

Please check 2bits.com company profile on Drupal.org which includes links to our people, and from there you can see an up to the minute list ofprojects we contributed, and CVS commit messages and other information.

Please visit our web site at 2bits.com.

Contact

Use this contact form to get in touch with us.

Advomatic

Advomatic Design is a New York City based web consulting firm. We were founded by two former members of Howard Dean For America's web team, Adam Mordecai and Aaron Welch.

Advomatic Design is here to help your campaign, organization, or business leap into the brave new world of internet strategy, grassroots campaigning and, of course, blogging. We offer multiple services, including blast email, managed hosting, custom theme integration, module development and specialize in moving companies off other platforms such as Scoop and Moveable Type.

We have contributed to and created numerous Drupal modules, including Troll, Flexinode, Roledelay, and Event.

Advomatic has numerous Drupal based clients including Air America Radio, WESPAC - Securing America, TPMCafe, Democrats.com, and Personal Democracy Forum.

If you'd like to learn more about our services, please visit our website or email Adam Mordecai.

Antinomia Solutions

Antinomia Solutions specializes in web development for growing businesses and Non Govermental Organizations (NGOs) with a well founded knowledge of Internet strategies, web design, eCommerce, and online community building. We believe that the Internet is a community and we develop strategies for our clients to harness the people-power of the Internet for their campaigns.

http://www.antinomia.com/

Barry Jaspan

Contact Barry Jaspan or visit my web site.

I am a computer programmer and serial entrepreneur that has founded four successful start-up software companies in the Boston area. I have extensive experience with web design and e-commerce, computer, network, application, and cryptographic security, product development, and engineering management. I deliver high quality, professionally constructed code with thorough design documentation.

Recent Drupal web design clients include:

  • WheresSpot (as of November 2006, the Drupal-based site I designed is not yet publicly available). I constructed a complex HTML/CSS theme based on a Photoshop design from their graphic artists, implemented Classified Ads with a multi-stage workflow and e-commerce integration, and migrated legacy data into Drupal.
  • The MSNews site of the Accelerated Cure Project for Multiple Sclerosis (as of November 2006, the Drupal-based site I designed is not yet publicly available). I converted their existing site from Slash to Drupal. The site itself is fairly basic (mostly just stories and comments), but I implemented a Drupal theme to match their existing site, implemented a thorough Slash to Drupal data migration tool that preserves users, stories, blogs, topics, and comments, and also implemented the first secure "Remember Me" (Persistent Login) feature for Drupal.
  • The Dachshund Rescue Web Site. I re-implemented this site in Drupal to replace a large collection of hand-edited HTML pages.
  • Straight Aces, an online poker school. The site is dormant but still useful as a demonstration of my work. I created absolutely everything on that site except for the basic color scheme and the background artwork in the Interactive Classroom application. The site is set up to use e-commerce for online billing but there is nothing presently for sale. If you enjoy poker, I recommend taking one of the sample courses; they are quite informative.

For a complete resume, references, or other information, please contact me or visit my web site.

CivicSpace

CivicSpace has been a core contributor to the Drupal community since CivicSpace's inception with the Howard Dean for President campaign in the United States. CivicSpace focuses on delivering simple Drupal install profiles designed for civic groups through a free and open source download and through our on demand service.

Services

CivicSpace On Demand. Get Drupal + CiviCRM in an instant, preconfigured package with fully functional CiviMail (mass email) and CiviContribute (online donations).

Turnkey site creation. We will build a complete site for you and host it on CivicSpace On Demand for a fixed fee.
Associate Services: Theming & Development. We provide services to CivicSpace Associates to increase their capacity to serve their clients. We offer full themeing services and can expand development capacity.
Custom Development. If its critical to CivicSpace on Demand or the Drupal/CiviCRM communities, we will be happy to build the functionality right and work with you to get it integrated into and used by the community.

Clients

GoodStorm. Ecommerce.
IDRC. Yahoo Groups replacement Drupal.
WhereSpot. Yahoo Groups replacement in Drupal.
Catalyst Creative. Social networking functionality

Drupal Contributions

CivicSpace is proud to employ some of the leaders in the Drupal community.

Kieran Lal
Nedjo Rogers
Jeremy Andrews
Robin Monks
Henrique Recidive

Website

www.civicspacelabs.com

Contact

David Geilhufe
Managing Partner

contAire GmbH

contAire GmbH | http://www.contaire.com/ Arndtstr. 12, D-50676 Köln, Germany
+49 221 4204757 | info@contaire.de

contAire GmbH is a consulting and software development company with a rich background in project work for e-commerce enterprises as well as media companies. Our managing directors are Dr. Olav Schettler and Friedrich Stahl.

Services: contAire GmbH realises complex web-based projects. We compose and realise the software systems that best implement the digital content processes our customers need. Often, such a system is a tightly integrated blend of both commercial and free software components. Drupal has become our favourite when it comes to implementing online community features.

Qualifications: We are an active and esteemed implementation partner of leading software companies Autonomy, CoreMedia, and Six. Our deep project experience taught us to successfully tackle complex tasks in agile environments. Recent clients include Bertelsmann AG (Guetersloh), Sanofi-Aventis Deutschland (Berlin), Roche Diagnostics GmbH (Mannheim), EUROPART Holding GmbH (Hagen), Draeger AG (Luebeck), and MDR Mitteldeutscher Rundfunk (Leipzig).

Drupal Projects: http://diabetes-world.net/ - Forum and user profiling; http://contaire.com/drupalsite - Company page + write-up; http://kgs-marienschule.de - School homepage, web-publishing workshops with teachers and pupils; To-be-disclosed site for a large + international research community.

Drupal Contributions: We contributed an early wiki.module, a small teaser.module and a new theme engine for the PHPTAL language. We also sponsored the Drupal booth at Linuxtag 2006.

Cortext Communications

Based in London, and established in 1997, Cortext Communications has been specialising in Drupal development since 2003.

Services

Theme Design
The look of ever aspect of a Drupal website can be styled using a custom theme. Cortext creates themes which are not only designed to look good, but also comply with accessibility standards and optimised for search engines.

Programming
Additional features can be added to Drupal by installing new modules. Cortext can either locate existing modules which match required features, or if no module is available, create a module to enable new features.

Website Set-up and Maintenance
From planning a site, to implementing it, and keeping it running - Cortext Communications is a one stop solution for Drupal based projects.

Recent Clients

Awardees.net
Focus West

Drupal Contributions

Themes

Modules

Website

http://www.cortextcommunications.com

Contact

Robert Castelo
Services Manager
Cortext Communications

services@cortextcommunications.com

Tel: +44 (0) 20 8746 0117
Fax: +44 (0) 20 8248 9565
49 Greenside Road
London W12 9JQ
United Kingdom

Development Seed Inc.

Development Seed Inc. (http://www.developmentseed.org) is founded with a single purpose: to bring the latest communications and technology strategy and services to progressive organizations. Development Seed also consults on specific Drupal applications, predominantly focusing on applications needed by international development organizations and projects.

Development Seed has built over 30 Drupal powered websites.

Development Seed writes and customizes modules for many different purposes and niches. Our team is made up of web strategists, application programmers, designers, web publishing experts, and above all, visionaries.

Development Seed clients range from large institutions like World Resources Institute, the United Nations Foundation, and the World Bank, to smaller organizations like Haiti Innovation and Public Campaign.

If an organization is looking to try something new and trusts us, our targeted strategy, design, and custom functionality delivers the results.

Electronic Insight Corporation

Electronic Insight Corporation is a California-based web consulting firm founded in 1997 by Rob Barreca.

Electronic Insight Corporation helps businesses and organizations create a lasting presence on the web. Our services include graphic design, managed web hosting, search engine marketing, custom theme integration, and module development.

We maintain the ChipIn, Notify, Path Filter and Simplenews (co-maintainer) Drupal modules and have contributed to Drupal core and other modules, including Actions, Tagadelic, and Workflow.

Electronic Insight Corporation has many Drupal based clients, including UC Berkeley, Qualcomm, Inc., TracerLink, General Lock, Vantage Counsel, HiBEAM, and others.

To learn more about our services, please visit our website or contact Rob Barreca.

Gerhard Killesreiter

gerhard@killesreiter.de
Freiburg, Germany

Gerhard is a freelance Drupal IT consultant. He has closely followed and participated in Drupal's development for over four years.

Services Consulting on Drupal setup and training, custom extensions to existing and development of new modules according to the client's specifications.

Qualifications During my work with Drupal I have implemented solutions for a variety of problems including - but not limited to - an access control module, a remindme extension for the event module, which I also maintain, and the listhandler module. In the past I managed to reduce Drupal's execution time by improvements to the database queries. Recently I have been successfully trying to decrease Drupal's page execution time even further by caching some data structures. I have also been successfull in getting a significantly improved locale.module into the Drupal core for the 4.5 release and worked on PHP 5 compatibility for the 4.6 release. A pending project is the improvement of the Drupal's revisioning system.

Recent Clients

Gus Geraghty (Dublin Drupaller) - m3m

m3m (modern media muse) is a small consultancy based in Dublin, Ireland & Manchester, England that has over 14 years experience dealing with small and large organisations (Client list), in particular music industry clients (Record Labels, Artist management, publishers etc.) and clients from other sectors, including; banking, financial services, software companies, conferences, government, universities, training and localisation to name a few.

m3m's lead consultant - Gus Geraghty (Dublin Drupaller) has been working with Drupal since 2004, contributing modules, documentation and support and is equipped to help advise, structure and build a Web 2.0 style site using Drupal on a freelance/contract basis.

Key services would include:

  • Feasibility studies - evaluating the value and opportunities of moving to Drupal or building a proposed site using Drupal.
  • Site structure - developing a Drupal site architecture and site specification.
  • localisation planning - structuring a multilingual and multicultural Drupal site
  • eCommerce - the construction, from scratch or conversion of ecommerce solutions using drupal
  • Module development & modifications - developing or adapting existing modules for specific needs
  • Training - training staff so updating and maintenance can be handled in-house with the client
  • Theming - migrating an existing design & layout to Drupals Theming sysyem. The development of new themes, including desktop, wireless, mobile and pda themes.

For more details contact, Gus Geraghty (Dublin Drupaller)

m3m - modern media muse
1 Church Lane
Rochdale
Greater Manchester
England
OL16 1NR

t. (Manchester): +44 (0)161 408 4300

w. modernmediamuse.com
e. email Gus

Heydon Consulting - Gordon Heydon

gordon@heydon.com.au
Melbourne, Australia

Services: Consulting, Drupal implementation, Customisation of modules and core to allow for a best intergration into your business. The creation of plugins for HTMLarea module to allow for better intergration, and not to disadvantage uses who are not using HTMLArea.

Qualifications: Gordon has been an active member of the Drupal community since 2001, by first maintaining and contributing to existing modules. Later developing several modules such as the HTMLArea intergration module which allows for <textarea /> tags to be converted into a WYSIWYG. editor. Other contributed modules include the filestore2 module and an extensive modification to the image module. In addition to the contributed modules, their has also been a number of contributions to core in the form of new APIs and extensions of existing functionality.

Heydon Consulting is dedicated to the ongoing development of drupal, and working with customers to create a CMS that will fit your needs now and into the future.

For more information see http://heydon.com.au/consulting

John Handelaar

john@handelaar.org
Based in Cork, Ireland

Services

I build Drupal sites in general, but also have extensive experience in porting your existing data (even if there's a lot of it) into Drupal from wherever you have it right now. I'm based in the Euro zone and have business facilities here in Ireland, as well as in the UK and the US.

Example sites
  • MBR.org, an enormous Drupal install delivering over 2 million pages per calendar month. As part of the build process I ported a quarter-million forum posts from EZboard into a Drupal site. This site also uses the Ecommerce module suite, and I developed a payment gateway for Linkpoint.com in order to integrate the customer's existing provider into the new platform.
  • ABCtales.com, the UK's largest community site for writers. It's an offshoot project of the Big Issue Magazine. The data, in its most recent previous incarnation, was in Plone. This site has four custom Drupal modules dedicated to handling its story collections.
  • Evolt.org, the biggest and best web developer community anywhere, moved to Drupal in 2005. I moved the data.
  • I've developed a number of UK Public Sector sites in the last 18 months, including Broadband for Guidance, Connexions Central London and Nextstep Hertfordshire
At Drupal.org

You'll find me looking after the Performance and Scalability Forum, and maintaining some modules, including Whatsrelated and the CV Builder suite.

Contact details

...are on my personal site's contact page.

Koumbit.org

Koumbit is a non-profit organisation whose mission is to promote the appropriation of free, libre and open software by social groups in Quebec, in Canada and abroad.

More about Koumbit at: http://koumbit.org/en/apropos

Our Drupal experience has been summarized here: http://koumbit.org/en/DrupalExperience

Koumbit's contributions to Drupal can be viewed in detail by checking our members' profiles under Track -> Track code. Their profiles are available here http://drupal.org/profile/companies/Koumbit

leafish.co.uk - website development

Leafish is a UK-based web design, development and hosting company, founded by Paul Byrne and Dylan Sides. We provide dynamic, CMS-driven sites built on Drupal. We have had several years experience in using Drupal and many of its contributed modules. We have made contributions to core code, and have written several custom-built modules and themes for our clients.

We provide Linux-based hosting, with all the necessary features required to run any kind of Drupal site, from simple static sites, through blogs and community forums, right up to e-commerce sites. Our hosting comes with POP3, IMAP, SSH, PHP, MySQL, Majordomo mailing lists and is fully managed, should our clients wish.

We can also provide Drupal consultancy for existing sites and projects. For example, custom themes, additional custom modules and administration of Drupal sites.

Lullabot Consulting Group


Lullabot provides Drupal consultation and training services to customers who want to quickly and fully harness the power of Drupal while avoiding the pitfalls along the way. We have immense experience with Drupal and other open source software and stay abreast of the latest developments, trends and technologies.

Lullabot.com provides Drupal-centered resources and education for developers and end-users alike. We regularly publish video and audio podcasts with Drupal-related interviews, news and tutorials.

Moshe Weitzman

Contact Moshe. He lives in Boston, MA USA.

Moshe has been a consistent contributor to Drupal core and Contrib since November 2001. As such, he has pretty much touched the whole core code. He maintains the user.module, the bootstrap code, and the groups.drupal.org web site. He is also a member of the Security team and a Permanent Member of the Drupal Association.

Services: Consulting services include site planning, information architecture (i.e. wireframes), installation, training, and ongoing support. Custom Drupal software development my specialty.

Moshe is intimate with Drupal's inner workings, and can complete custom projects with speed and quality. He is maintainer of the folliwng Drupal areas:

Recent Clients

  • Moodcenter.org is deploying a portal site where patients complete surveys and receive instant graphical feedback about their mood state over time. This portal requires integration with a survey engine, statistics application, and PHP graphing utilities.
  • Marlboro College is integrating the Drupal authentication system with their own LDAP based directory. The Drupal ldap_integration.module is powering that integration.
  • National Society of Hispanic Professionals is relaunching their web site using Drupal as a Content Management System and community engine. Special planned enhancements include a powerful new calendar with deep taxonomy integration.
  • Music For America based their ambitious site on Drupal, and asked Moshe to develop modules for tracking their artists, venues, contacts, and more. Moshe delivered a flexible node module which could serve all these purposes at once. This module was incorporated into the Civicspace project. Planned enhancements include affiliate tracking and enhanced subscription features.
  • University of Vienna is now running one of the most advanced Drupal pods in the world. They maintain one Drupal site for many courses in their catalog, while maintaining a single user account across all sites. They also share language translations across sites. Moshe's design notes for this implementation are documented in this email (note: the stumbling block was solved).
  • Rowland Institute at Harvard uses Drupal as an intranet for their community of scientists and technicians. Moshe delivered installation and webmaster training to Rowland, along with ongoing support.
  • CodeOrange is a thriving community site based loosely on current news. Moshe developed the Node moderation module which promotes the best nodes to the home page every day based on moderation ratings submitted by the community. Additionally, Moshe is currently working on enhancing Drupal's moderation systems in order to highlight strong posts, and hide troll posts.
  • Weedtracks and ShareNewYork are community web site built around legal online sharing of music. They are marketplacea where users may upload songs and then receive commissions based on how many users download and purchase these songs. It is an innovative business model in a sector which has shown promise, but never made much money. Moshe is delivering custom modules for upload/download, automatic MP3 data extraction, FTP integration, ecommerce and PayPal integration, and more.
  • Finnish Broadcasting Company enables their users to create and grow organic groups. These groups are similar to Yahoo Groups, where anyone can create a public or private group, and users post messages to their group home page. FBE has also sponsored Moshe to build photo gallery functionality based on a tagging system like Flickr and Del.icio.us. This work is being released back to the Drupal community. Thanks FBE.
  • Echochamberproject is an open source, investigative documentary about the how the television news media became an uncritical echo chamber to the Executive Branch leading up to the American war in Iraq. Moshe provides custom development and consulting to
    this fine project.
  • Enterprise Sales Forum. Moshe implemented a number of innovative email newsletter solutions here, in order to inform busy sales professions who need bite sized chunks of high quality news.
  • Avid. Moshe implemented a large web application where filmakers and editors can collaboratively author a finished video project .The solution managed the whole video workflow from conceptualization to shooting to editing to post-production.
  • Fearlessliving.org. Moshe enhanced the Drupal ecommerce suite such that buyers could receive periodic templated emails as a result of their purchases. The module allows for certain products to configure these templated emails and configure the time when the emails should be issued.
  • Quadstone delivers predictive analytics solutions to large enterprises. Moshe integrated custom analytics documents produced by Quadstone software into the Drupal search engine.
  • Wheresspot is relaunching their online community in Drupal. Moshe is working to integrate Mailman mailing lists with the drupal forum thus providing integrated web and email forums. Wheresspot.is moving from Yahoo groups to this Drupal+Mailman solution.

Contact Moshe

Ontwerpwerk

Ontwerpwerk is a multidisciplinary design agency based in The Hague (in the Netherlands). Our interaction design team is committed to designing and developing Drupal powered websites with custom made designs and custom made functionalities. Ontwerpwerk creates corporate websites, intranets, ecommerce sites, online communities and webapplications. As Ontwerpwerk is a full service company, we take care of hosting and support as well.
See www.ontwerpwerk.nl/drupal for examples of our Drupal websites.

We contribute to the Drupal project by providing support in the forum, maintaining modules and by running workshops and hosting Drupal Drop In's.

Please contact Emil Heijkants.

Ontwerpwerk
multidisciplinary design

Prinsestraat 37
2513 CA Den Haag
Postbus 45
2501 CA Den Haag
Nederland
T +31(0)70 313 20 20
www.ontwerpwerk.nl

pingVision, LLC

pingVision, LLC is an interactive media and design company based in Boulder, Colorado. Since its transition from an informal partnership headed by founders Laura Scott and Kate Lawrence into a limited liability company in January 2006 as pingVision, LLC, pingVision has designed and developed websites for corporations, non-profit organizations, educational institutions, online media ventures and virtual communities.

With strength in design and coding, we bring to every job experience and expertise in Drupal-based web development, PHP, MySQL, Flash, video production, postproduction and encoding, DVD authoring, and interactive design.

  • Laura Scott (laura s) has been designing and deploying websites for individuals and businesses since 1994. She has over a dozen years' experience in television and video as an editor, motion-graphics artist and compositor and producer for HBO pictures, various indie film companies and a number of Fortune500 corporations. Laura has been involved with Drupal since 2004, designing and developing myriad sites, including BlogHer.org. Laura is a Drupal documentation contributor, manager of the Community group on Groups.Drupal and active participant in the Drupal support and discussion forums and email lists.
  • Kate Lawrence (klawrence) has held management positions at Hewlett-Packard, DuPont and a number of venture capital-backed start-ups. Kate holds a double-major undergraduate degree in Chemistry and History from the University of Washington, where she also did Masters Degree work in the History Department and the Far Eastern and Slavic Institute. Her post-baccalaureate academic studies have been in applied mathematics and life sciences. She holds an MBA from Harvard Business School, specializing in Technology Management and New Ventures.
  • Rich Orris (rorris) has been involved with Open Source software since 1999, working as lead developer for CivicActions, LLC, web developer, graphic designer and house manager for Empire State Plaza Performing Arts Center (The Egg), and technology and information specialist for the Home Care Association of New York State. A graduate of Wesleyan University with a BA in Computer Science, Rich is an expert in web standards, PHP, MySQL, Linux, Apache, JavaScript, Shell scripting, AJAX, Ruby on Rails, XHTML, XML, CSS, Drupal, CivicSpace, CiviCRM.
  • Greg Knaddison (greggles) has been contributing to Open Source projects since 1999. A graduate of the University of Pennsylvania's Wharton School with a degree in Information Systems, Greg's technology experience spans the gamut from profitability models built with Excel macros to web-based decision engines built on top of Oracle. He has worked for large firms, including Arthur Andersen and Price Waterhouse Coopers, as well as for Azure Solutions and Charter Communications. Greg is an expert in Drupal, Linux, PHP, Python/Jython and MySQL. Greg is "disorganizer" of the Denver Drupal User's Group, is a Drupal.org site maintainer, and has been an active patcher in the Drupal community.
  • Ian Shorrock is a University of Colorado graphic artist with a computer science background. Prior to joining pingVision, Ian worked as graphic designer for CU's Fiske Planetarium. As a freelancer, he has done Flash-based, database-driven web design for a number of independent projects.

For more info, please visit the pingVision website: http://pingv.com

Suuch Solutions

We are US/West-Africa-based company looking to expand our experience with the Drupal platform by offering maintenance services for already installed Drupal bases.
Here is a link to our Drupal.org profile: http://drupal.org/user/23178.

Please consider working with us when looking for affordable support [http://sbs.suuch.com/drupal/basic] for your Drupal projects.

Sympal

Sympal uses Drupal, but has a new view on this application: simple.
We are based in the Netherlands and our site is entirely Dutch, so please just mail us any requests or questions you have, if you do not speak Dutch. Requests are also very welcome, when you just wish to receive more information in Dutch.

Sympal: Your site is made ready and delivered to you, completely preconfigured and optimized for your wishes and ease of use. Hence our name: simple.

Drupal and our servers are always kept up to date with the latest security patches and latest stable Drupal release. On top of that, our configuration comes with a lot of intersting preconfigured modules and themes. So that we can get you rolling quickly.

No more fiddling with install manuals, no more wading trough spaghetti admin interfaces. We quickly allow you to work on your site, not make you work on Drupal, but on your content and your website.

Teledynamics Communications

Teledynamics Communications Inc is an internet and open-source consulting company based in Sauble Beach, Ontario Canada. Established in 1983, TCI has been involved in large-scale Internet portal research for over 10 years. Our portfolio includes community sites for military, manufacturing and emergency response applications, Sympatico-Lycos and the Canadian Broadcasting Corporation. For more information, visit Teledynamics Communications' Drupal services page or check their Drupal related information.

Trellon, LLC

Trellon, LLC, established in 2004, is a political consulting firm specializing in the Internet and New Media. Our core competencies include building online communities, contact relationship management, volunteer and grassroots mobilization, advocacy campaigns, fundraising and constituent intelligence. We help our clients develop strategies to advance their policies and agendas by leveraging technology solutions focused on outcomes.

Trellon has created and contributed to numerous Drupal modules - EventFinder, Petition, and Volunteer - just to name a few.

Operating out of Washington DC, New York City, Chicago, San Francisco and Las Vegas, Trellon is a steadily growing, and our team of experienced professionals possesses a diverse background including work in political campaigns, healthcare, government and non-profit sectors.

A few of our clients include Moms Rising, Sunlight Foundation, Alliance for a Better California, IronWeed Films, alonovo.

If you have any questions, please feel free to contact our business team at Trellon.com.

Webschuur.com

webschuur.com is a small scaled company that builds content management system (CMS) driven websites. We can provide the help and advice to create a dynamic website, from scratch or from an existing site. Whether you are looking for cutting edge technology for your organizations web-based communication, or for solid solutions for your companies web-presence: we can offer it!

For more details please do not hesitate to get in touch with us.

Bèr Kessels (ber@webschuur.com)
Turnhoutsebaan 34/3
2140 Antwerpen
België
Telephone ++32 (0)3 6632292
www.webschuur.com

HOWTO: Hire a Drupal site developer

When hiring a Drupal site developer it's important to understand what you need and where you can find the service provider with that set of skills.

There are four sections to this document: Define the Scope of the Project, Define the Budget for the Project, Match The Desired Skill Level to the Task, Advertise the Job.

Define the Scope of the Project

Before you try to hire someone, you may want to define what the project would entail. Most developers like to work from clear requirements to achieve well defined goals. Having vague requirements and shifting goalposts is very frustrating for you, the client, and for the developers.

Remember that different skill sets are required for different projects, as well as for different parts of the same project, depending on size.

  • Do you want installation and configuration?
  • Do you want a theme designed?
  • Do you want modifications to existing modules?
  • Do you want new modules written?

You may not have the answers to all the above, but it helps a lot if you have some idea of what you need.

Define the Budget for the Project

Having a budgetary figure will help bring the scope down to earth in many cases. For example, your wish list may need to be trimmed back if you do not have enough budget to implement all of it.

Once you do that, you can now break the project into tasks (e.g. installation, theme design, programming).

Match The Desired Skill Level to the Task

  • Hire a contributor to the Drupal community to ensure the sustainability of the project
  • Hire someone who can research your needs to see if the many contributed modules already do what you need
  • Hire a designer with CSS skills to customize an existing theme or create a new theme
  • Hire an experienced Drupal developer if you have a short project time line
  • Hire an experienced PHP developer who can learn and code to a well defined set of APIs if you have a large project and a multi-month deadline
  • Hire someone who understands your industry and the particular needs of your sites users

Consider reading the relevant portions of the handbook page with common uses of Drupal and required skills.

Advertise the Job

There are several listings of Drupal service providers. After your needs analysis, if you determine that you need a Drupal consultant--as opposed to a PHP or CSS consultant-- consider the following resources. These lists also contain qualified PHP/CSS consultants, but you may have a relationship with such a service provider or be able to find a PHP/CSS provider somewhere else.

How to effectively use IRC

The IRC channels

Drupal uses the FreeNode IRC network, irc.freenode.net, and occupies the following channels:
#drupal for Drupal Development Chat
#drupal-support for support
#drupal-themes for theme support
#drupal-dojo for the Drupal Dojo group
#drupal-consultants for Drupal Consultants
#drupal-ecommerce for the E-commerce Group

To learn more about how to actually get connected to IRC, there is a good write up on finding a good client and connecting to IRC at http://groups.drupal.org/node/2326. The intention of this book page is how to interact once you get connected to IRC.

There are a few simple IRC comands that should be used to allow best use of the IRC channels.

Register your nick with freenode

When you log into IRC you're going to want to register your name with NickServ so no one else can use your nick, and others can gain familiarity with you by you using the same nick. Learn how to register your nick at http://freenode.net/faq.shtml#nicksetup

Use the same IRC nick that you use with drupal.org

Most people use their drupal username as their nick in IRC. If that name is already taken on freenode, then append an underscore to the name. For example my drupal username is tomf, but that was not available on freenode. I've registered my IRC nick as tomf__ (two underscores, my nick with one underscore was not available either). Having a familiar nick allows for consistency between IRC and the drupal sites.

Chatting

You'll often see people performing actions in IRC. Unlike talking normally, actions say to the IRC channel something that you're doing. You precede the action with /me. For example: "/me shakes fist in the air in frustration about learning IRC".

Set an away message when you aren't available

If you're going to step away from your computer for a bit, but want to keep IRC open so you can scroll back to see the message log, you should set yourself to away. You precede your away message with /away to set yourself away. For example: "/away I'm out to lunch for a bunch of munch". To come back from away status just type "/away" with nothing after it.

Chatting directly with another user

If you want to message someone directly within the channel, precede your message with their nick:. This will alert the person that they have a message especially for them, and makes it easier for the person receiving the message to read it in a busy channel. For example: "tomf__: I'm speaking directly to tomf__". You can also use tab completion when typing in an IRC nick. Type the first couple of letters in someone's nick and then hit <tab>, and voila, your IRC client has finished typing the rest of the nick. If there is more than one nick that contains the first couple letters you typed in, keep hitting <tab> until you find the nick you want.

If you need to message someone directly, outside of the channel, precede your message with /msg nick. You should only message someone privately if the conversation does not concern the rest of the channel. Do not message anyone privately for support. To message someone privately you type: "/msg tomf__ you screwed up drupal.org by installing such and such module before testing it". Messages like this shouldn't go to the whole channel, because this message does not benefit anyone else in the channel.

The IRC bots

There are two bots in the drupal irc channels, bot_module and Druplicon. Both bots are run by Morbus, and if there are any weird problems, contact him. bot_module will eventually replace Druplicon. You can read more at http://drupal.org/project/bot. You can use these bots to answer questions for you. These bots will automatically look up a node for you on drupal.org if you type a node id such as "#12345" or "4321", but only if that is the entirety of the message and the number is at least 4 digits. Popular and recent URLs are tracked at http://feast-or-fa.mine.nu/drupal/?q=bot/drupal_urls.

You can also ask the bot the last time someone was seen. If someone asks "seen peter", "seen peter? seen lois?", "have you seen sbippy?" or similar questions, the bot will report the last time they've been seen, where, and what their last known message was. They will only respond if the "seen Name" trigger is followed by a question mark or if the message immediately ends thereafter.

Have the bot answer questions for you.

You can also have Druplicon remember definitions for you. If you constantly are saying the same thing over and over in the support channel, and don't feel like typing the same response over and over, have Druplicon remember the answer. You set this up by typing "keyword" is "definition" to Druplicon . For example: "Druplicon: irchelp is You can find a very informative book page about IRC help in the handbook."

Now if some one were to ask about irc help in the channel, one would only have to type "irchelp?" to have Druplicon automatically answer with "You can find a very informative book page about IRC help in the handbook." To have Druplicon forget about that definition just tell Druplicon to forget about it by doing by "Druplicon: forget irchelp"

To view any recent IRC logs go to the following url: http://feast-or-fa.mine.nu/drupal/?q=bot/log

IRC is a great place to feel like you're part of the community, and you can learn a lot by just lurking in the channels to start with.

Themes and modules used on Drupal.org

Drupal.org naturally runs on Drupal. The theme for Drupal.org is called Bluebeach. You will notice that it is not available on the theme's download page. Visual identity brand is very important and to see from various past forum requests, many people believe that the current theme is striking. In order to preserve that 'brand' identity, Bluebeach will not be made available. There are several long threads in the forums that cover this discussion in more depth.

Note: If you are looking for a similar theme, check out Friends Electric . It was written by the same person and is a more generic theme with many of the same techniques as Blue Beach.

As everyone knows, designing a theme that looks the same across a wide spectrum of browsers is a challenge, especially when one considers the diversity and content on this site and platforms browsed from. In several cases the decision was made sacrifice compliance for consistency across browsers.

The front page of Drupal.org is a fairly standard use of Drupal with a minor addition. The orange box is the standard mission statement (admin >> settings). The rotating image to the left is a php script that displays a banner image from a directory. The green download box is also part of the theme template. The remaining blocks in blue are standard blocks. The grey box is a standard forum post from the news and announcements section, generally with coments disabled, 'Promoted to front page', and 'Sticky at top of lists' set.

The font used for the Drupal logo is known as FF Max.

We use a variety of core and contributed modules, which has resulted in some confusion about why some features are apparently 'missing' from a default Drupal install and how you could get a similar site going.

Drupal.org uses the following modules (not including required modules) from core:

and the following contributed modules:

In addition to core and contributed modules, there are also several custom php pages (handbook) (code) and blocks.

Note however that Drupal.org tends to follow the development version, so it may have functionality which is not yet present in the latest major release. It is a good idea to check the log of changes to see if the feature you want is only present in the development section (marked as version Drupal x.x.x, xxxx-xx-xx (development version)).

There are several blocks on Drupal.org that are throttled during high traffic. Not all blocks appear on all pages.

Tips for posting to the Drupal forums

The following best practice tips can make participating in the forums a more pleasurable and productive experience for everyone:

Additional reading:

Version numbers, policies and which version you should use

Which Drupal version should I run?

It is recommended that you run the most current stable release. This can always be found at the Drupal Project page. However, if there are no compelling features in the latest version, a contrib module that is important to you isn't ready or you don't have time, there is no need to rush your upgrade as long as security updates are available for the version you are running.

The current stable release is Drupal 5.1. The next version of Drupal, 6.0 is in development and not fit for production use. Drupal 4.7.6 is still supported but if you are just starting your site you should begin with the latest stable release.

When is the next release? Per the Open Source tradition, when it's ready. When sufficient testing of fixes of bug reports is complete. More attention is given to a rapid release of security issue's. The more people involved in fixing and testing reported issue's, the faster a release is likely to come out.

How do I know which version of Drupal I'm running?

If it's available, go to administer >> logs >> status report. This will list your version number if you have Drupal 5.0 and above.

Failing that, look for the file called CHANGELOG.txt in the root of your Drupal directory and open it up to find the version you are running.

If CHANGELOG.txt is missing, you can also check in system.module for a line at the top like:

define('VERSION', '5.1');

If this is present, it will tell you which version of 5.x you are running. If not, you have a version earlier than 4.7.0.

Is my version of Drupal supported?

Supported versions for security patches and availability for download are the current stable release and one version previous. Running unsupported versions may expose you to unknown security risks and you are strongly urged to remain updated to a supported version and sign up with the security notification list.

What about upgrading and backwards compatibility?

For more details read this overview of the Drupal's philosophy on backwards compatibility.


What do Drupal's version numbers mean?

In Drupal 4.7.x and previous, the first two numbers indicated the Drupal version number, while the last indicated a "point" or bug-fix release with a specific "patch level". For example, "4.7.3" means "the third bug-fix release (patch level 3) of the 4.7 version of Drupal."

This was frequently confusing for people who expected 4.7.x to be a minor update of 4.6.x, when in fact this was far from the case. Different versions of Drupal often break API compatibility with one another, and require contributed modules to be upgraded.

Starting with Drupal 5.x, the "5" indicates the major version of Drupal, and the .x is the bug-fix release or patch level. That means that 5.0, 5.1, and 5.2 all have the same underlying structure and modules for 5.x are all compatible with each other. However, modules written for Drupal 6.x will not work with 5.x and vice-versa.


Development snapshots


A release with "-dev" at the end of the version indicates a development snapshot from the end of a CVS branch (as opposed to an official release from a CVS tag). These snapshots, by their nature, include changing code. It is therefore hard to know exactly what revisions of each file they contain, even if it is a snapshot of a stable branch where only bug fixes and security enhancements are being made (such as the 4.7.x-dev snapshot release of Drupal core). This makes them more difficult to debug and the should generally be avoided for production sites. Development snapshots also use "x" for the patch level to further indicate the variable nature of the code they contain. Both Drupal core and the contributions can have development snapshots.


What do contributed modules' and themes' version numbers mean?

As of 2006-11-11 and later

Now that the new system for releasing Drupal contributions has been installed, contributions have a more elaborate version string. The new strings indicate the version of Drupal core the contribution is compatible with, whether it is a stable or development release, and what specific "patch level" of the code it represents. These strings have the form:

CoreCompatibility-Major.PatchLevel[-Extra]

Versions with extra tend to be less stable (development snapshots in particular are inherently unstable) so they should be avoided for production sites. Official releases uniquely identify an exact set of revisions of each file in a contribution. This identifier can be used in many places: the issue queue, the CVS repository, in forum posts, emails, and so on.

Some example version strings and what they mean should help clarify:

Contributed module versions prior to 2006-11-11

If you happen to have an older "release" of a contributed module, the version numbers are different. Prior to 2006-11-11, the version numbers for contributions where of the form "X.Y.0".

Due to code changes in major Drupal core versions, modules are not expected to work with newer Drupal versions. If you wish to test, please do so on a test system. Otherwise, feel free to help the maintainer by submitting patches to update the module. If a maintainer is unavailable, you can apply to become the maintainer. (See the developers guide for more information).


Betas and release candidates

Before every official ".0" stable release of a new major version of Drupal core, there are usually a handful of beta releases and release candidates that are made available. These releases are not yet stable enough for production use, but are essential milestones on the way towards the official release. They allow a much wider pool of users to test the latest code and provide feedback before the official stable release. These releases should only be downloaded and used by developers very familiar with Drupal or those wishing to help find bugs in the software.

Beta releases

These are the first to come out, and are therefore the least stable. During the period of beta releases, usability features are still considered, the translatable strings (help texts, words in the interface, etc) might be altered, and if absolutely necessary, the API or database schema could change (to fix a critical bug). Of course, other kinds of bug fixes are always applied.

Release candidates

Release candidates are usually only created once no more critical bugs have been reported in a given beta release. These are considered nearly stable code, something the Drupal development community is considering as a candidate to be released as the official .0 version. No more usability changes are made, and the translatable strings are usually unchanged at this point.

Some maintainers might choose to provide beta releases or release candidates of their contributed modules and themes (though this is not required). You should read the release notes carefully in these cases, since the details might vary across projects, though the basics explained here should hold (a "beta" is less stable than an "RC", etc).

Once a feature freeze is announced, no new features will be added to that version of Drupal. That version of Drupal's feature set is locked and any new features or change of behavior will need to go into the next release version.


In the forums you will see references to Drupal HEAD or just HEAD. You will also see references to Drupal CVS which is often the same thing. The name comes from the fact that Drupal uses the CVS version control system to track changes to the code, and in CVS, "HEAD" refers to the main development area (also known as "the trunk").

HEAD is the name given to the version of Drupal core being worked on by developers right now. However, now that core is only using two digits for the version number (starting with the 5.0 release), there's no longer any ambiguity about what the next version of core will be called, and the use of "HEAD" to identify a release is no longer necessary. For example, as soon as the official 5.0 release of Drupal core is out, everyone will know that the next version of core under development will eventually become the 6.x release series, so the nightly snapshot releases will be called "6.x-dev", not "HEAD". It is a moving target, and prone to serious bugs and even security holes. The HEAD is not meant for use by regular users on production sites and should only be downloaded and used by developers very familiar with Drupal or those wishing to help find bugs in the software.

Note however that a module, theme or other file tagged with HEAD only means that it is the latest file. But latest can be anything, sometimes over a year old! When a file was made for Drupal 4.3.x, it is HEAD, but it does not mean you can run it on 4.7.x, or some other HEAD.

With the new release system, there is no good reason anyone should have to use a HEAD release of any contribution. Furthermore, contributions added after the new system was put into place will require that even their HEAD release will have version information and indicate what version of Drupal core the release is compatible with. Therefore, in general, production sites should never use HEAD releases, and should always use official releases with real version numbers if available. A contribution without any official releases is an indication of a contribution maintainer not being very responsible, so you should use these contributions at your own risk.

Videocasts

To celebrate and promote the Drupal 5.0 launch, we present three videocasts that explain the ins and outs of the new Drupal version.

These were made by the generous folk at Lullabot. Big thanks go out to them!

Drupal 5 Overview

This video provides a 22 minute overview of the features you will find in Drupal 5.

Recorded by: Robert Safuto of Awakened Voice.

View at: http://ftp.osuosl.org/pub/drupal/files/videocasts/5-tour.mov

Requires Apple QuickTime 7.

Overview of Drupal 4.7 screencasts

Complete Drupal 4.7 basics course

This complete Drupal 4.7 basics course from the University of Michigan assumes that you have a clean Drupal install (if you don't have a clean installation of Drupal 4.7, check out Installing Drupal 4.7 in 3 minutes). The following four areas of Drupal are covered.

There are lots of videocasts there, but you need to click about a bit to find them. Search for the heading Contents and the screencast link underneath. Click the screencast link to watch the videos. There are also powerpoint-slides for you to download.

Screencasts about contributed modules

Flickr stickr module | Download

Menu system | Download

Actions and workflow module - Creating e-mail announcements for every new node | Download

Zacker on Organic Groups | Download

Drupal Mashup Machine using the modules: Google maps, Content Creation Kit (CCK), Views, Node Import, GMaps, Location | Download

Installing Drupal 4.7 in 3 minutes | Link 2 | Download

Dudertown Drupal Screencasts

The Dudertown Drupal Classes are basically designed to discuss various aspects of Drupal, ranging from installation to managing themes.

Dudertown Drupal Classes Overview | RSS Feed

Lesson 001: CPanel Installation | Download

Lesson 001.5: Manual Installation | Download

Lesson 002: Creating Content Part 1 | Download

Lesson 003: Creating Content Part 2 | Download

Lesson 004: Enabling Modules+More | Download

Lesson 005: Installing Themes | Download

Lesson 006: Building Themes Part 1 | Download

Lesson 007: Building Themes Part 2 | Download

Lesson 008: Setting up a Localhost Part 1 of 3 | Download

Lesson 009: Setting Up a Local Host Part 2 of 3 | Download

Lesson 010: Setting Up a Local Host Part 3 of 3 | Download

Lesson 011: Themes: Understanding Each Other (CSS+XHTML+Drupal Variables) | Download

Lesson 012: Porting an XHTML Template to Drupal (Demystifying Drupal Themes) | Download

Other Drupal videos: Conferences, User meetups

Creating a Static Site in Drupal with a Menu (Drupal 4.6.6) | Download

Boris from Bryght on the CCK | Download

Boris from Bryght User meeting | Download

Drupal video repositories

Drupal repositories you may find useful to find future screencasts and videocasts.

Videocasts on Drupal.org

Lullabot videocasts

Videocasts on Blip.tv

Videocasts on Google Videos

Video node type and video tagging on Drupal

Perhaps the Drupal community can agree on a common tagging term that would allow all screencasts to automatically be listed in a Drupal screencast directory even when the screencast are not hosted on Drupal?

Audio and video recordings of the 2005 Drupal conference (sometimes slow or offline)

The audio and video recordings of the 2005 Drupal conference are all BitTorent downloads for which you need to have BitTorent installed, which can be downloaded for free at http://www.bittorrent.com/.

Overview page of 2005 Drupal conference

The state and future of Drupal - Dries Buytaert (42.3 MB)

Theme development - Steven Wittens (41.5 MB)

Metadata-driven workflow & the Content Construction Kit - John VanDyk & Jonathan Chaffer (65.3 MB)

Multimedia in Drupal - James Walker (47.6 MB)

Drupal as an e-commerce platform - Matt Westgate (30.8 MB)

100% availability, scalability and security with Drupal - David 'Kat' Monosov (63.4 MB)

Drupal as a contact relationship management platform - Neil Drumm (40.9 MB)

Closing debate (14.7 MB)

Cross-posting

The overview above has been cross-posted and expanded and is based on a previous discussion about videocasts. This page has been maintained and updated a few times since the original posting.

What's new in Drupal 5

This videocast takes you on a tour of the new features that Drupal 5 offers.

Written and recorded by: Jeff Robbins of Lullabot

View at:
http://ftp.osuosl.org/pub/drupal/files/videocasts/5-whats-new.mp4

Requires Apple QuickTime 7.

Installing Drupal 5

This tutorial covers the installation of Drupal 5.

It outlines the basic requirements and then goes through each of the steps needed to properly setup Drupal. It also covers common mistakes and the proper actions needed to remedy these problems.

Written and recorded by: Jeff Robbins of Lullabot

View at:
http://ftp.osuosl.org/pub/drupal/files/videocasts/5-installing.mp4

Requires Apple QuickTime 7.

Upgrading to Drupal 5

For all of you out there with existing Drupal 4.7 sites, this tutorial is for you. It covers the necessary steps to convert your current Drupal installation to Drupal 5.

Written and recorded by: Angie Byron and Matt Westgate of Lullabot

View at:
http://ftp.osuosl.org/pub/drupal/files/videocasts/5-upgrading.mp4

Requires Apple QuickTime 7.

Contribute your own Drupal Videocast

If you would like to contribute a videocast to the community here are some loose standards we recommend.

1. Make sure that the format of the videos is an open standard! WMV is a closed format that can only be watched with a Microsoft software. We recommend Quicktime which is available on Windows, OSX and Linux based systems.

2. Add a Creative Commons license to your video. Without a clear license, we can't be sure whether it is "safe" to host these videocasts for you.

3. Use a resolution of 640x480 or higher. With smaller resolutions it becomes difficult to read text in the movie. When trying to resize your browser in preparation for recording, you can use a javascript snippet to resize your browser. Save the following as a bookmark:

javascript:self.moveTo(8,28);self.resizeTo(640,480);

4. The lullabot videocasts use the following settings:

Compression: H.264
Frame Rate: 10
Key Frame Rate: 500
Encoding mode: multi-pass
Internet Streaming: yes

We use Snapz Pro for recording the screenshot portions of our videos. Other screen recording software can be found on wikipedia.

Slides

Feel free to use these slides in your videocasts.

1. Creative Commons slide
2. Drupal Videocast bumper

Additional suggestions

  1. Provide the written script somewhere (can help with translations). Some people have hearing disabilities, some work in an environment where they can't use audio, and some just absorb things better by reading instead of listening.
  2. Keep the videocasts short and focused. They are effectively linear, not random access. Sure, you can move the slider, but there's no index telling you where to move it. If the videocast covers too many things, and someone is just interested in one aspect, it's difficult to find that one point.
  3. In particular, pick your audience and don't mix end-user, editor, and developer information, except at the most general level.
  4. Keep the video uncluttered and focused. There's no opportunity to wave a laser pointer over the relevant area, and no opportunity for a viewer to say "slow down, which text field are you talking about." Mouse and text cursors can be difficult to locate, particularly on new screens.
  5. Use high contrast, even if you're used to using low contrast for yourself.

Donating to the Drupal project

Donate

Drupal currently uses PayPal for receiving donations. Click the Paypal button below to donate money.

If you are inspired to donate something, but do not want to use PayPal, please see this excellent HOWTO on donating to Open Source projects. If you are willing to pay for particular enhancements, consider contacting someone listed on the services page.

Expenses

Your donation will be used to help the Drupal project. For example, by paying for:

Donors

If you donate money using PayPal, you are automatically added to the list of donors. Drupal will try to connect your PayPal and Drupal accounts using your e-mail address. If Drupal fails to connect both, update your drupal.org account so your e-mail address matches the one registered with Paypal.

The table below provides an overview of the people who recently donated money to Drupal. The numbers represent the net amounts after subtraction of transaction fees.

Name Amount Date
pauligree € 47.95 3 hours ago
Xandrian € 9.31 1 week ago
jstanley70 € 38.09 2 weeks ago
Hone Watson (Majestic Ventures Holdings Limited) € 4.45 5 weeks ago
Scott Gingrich (The Gingrich Group) € 4.45 5 weeks ago
Jack Zimmermann € 9.31 5 weeks ago
Matt Petersen € 47.70 5 weeks ago
Albion_Arg € 4.45 6 weeks ago
lerakomm € 9.31 8 weeks ago
mcncyo € 9.26 8 weeks ago
gmak € 47.95 9 weeks ago
ufku € 9.26 9 weeks ago
hoshinator € 9.26 10 weeks ago
SilvioTO € 28.63 11 weeks ago
alldirt € 241.15 12 weeks ago
OSH $ 23.72 12 weeks ago
lucyconnuk € 28.63 12 weeks ago
gollyg € 47.70 13 weeks ago
ambereyes € 17.77 13 weeks ago
Paul Brewer € 47.70 13 weeks ago
ehamburg € 37.13 13 weeks ago
Chris Bryant (Alian Design) € 47.70 14 weeks ago
tsweinberg € 11.18 14 weeks ago
OSH $ 13.83 16 weeks ago
Alberto Ramallo € 14.14 16 weeks ago

Newsletter advertising

Thanks for your interest in sponsoring the Drupal newsletter!

The Drupal newsletter is a monthly newsletter about Drupal usage and development. It's published via email or online on drupal.org.

The Drupal newsletter advertising Program is an advertisement service offered to businesses in general interested in offering their products and services to Drupal newsletter subscribers.

Advantages

  • Drupal newsletter subscribers are technology savvy and have an interest in internet technologies.
  • Low placement fees.
  • Income goes totally and directly to the Drupal project, so you are supporting Drupal development while at the same time marketing your products and services.

Ads format

An ad can have a maximum of 4 lines, each line a maximum of 70 characters, plus a link in a separate line. Links can also be included among the first four lines.

Space available

Up to two ads can be placed per Drupal newsletter issue, placed throughout the issue as deemed by the editor.

Fees

Placement fee is $50USD per ad per issue. You may contract multiple placements at a discounted fee. All income generated by the advertising program goes directly to support the Drupal project.

Please contact us at newsletter-owner@drupal.org for more information on this service.

Marketing resources

This section provides resources for people who want to market Drupal.
Whether you want to publish a story with a logo on your website, print a leaflet or need some texts for a report, this might be the place to look.

If you are a designer, marketeer or a writer you can be of help here too. If you think you can write a nice text on why people should choose Drupal for their IT solutions, or if you have a nice Drupal logo you can create a book page here.

Please note that if you have questions concerning any content in this section, you can ask those in the forums. The comments under the bookpages can be used to discuss the contents of that page.

Banners and buttons

If you wish to display the Druplicon on your Drupal website, you can use the following buttons, with a link to drupal.org.

Official buttons

Blue, small 'Powered by' button
Gray, small 'Powered by' button
Black, small 'Powered by' button
Blue, medium 'Powered by' button
Gray, medium 'Powered by' button
Black, medium 'Powered by' button
Blue, large 'Powered by' button
Gray, large 'Powered by' button
Black, large 'Powered by' button

Others

Steal these Buttons 2
Steal These Buttons 1
3d small icon
Looks even more like the napster fellow

Links

There are several other banners hosted on other sites that you might find appealing.

If you have more, please feel free to submit them to the contributions repository.

Logos for special events

For special events and holidays, special banners are often created. These are often featured on the Drupal.org front page.

A template for these logos is available in Paint Shop Pro and Photoshop format (note the PSD's mask layer needs to be applied manually).



















For DrupalCON 05 in Amsterdam there are various banners available from webchicks site.

Booklet

Here you can preview and download a Drupal PDF booklet, that can be used for promotion of Drupal. If you want to acquire printed paper versions, you can get in contact with Drupal on info@drupal.org to discuss the use, amount and shipping costs.

The booklet in PDF format
The booklet in PDF format

The booklet in PDF format
A collage of the booklet

Druplicon

Druplicon history is here

If you wish to use or edit the Druplicon, you can use following logos (all logos use RGB color):

Bitmap versions

PNG version
PNG version

PNG version crystal look
PNG version crystal look

Vector formats

PNG version
SVG version

If you can provide other useful formats, please add an issue.

Logo colors

Web color
Main drop color: #0077C0
Light-shade color: #81CEFF

RGB color
Main drop color: 00, 119, 192
Light-shade color: 129, 206, 255

CMYK color
CMYK color is used in 4-color printing and prepress industry. There's no 1:1 match in RGB and CMYK color, so it's difficult to bring out corresponding color values. One combination to try is CMYK 91,27,2,0 for main drop color and 47,3,3,0 for highlight.

Here is the Montreal Drupal Meetup logo without the text

In case anybody wants it... Here is the Montreal Drupal Meetup logo without the text.


This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.

Fonts

When used with the Drupal icon the word 'Drupal' is always formated with the font FF Max, which is available under a commercial license.

A SVG file of the word 'Drupal' is available which has been formated with the FF Max font and converted into a graphic, so that the font is not required. As it is a vector graphic it can be scaled up or down without loss of quality, and is suitable for creating both print and web marketing material.

How does Drupal compare to...?

Thanks for your interest in Drupal. We can not answer this question in an unbiased fashion, so we recommend the following steps:

First, visit http://www.cmsmatrix.org/ and http://www.opensourcecms.com/. The first site attempts to compare content managment systems by a feature comparison matrix; the second allows you to try various CMS software packages 'live'.

Second, you may want to use the usual support channels to get information on how to do X (you know what you want to achieve) with Drupal. Repeat this with whatever other CMS you may want to compare Drupal with -- at the appropriate place, of course, which is definitely not Drupal.org.

Finally you will definitely want to download and test Drupal and whatever other CMS systems you have in mind. We will be there to help with Drupal.

Presentations

Vancouver Drupal presentation (Open Office Presentation File)

Portuguese translation of the Vancouver Drupal presentation (Open Office Presentation File)
Translation by: Carlisson Galdino.

Drupal - gluing people and code together - Presentation by Gabor Hojtsy at Open Source Content Management

A presentation titled Building Drupal Community Web Sites was given by Khalid Baheyeldin at the Toronto Drupal Camp in May 2006. Open Office 2.x format (.odp)

The Fosdem 2005 presentations will soon follow. For now, we invite everyone to collect the various bits and pieces of information and list or post it here.

A drupal presentation at an open source fest in Tilburg, the Netherlands. it is a presentationn in Dutch, about Open Source communities and how Drupal can help you with your communities.

Future Drupal Presentations can be found in the CVS Presentations Folder.

A presentation in Arabic by Ayman Hourieh made to the Syrian Computer Society is attached below.

Presentations and articles

  • Intranet Journal. Drupal: Powerful and Free, But Some Assembly Required - "What Drupal does provide is an extensible framework, especially beneficial for use on larger intranets, which will allow you to expand and improve your intranet over time. The screens for adding new articles are simple, and the administrator of the system is given the ability to veto content submitted by contributing authors. If you have the time and expertise, it's well worth getting to grips with the nitty-gritty of Drupal if you'd like to fully customize it's operation." [ read more ]
  • The Fuzzy Group: performance of open source portal software - "I have been a small part of the Open Source community since 1996 and I've been a regular Unix user since 1986. These technologies, which grew up on the Internet, offer compelling benefits for most organizations. A recent experience with an Open Source portal application, Drupal, pointed out to me just how good the performance of Open Source applications can be ? when it is done correctly." [ read more ]
  • Teledynamics Communications: community plumbing for the web - "Drupal is, as it claims, Community Plumbing, an infrastructure, a framework for building websites which serve a community of interest, but it's also more than this. Drupal has the latent ability to transform the web from a glut of brochures to a dynamic ecology of knowledge, a community record as much as it is a community forum." [ read more ]
  • K-logging: supporting KM with web logs - "There are many robust web log tools that are inexpensive or even free. Popular software includes MovableType, Radio Userland, any of the variations of Slashcode, and my favorite, Drupal. They allow individuals to publish content to a web site easily, and some packages even allow for categorization of entries. Most packages also permit authors to publish an XML feed of content. These low-cost tools help knowledge workers with two core concerns of KM: knowledge creation and knowledge sharing."
  • Linux-Magazine, Issue 55: June 2005 and Linux-Magazin Sonderheft 2/2005: Web Edition (German) - "Drupal - the PHP-based Drupal framework makes it easy for everyday users to design and build dynamic websites".

Reviews

External reviews of Drupal

Business Blog Journal Review
Very informative and generally positive review by Harold Jarche and Cameron Bales

About.com's Review of Drupal
4 of 5 star review. A short review but true and positive.

If you read or write a review of Drupal elsewhere, please post the URL and a short description of the review. You might post some information about the site it was posted on (language, influence, etc) and your opinion about the review.

Posters

Drupal has some nice looking posters that can be used for promotion of Drupal. Feel free to download them in PDF format. And if you are able to modify, translate or improve the poster, feel free to do so and of course give feedback, so that we can add those modifications here.

Linux Tag poster
Linux Tag poster in EPS format (default)
Linux Tag poster in EPS format (small)
Linux Tag poster in PNG format

Wing poster
Wing poster in Gimp XCF format
Wing poster in EPS format
Wing Poster in PNG format

Drupal t-shirts and other merchandise

Drupal does not have any official merchandise; however since the Druplicon logo is licensed under the GNU GPL some people have taken it upon themselves to make their own.

Profits should be donated back to the Drupal project, Cafe Press does take a significant portion of the price. If you have printable iron on transfers handy consider grabbing a high resolution Druplicon and making a donation.

Basic Druplicon

Powered by Drupal t-shirt
Powered by Drupal

Designed by Michael Angeles

High resolution versions are availiable.

Drupal Blogger t-shirt
Drupal Blogger

Drupal Online Communities t-shirt
Drupal Online Communities

Powered by Drupal t-shirt
Powered by Drupal

Information for the press

For journalist who want to write a piece about Drupal (either the community, the code or the site), there is a lot of information about the history, mission and community in the handbooks. In case you want to write an article and have specific questions that are not answered in our handbooks, make sure to search our site. If you cant find the answer, you can address your question in English to press AT drupal DOT org (ASCII mail preferred). We will answer these e-mails usually within one day.

Make sure you include the name and type of the medium you are writing for, the target audience and the language you will be writing in. By adding this information, we can not only help you with your answer, but we might have a local contact as well who you can help you out on a face-to-face basis.

Also make sure to capitalize Drupal when you talk about the community or the product and use lowercase when in an URL as drupal.org. Our official logo is called “Druplicon” and images are available online in high resolution (vector and bitmap). When copying larger pieces of text out of the handbooks instead of quoting them, please make sure to read our copyright policy.

In case you have already written an article about Drupal, we would like to hear about that as well. Please include an URL or if possible a PDF scan and mail this to press AT Drupal DOT org.

--
The Drupal marketing team

Drupal.org site maintainers

To report any issues/spam on Drupal.org, see the support page for instructions.

Below is an alphabetical list of users who have additional permissions to help maintain the drupal.org website, please do not contact them individually, use the issue tracker instead.
  1. ac
  2. adrian
  3. adrinux
  4. ahoppin
  5. AjK
  6. aldon@deanspace.org
  7. Amazon
  8. andremolnar
  9. ax
  10. Bèr Kessels
  11. bertboerland@ww...
  12. bonobo
  13. Boris Mann
  14. bryan kennedy
  15. cel4145
  16. chx
  17. cshields
  18. Cvbge
  19. Development Seed
  20. dikini
  21. dopry
  22. Dries
  23. DriesK
  24. drumm
  25. Dublin Drupaller
  26. dww
  27. Eaton
  28. ericgundersen
  29. factoryjoe
  30. Gábor Hojtsy
  31. Gerhard Killesreiter
  32. greggles
  33. Gunnar Langemark
  34. handelaar
  35. Heine
  36. hunmonk
  37. jblack
  38. jjeff
  39. JonBob
  40. Junyor
  41. jvandyk
  42. kbahey
  43. Kieran Huggins
  44. kika
  45. killes@www.drop.org
  46. Kjartan
  47. Kobus
  48. m3avrck
  49. matt westgate
  50. merlinofchaos
  51. Michelle
  52. Morbus Iff
  53. moshe weitzman
  54. nedjo
  55. puregin
  56. raema
  57. Richard Eriksson
  58. robbt
  59. Robert Castelo
  60. robertDouglass
  61. Robin Monks
  62. RobRoy
  63. Roland Tanglao@...
  64. sepeck
  65. sime
  66. Souvent22
  67. Steve Dondley
  68. Steven
  69. TDobes
  70. Thomas Ilsche
  71. Uwe Hermann
  72. walkah
  73. webchick
  74. wnorrix
  75. zacker
  76. zirafa
If you have been around for a while, and you want to help maintain Drupal.org and are willing to accept the added responsibilities that come with it, sign up on the Infrastructure team list.

Site maintainer's guide

This page lists some guidelines for Site Maintainers on Drupal.org.

Unpublishing vs deleting of content

You should only unpublish a post if you can conceivably imagine it being re-published in the future. This should only be for very rare cases. A good example is an unmaintained project (someone might take over development later): unpublish, don't delete (*). On the other hand, spam can be deleted immediately.

Content that has is outdated by another page should also be unpublished with a comment in the revision log linked to the newer page. After some time goes by it can reviewed again and deleted.

(*) Actually, old projects are automatically unpublished by the cvs scripts, so this is not something you need to do.

Blocking vs deleting of users

Deleting users is a very destructive action, as it makes all their content inaccessible in most places, even to administrators. It should not be done. If a user is a troublemaker, just block their account (click username -> edit -> status: blocked). Of course, you should not block people just because they say unfavorable things about Drupal. Here are good reasons to block someone:

  • Spamming (even once)
  • Repetitive flaming
  • Repetitive posting of trash content (test posts, inappropriate book pages, ...)

Suggested Workflow

When you spot something out of the ordinary, we suggest these steps:

  1. Take a look at the user's post history on the "user -> track -> track posts" page. This will possibily show more bad posts by the same person.
  2. Take a look at the user's page visit history on the "user -> track -> track page visits" page. That way, you can easily tell if a user just registered to spam or if they made only one bad post in a series of good ones.
  3. If the content is spam, you can delete it immediately and block the person's account. Otherwise, send them a note through their contact tab about it:

    Your post Foobar on http://drupal.org/node/1234 was inappropriate because it contained flaming. Please be nice to your fellow visitors on Drupal.org, or your account may be blocked.

  4. If you know someone to be a troublemaker who has been warned before, block their account.
  5. When posible, file an issue against the infrastructure project with a brief reason so others will know why an account was blocked. If you blocked the account, then please close the issue as well.

Badly formatted posts

If you see a post with bad formatting which messes up the page's layout, please edit it. A common mistake for newbies is to use two opening tags rather than an opening/closing pair. Tags like bold and italic can 'bleed through' beyond the post, while unclosed block-level tags can mess up the positioning of the sidebar.

If someone made a serious mistake while posting a forum topic and posted a correction in a comment below, try to update the original post and delete the correction.

Duplicate posts

If you see duplicate posts in multiple forums. Choose the best forum and remove the remaining duplicates unless they have already been responded to. If they already have commnets, make a polite note about duplicate posts referencing the other.