Building Powerful and Robust Websites with Drupal 6

By David Mercer
    Advance your knowledge in tech with a Packt subscription

  • Instant online access to over 7,500+ books and videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies
  1. Introduction to Drupal

About this book


Drupal is a hugely popular and widely celebrated open-source Content Management System that is day-by-day becoming the first choice of people for building blogs and other websites. Sir Tim Berners-Lee (the father of the Internet), Hillary Clinton, and many others utilize Drupal to fulfil their online requirements.

Drupal is an elegantly designed, well-supported and flexible platform that anyone can use in order to create their own website. With such a powerful tool at your fingertips there is no longer any need to pay professionals to design a site when you can do the same job yourself absolutely free. All it takes is a bit of practice!

This book meets the booming demand for well presented, clear, concise, and above all practical information on how to move from knowing you want a website all the way through to designing and building it like a pro, and finally successfully managing and maintaining it.

Experienced technical author David Mercer expertly guides the reader through all the stages of building a professional website in a plain, articulate manner. Aimed in particular at beginners to Drupal, this book will allow readers to advance rapidly up the learning curve to the point where they can tackle any problem with confidence.

Publication date:
April 2008
Publisher
Packt
Pages
380
ISBN
9781847192974

 

Chapter 1. Introduction to Drupal

Up until quite recently, the most important thing a newcomer to the Web could do in order to prepare for building a website was to buy a book on how to learn programming in any one of the major web-centric languages like PHP or Perl. The not inconsiderable task of learning the niceties of the chosen language to a respectable degree would then consume a fair chunk of time and patience. Once our hapless newcomer had sufficient mastery of the fundamentals, applying that knowledge to program efficiently and reliably, with the tenacity to stick with a job until the site was developed, could arguably be described as a Herculean accomplishment.

This state of affairs is, and quite rightly should be, entirely unacceptable to someone like yourself! It's like forcing lawyers to learn the intricacies of architecture, construction, and masonry simply because they require a courtroom in which to work. It should be quite apparent that separating the technical task of developing the software for a website from the function of that website is a very sensible thing to do, the main reason being that it allows people to focus on what they are good at without them having to devote time and energy to becoming good software developers too.

It's not surprising then, that in recent years the open-source community has been hard at work pulling the programming world out of the software dark ages by providing us with flexible frameworks for building web-based enterprises. These frameworks free website creators from the intellectual burden of learning software development ideas and concepts, allowing them instead to focus more on goal/business-oriented configuration and customization tasks.

Drupal is one such result of the software-development evolution, and this book seeks to provide you with the fundamental information needed in order to use it effectively. Because this book focuses more on beginner-level aspects of administering Drupal, you will be pleased to know that there will be little to no coding involved—you're not required to learn how to develop Drupal modules from

scratch, for example. That's not to say this book will be elementary; on the contrary, the knowledge gained here will enable you to tackle problems beyond the scope of this material with confidence.

Before we begin building anything that resembles a website, I'm sure you have plenty of questions about the how, what, where, and why of Drupal. Consequently, this chapter will not only provide a backdrop for the rest of the book, but will also serve as an introduction to the technology as a whole, incorporating a discussion on the following:

  • Drupal—an overview

  • How Drupal came to be

  • What Drupal has to offer

  • Uses of Drupal

  • Building a Drupal site

  • The Drupal community

  • The Drupal license

Let's begin…

Drupal—An Overview

Drupal is an Open-Source Content Management System. If you are new to both computing and Drupal, then this probably doesn't clear things up very much. First of all:

Note

The term open-source describes software whose source code is made available, most often subject to certain conditions, for use or modification by users or other developers as they deem fit.

The specific conditions under which Drupal is made available will be scrutinized more closely in the section The Drupal License, later in this chapter.

Above and beyond that, what open source means for someone who intends to make use of Drupal, is that there is no obligatory payment required for this unquestionably valuable software. You also join a large community (also to be discussed later in this chapter) of Drupal users, developers, and administrators who subscribe to the open-source philosophy—in other words, someone out there will probably be willing to spend time helping you out should you get stuck.

That's a pretty good deal for those who are still not convinced about open‑source technologies as a whole—not only do we not have develop the entire site ourselves, but we also get to take advantage of the collective wisdom of thousands of other people.

Is there anything else we can say about open source? Sure; with an active community like the one associated with Drupal, development advances rapidly and flexibly because any problems can be spotted early and dealt with effectively. This means that you can expect a high level of stability, security, and performance from Drupal websites.

OK, but what is the Content Management System (CMS) part all about?

Note

A content management system is software that facilitates the creation, organization, manipulation, and removal of information in the form of images, documents, scripts, plain text (or anything else for that matter).

If you have a need to organize and display fairly large amounts of information, especially when it is likely that content will be created or delivered from a variety of different sources, then a content management system is undoubtedly what you need.

That's basically all you have to know. Drupal provides a free platform, along with its attendant community, for satisfying a wide variety of content-management requirements. Precisely, what type of things one can achieve is the subject of the section entitled What Drupal Has to Offer later in this chapter. For now though, let's turn back the hands of time and take a look at how we ended up with Drupal as we know it today.

 

Drupal—An Overview


Drupal is an Open-Source Content Management System. If you are new to both computing and Drupal, then this probably doesn't clear things up very much. First of all:

Note

The term open-source describes software whose source code is made available, most often subject to certain conditions, for use or modification by users or other developers as they deem fit.

The specific conditions under which Drupal is made available will be scrutinized more closely in the section The Drupal License, later in this chapter.

Above and beyond that, what open source means for someone who intends to make use of Drupal, is that there is no obligatory payment required for this unquestionably valuable software. You also join a large community (also to be discussed later in this chapter) of Drupal users, developers, and administrators who subscribe to the open-source philosophy—in other words, someone out there will probably be willing to spend time helping you out should you get stuck.

That's a pretty good deal for those who are still not convinced about open‑source technologies as a whole—not only do we not have develop the entire site ourselves, but we also get to take advantage of the collective wisdom of thousands of other people.

Is there anything else we can say about open source? Sure; with an active community like the one associated with Drupal, development advances rapidly and flexibly because any problems can be spotted early and dealt with effectively. This means that you can expect a high level of stability, security, and performance from Drupal websites.

OK, but what is the Content Management System (CMS) part all about?

Note

A content management system is software that facilitates the creation, organization, manipulation, and removal of information in the form of images, documents, scripts, plain text (or anything else for that matter).

If you have a need to organize and display fairly large amounts of information, especially when it is likely that content will be created or delivered from a variety of different sources, then a content management system is undoubtedly what you need.

That's basically all you have to know. Drupal provides a free platform, along with its attendant community, for satisfying a wide variety of content-management requirements. Precisely, what type of things one can achieve is the subject of the section entitled What Drupal Has to Offer later in this chapter. For now though, let's turn back the hands of time and take a look at how we ended up with Drupal as we know it today.

 

How Drupal Came to Be


As with so many modern success stories, this one started in a dorm room with a couple of students needing to achieve a specific goal. In this case, Dries Buytaert and Hans Snijder of the University of Antwerp wished to share an ADSL modem connection to the Internet. They managed this via the use of a wireless bridge, but soon after, Dries decided to work on a news site, which would in addition to the simple connection the students already shared, allow them to share news and other information.

Over time the site grew and changed as Dries expanded the application and experimented with new things. However, it was only some time later in 2001 when it was decided to release the code to the public in the hope this would encourage development from other people that Drupal became open-source software. It's clear that releasing the source to the public was the right choice, because today Drupal

has a well organized, thriving community of people ranging from contributors, adminsitrators, a security team, and a global presence, to plenty of users who make invaluable additions to the Drupal project on a regular basis through bug reports and suggestions.

In only a few years, Dries and others have taken a small inter-dorm-room application and turned it into a technology that is contributing to the way in which the global society communicates through the Web. This is embodied in their brief mission statement that reads:

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.

Ultimately, where Drupal is going and how it came to be are also driven by the philosophies that guide those responsible for developing this technology. As you will see throughout the course of this book, it is fair to say that the Drupal community has so far succeeded in meeting its lofty targets.

 

What Drupal Has to Offer


As users of technology and software, we should never be lax in what we demand from the technologies that serve us. It is fitting, therefore, at this stage, to discuss what we expect from Drupal in order to ensure that it will satisfy our needs.

There are three different aspects of Drupal we need to consider when looking at whether it is a good technology to use in general. Will it be:

  • Reliable and robust: Are there a lot of bugs in the code? Will it affect my site if I have to forever add patches or obtain updates for faulty code?

  • Efficient: Does the code use my server's resources wisely? Am I likely to run into concurrency problems, or speed issues early on?

  • Flexible: If I change my mind about what I want from my site, will I be able to implement those changes without redoing everything from scratch?

While Drupal will always be a work in progress, it can be taken for granted that the source code used to build your website has been meticulously crafted, and well designed. In fact, the previously listed points are taken so seriously by the developers of Drupal that they are written into their set of principles that are available at http://drupal.org/node/21945.

While it won't influence us much for the moment, it is worth noting the following:

Note

A great advantage of Drupal is that the code itself is very well written, which makes modifying it easy. This means that as you attempt more advanced tasks, the very way in which Drupal is written will lend an advantage over other platforms.

The next thing we need to consider is what Drupal is like for us, as administrators, to use. Naturally, things should be as easy as possible, so that we don't spend time bogged down with problems or complicated settings, or worse yet, have to modify the source code on a regular basis. Ideally, we want a system that is:

  • Easy to set up and run: Can I start creating a site with the minimum of fuss? Do I have to learn about other technologies before I am able to use Drupal?

  • Intuitive to work with: Once I have begun finding my way around, will it be easy to learn new things? If I am not a particularly technical person, will I struggle to administer my site?

  • Flexible and easy to extend: I know I can make a basic site, but I really want to create a unique and sophisticated, ground-breaking site—can it be done with Drupal?

Again, these are precisely the attributes that Drupal is known for. If you have other questions about Drupal that are not specifically mentioned here then try to relate them to the bullet points. If you still struggle, try looking through the Drupal forums.

Finally, and perhaps in some respects most importantly, it is important to consider whether or not Drupal creates a good environment for site users. Obviously, a technology that is well designed and easy to administer would still not be very helpful if, for example, its use is prohibitively complex. The best way to find out what type of environment Drupal can provide is to go ahead and check out the Drupal home page at http://drupal.org—since it is built with Drupal and is a good example of what one can do.

It's a good idea to register an account if you have a moment or two. It's not absolutely necessary, but believe me, it will be of great benefit in the long run. Perhaps treat your registration process as a quick and easy way to see a bit of the site.

It stands to reason that if the main site that is developed in Drupal is easy to use, then you in turn will be able to create an easy-to-use site for your users.

 

Uses of Drupal


Any enterprise that requires a fair amount of working with content is a likely candidate for Drupal, but, because of its extensibility and flexibility, you are really not very limited in any sense. The following list shows the most common uses at present and comes from the case studies page (http://drupal.org/cases) on the Drupal site:

Community Portal Sites: If you want a news website 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 homepage. Bad stories and comments are automatically hidden after enough negative votes.

News Publishing: Drupal is great for newspapers and other news organizations.

Aficionado Sites: Drupal flourishes when it powers a portal website where one person shares their expertise and enthusiasm for a topic.

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.

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.

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.

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.

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.

Social networking sites: Drupal has many of common the features used in social networking sites. You can build a collection of social networking applications for your site or use Drupal as a white label social networking service.

Drupal can be thought of as the Internet's Jack-of-all-trades—it excels in many areas, but at heart it is a generalist. So while you can use Drupal for a great number of things, perhaps limit its use to those things that complement its design—like those mentioned in the previous list.

 

Building a Drupal Site


Unlike building a house, development of a website takes place on a copy of the site instead of the real site. This means that while the site is being built, it is not available for the public to view and use on the Internet. With a bit of thought, this should make sense. Any potential community member who comes across a site under construction would probably become frustrated with bits and pieces that don't yet work, error messages, untidy presentation, or any other thing that could scare people away at the drop of a hat.

Some readers may well be wondering what to do with their domain in the meantime, assuming one has already been purchased. The best solution is to put up what is known as a placeholder page that delivers a simple message to the effect that this is the right site, the development is in progress on the working site, and that potential members should visit again in the near future.

Note

It is a good idea to install Drupal on your host site at the start of the process to ensure that the platform you are using on the live site will meet your needs (i.e. does it have PHP5, is the database suitable, can you use clean URLs, and so on). Drupal has the option to be switched to offline status in order to prevent people from making use of it—this effectively turns the site into a placeholder page.

Appendix A on Deployment outlines the process of moving a fully functional website onto a live web domain. The process for doing the whole site and a single page is more or less the same, but naturally, moving a single page is a lot less involved.

 

Planning Your Site


It is important that as the creator of a new site you spend some time gathering information on the needs of the community you intend to serve. Doing this now will help in the long run because having a thorough understanding of a site's requirements allows you to develop it with specific goals in mind. This in turn enables a more focused and coordinated approach to the site's development.

Note

It's tempting to dive straight into building your site, but spending some time planning everything now will save you time in the long run!

One of the best ways to determine what you will need is to build a list of tasks that the site must be able to perform. Effectively, after creating a list of the various requirements, the site's administrator (most probably yourself) should have a clear enough idea to go ahead and begin working. Unfortunately, it is often hard to predict exactly what is needed by simply sitting down and writing, so a good way to start is by looking at similar sites. Go ahead and take note of everything that is useful and desirable on other sites and add this to the list.

If you get stuck, or run out of ideas, it's helpful to try a little thought exercise as follows. Split yourself into two people:

  • The community member who knows what his or her needs are

  • The Drupal administrator who needs to find out what to build

Use the administrator persona to question the community member about what has to be done. Approaching the problem from two perspectives often helps mimic real-world situations where software developers try to find out exactly what their clients need by asking probing questions before they start working on a project.

Try and get to a stage where you feel comfortable with at least 80% of what is required from your site, from there it is probably more efficient to go ahead and begin building, rather than waste time scraping out more information. As Drupal is extensible and flexible, it is quite easy to modify it at a later stage.

Here is a list of some of the most important topics you will need to decide on:

  • The type of site—is it a forum, or a blog, or something else entirely?

  • The way you are going to run the site—stats, logging, or performance issues

  • The security, roles, and permissions involved

  • The need for integration—syndication, aggregation, or alerts

Apart from your site's functionality, start thinking about how the site should look. Obviously, an attractive and unique interface for users to work with is your ultimate goal in this respect. The use of themes to create a visually appealing site is a fairly important topic that we discuss later in the book in Chapter 8, but please do give some thought to this aspect of your site early on, regardless.

Not only do you want to design an interface that looks pretty, but it also needs to be intuitive and easy to use. This is very important as studies have shown that users will often base their opinion of a site on how easy it is to use and not always on other criteria that you might think important, such as speed. People often believe that a slower running site is faster if they manage to accomplish their tasks on it more easily.

By observing similar sites and anticipating the needs of potential users, you can develop a specification for your own site. Having a site outline or specification to work towards is valuable in itself as an exercise.

Analyzing the Proposed Solution

Once there is a specification to work with, we know what is needed. It is time to look at how to deliver it. To do this, we really need to go back over all the points listed and find out what is involved in getting each one done. Knowing what lies ahead is the best way to handle problems preemptively!

The three main areas of concern that we need to deal with are discussed next…

Feasibility

Having a wish-list is a great way to decide on what you want, but that doesn't mean it is feasible. In order to be feasible, the criteria should not involve an inordinate amount of effort relative to the benefits it will return. For example, if the site specification calls for a feature that requires a hundred hours of brutal, frustrating programming, then it is probably not in your interests to waste time doing it if it is not going to affect your community significantly.

Ultimately, it may be better to look for a cheap and elegant alternative, either amongst the plethora of contributions (also called contribs), or from third-party software providers. One of the old programming mantras, There's more than one way to do it!, holds true here.

Phone a Friend

Look at the requirements very carefully. Are you sure you can actually provide everything that is required? If not, spend some time looking over this book and the Drupal site to see if you can learn anything new. If you are absolutely stuck, then get on the forums and lists and ask for help.

Critical versus Desirable Criteria

In order to determine the priority of tasks during your site's development phase, it is a good idea to divide all requirements into two categories—those that are fundamentally necessary to the success of the website, such as finding a service provider, and those that are not, such as deciding on whether to make hyperlink color dark blue or light blue.

There are a couple of reasons for this:

  • Doing so will help you allocate time and resources to certain tasks while putting others on a backburner.

  • You are aware of those features that do not necessarily need to be included at all in the event that time is short.

In both these cases, it is important to know what has to be finished and what can perhaps be left out or left for another day. With your plans laid out and ready to implement, it is important to recognize that you are not alone and that Drupal and its community will prove to be a most useful companion in the coming days, weeks, and months.

 

The Drupal Community


Drupal has coherent and in-depth support structures that are fairly easy to learn your way around. There are a host of categories ranging from information, polls, forums, and news to support, which can be found at the home page: http://drupal.org.

It is strongly recommended that you regularly make use of drupal.org and constantly use different elements and sections in order to become proficient at extracting the information and software you require—especially because the Drupal site will change from time to time!

All the information contained in the site is well organized, and easy to access from the main navigation bar at the top of the page, as shown here:

Each and every tab in the navigation bar has a host of its own links and pages, although there are some categories that contain inter-related topics. At any rate, let's go through each one quickly to see what they have to offer.

Documentation

This section is a great repository of information, catering for a wide variety of different needs. The content is gathered into five main sections, as shown here:

Each of these categories contains a series of links to informative pages (that in turn, often contain links to other pages) that do a good job of explaining their respective topics. It's worth pointing out that a block appears on the left-hand side of these pages, containing links to related topics under the same category heading in order to help you navigate through the information with ease. The following screenshot shows the Is Drupal right for you? page:

You are urged to look through at least the first section before moving onto the following chapter in order to learn as much about Drupal as possible. It is also a good idea to use these handbooks in tandem with this book, so that you can complement the practical advice and experience you gain here with reference-type material presented on the site.

Download

We will be visiting this section again in the following chapter when we begin to set up everything in preparation for site development. However, there are a few interesting points to note before we get there. The first is that you need to be quite careful about the Drupal version—or indeed modules and themes—you download, because each successive version makes changes and improvements on previous versions, and also sometimes messes up compatibility with other features.

If you decide to add a module (by this I mean that at some stage you will want to add a module), then viewing the projects page at http://drupal.org/project, or by clicking the Downloads tab, gives the following page.

You can see from the notes presented on this page, if you happen to need a module that was developed for Drupal 5.x, and you are using version 6.x, then you are shortly going to experience no small amount of frustration—this is especially valid at this time given that 6.x is brand new, and hence many modules have yet to be updated.

Problems like this can occur because modules are developed separately from the core, which means that it is up to the individual module developer to keep up to date with any changes coming from the main development team.

Naturally, not everyone will keep their modules up to date in a timely manner, because often these developers are not getting paid and are under no obligation to do the work at all. They are simply providing us with the best code they can deliver when they can deliver it.

In terms of how to use the download pages, it is worth noting that there are four main links given in each downloadable item's box (for example, click on the Themes link to view a list of downloadable themes). These are: Download, Release notes, Find out more, and Bugs and feature requests. The first option is pretty self explanatory, but you should always take a look at the Find out more option before downloading anything, to ensure that you are getting precisely what you want.

For example, the Find out more page for the Acidfree project contains information on history of Updates, and plenty of material on Releases, Resources, Support, and Development—all pretty useful if you are not sure what Acidfree does to begin with.

That aside, the point of this section is that you should try to think carefully about what you want before downloading everything. In the next chapter, we will put words into practice and make use of this section to obtain a copy of Drupal.

Support

The Support section can be regarded as a kind of catch-all page, and actually contains a number of links to the various other community pages, many of which can also be opened by using their tabs in the main navigation bar. For example, you can navigate to the Drupal handbook (to be discussed shortly) from the Online documentation section to find out some basic information on Drupal, as shown here:

Briefly, in this section:

  • Documentation and help facilities are provided in the Online documentation section, and include help on some common problems as well as installation and general information.

  • Links to security advisories and announcements as well as the option to subscribe to the security announcement mailing list or RSS feed are provided under the Security section.

  • Links to the forums, in case you need help, are provided under the Forums and Support section, as well as archives and a Tips for posting to the Drupal forums link.

  • If you are not an English language speaker, or your community predominantly speaks some other language, then it is worthwhile checking out some of the other language sites under the Other languages section, which includes German, French, Spanish, and Afrikaans.

  • Links to a number of professional services related to Drupal, including hosting and consulting, are provided under the Professional services and hosting section.

  • Bug reports can be sent in by visiting the Bug reports section. Please be aware that you should always check whether or not a bug has been reported before submitting a report. Any submission incurs a cost in terms of man-hours because someone has to look over it, and the time wastage can be substantial if everyone keeps reporting the same bug over and over again.

  • The Feature requests section gives you the opportunity to look over what other people would like to see incorporated into Drupal as shown here:

Of course, you can also submit your own requests.

  • There is also an interesting option to obtain support over an IRC channel. IRC, or Internet Relay Chat, allows for real-time, typed discussions over the Internet. Joining a group like this is obviously a great advantage in that it immediately gives you access to many other Drupal people.

  • There is a support Mailing list section that you can join, a Developer support section, and a forum to raise issues about the actual Drupal website under the Drupal.org problems section.

  • Other sections include Books about Drupal and, following in the ever popular social bookmarking trend, a Tags section has been added too. There is a Web watch section as well.

If in doubt as to where to go, the Support page is probably the best place to start. More often than not though, you will have a fairly good idea of what you need, and should be able to go straight there.

Forum

The forums are probably the single greatest problem-solving resource and information-based asset. Unlike the other types of information on the site (with the exception of the Freenode Drupal IRC), which are largely static, written answers or guides, the forums provide you with an interactive environment in which to learn. Of course, they also provide you with a medium for sharing whatever you have learned as well.

At the time of writing, there were in excess of 200,000 support-related posts alone. This should give you a good idea of how widely used these forums are. The following screenshot shows the Forum home page as well as the first few forum categories. From the large number of posts, you can tell that this is already a fairly large repository of knowledge, and hopefully you will take the time to add to it yourself.

Looking at the entire page, there are three main forum categories—General, Support, and Development—that in turn have a number of subcategories to make navigating the structure fairly easy. Notice too that there is a block on the right-hand side of the page containing a list of the most recent posts. As well as this, you can also use the search tool, shown at the top right-hand side of the page or at http://drupal.org/search/node, to search for relevant information or users.

Finally, assuming you are a registered (and logged-on) Drupal user, you can also post new topics to the forum using the link given under the page's main heading, as shown here:

Before posting off hundreds of questions and salutations, please be aware that there is a certain etiquette to using these forums, and it should be followed at all times. Look at the following page before you begin writing any posts to the site:

http://drupal.org/forum-posting

A quick summary is as follows:

  • Search the forums for your intended topic and use those posts instead of creating redundant information.

  • Make forum post titles informative and meaningful.

  • Submit a good amount of system-specific information in your support queries—for example, mention the Drupal version along with the database and database version.

  • Bear in mind that not everyone using the forum is a native English speaker; so some posts may be construed as rude or abrupt when that is not the intention.

  • Remain polite and reasonable—even if you are frustrated over a particular problem.

  • Donate some time to responding to and helping other posters.

  • If you would like, enable your contact tab so that people can offer support via email. Do this by editing your contact information as shown here:

Some of you may have noticed the link entitled Recent posts on the right-hand side of the page. Clicking on this link brings up a list of the topics that have recently been active, as shown here:

If you would prefer to view the discussions that you personally have contributed to, then click the My recent posts tab instead.

Contribute

At first glance, you might be forgiven for thinking that there is very little to contribute to the Drupal community while you are still learning the software. As this is not entirely true, it is worthwhile seeing what there is available to us:

For starters, the easiest way to support Drupal is by making donations—I can all but hear the sighs and groans, but bear in mind what you are getting is absolutely free. You can also help market Drupal by writing reviews, or incorporating the Druplicon onto your site, and so on. There is also always a need for people to help test, translate, support, and document Drupal.

Finally, once you have gained some experience and feel confident enough, look towards helping with Drupal development. Whatever you choose to do, any information or help you require in order to become pro-active within the community is readily available under the Contribute section.

Contact

The Contact page allows you to send an email off to the Drupal team, and you need to remember that no technical support queries will be addressed here—you must use the support forum for that. Select the most pertinent category from the drop-down list provided and away you go. An example is shown here:

That about wraps it up for our coverage of the Drupal community. You should feel fairly confident that you can use the site efficiently, and find help if needs be. Before we continue onto the next chapter, though, there is one more important issue we need to discuss …

 

The Drupal License


Naturally, you should want to inform yourself of any and all legalities and responsibilities you have when it comes to using software developed by others. To this end, you will find that when you download a copy of Drupal, it will contain a license file for your perusal—it is actually required as part of the license that this copy be included.

If you're like me, then you find it challenging to remain awake when faced with the prospect of reading through licenses and other legal documents. So, instead of subjecting you to a verbatim recount of the entire license, I will instead give you the paraphrased version that is intended to provide you with the essence of what the license is getting at as it applies to Drupal.

Note

Please bear in mind that what I say here is in no way a legal document. You must read the whole license yourself if you wish to follow the letter of the law.

As odd as it may sound, one of the fundamental reasons for using the GNU GPL (General Public License) is to protect and help you—the people who use the software. The GPL is fundamentally different from the licenses of proprietary software, which by and large are designed to protect the rights of the corporate entities that developed and created the software.

Incidentally, the GPL is not tied specifically to Drupal; rather Drupal makes use of the GPL, which is a kind of generic license for distributing open-source software. You can check out the GNU homepage for more information on this movement, in general: http://www.gnu.org/home.html.

The way things work is that the software is copyrighted, and then licensed, for everyone to use freely. This might strike you as a little odd at first because what is the point of copyrighting something if you are simply going to let anyone else make use of it? The reason for this is that copyrighting and licensing the software gives the developer the power to obligate people who use that software to afford everyone they hand it out to (with or without modifications) the same rights that are vested in the original software.

What this means is that, effectively, anyone who makes use of this software cannot create proprietary software from it. So, if you decide to build upon and improve Drupal in order to sell it on as your own product, then you will be bound by the same terms and will have to release the source code to anyone who asks for it.

Remember though, the aim of the GPL is not to take credit for your own work by forcing you to release it under the GPL. If you have developed identifiable programs or code that are wholly your own and are independent from the original source code provided, then the GPL does not apply to your work.

A summary of some of the main points in the license is as follows:

  • You are free to copy the software covered by the GPL, as well as distribute these copies however you see fit. The most important thing is not to remove the licensing.

  • You can hack around with the source code and create whatever type of derived product you want. Again, you must pass on the same license (as you received it) with the original code, only this time you must make it very clear what changes you introduced.

  • You mustn't break the terms of the GPL at any stage, or you will find your current license to use the software terminated.

  • You aren't forced to accept the conditions of the license. (You can tell this from the fact that you don't have to sign anything.) However, if you don't accept the terms of the license, you can't make use of the software.

  • If you do decide to redistribute the software yourself, then you can't add restrictions or modify the license in any way. You also aren't required to ensure that the parties you distribute the software to comply with it.

  • If you are compelled by a court ruling (or any other legal proceeding) to enforce conditions that do not meet the requirements of the GPL, then you must not distribute the software at all.

  • Keep an eye on the version of the license that is distributed with the software. If there is one present then you must use that version (in some instances of the GPL, a later one is also suitable, but never an earlier one).

  • There is no warranty on this software, and no one who modifies or distributes the software in terms of the GPL is responsible for anything—especially damages or failure to operate and so on.

At the end of the day, the only time you do need to worry about the niceties of the GPL is when you decide to set up a business installing, configuring, and customizing Drupal websites for money, or modifying, and redistributing the original source code.

 

Summary


This chapter has served as an introduction to the world of Drupal as well as backdrop for the rest of the book. Several important things were discussed here, which will play an important role in the future as you develop your skills and knowledge.

Without a doubt, one of the most important aspects of becoming a successful Drupal administrator is being able to make efficient use of the community. By now, you should have registered on the Drupal site and taken at least a cursory glance at much of it. As time goes by, you will hopefully develop relationships with other members and eventually become a great asset for the community at large.

I hope you found that researching and deciding on what your site requires was not too tedious. Remember that any background work put in now will pay off later.

With the introductory material out of the way, it is time to get down to business, and the next chapter will see us setting up the development environment as well as obtaining and installing the latest version of Drupal.

About the Author

  • David Mercer

    David Mercer was born in August 1976 in Harare, Zimbabwe. Having always had a strong interest in science, David came into regular contact with computers at university where he graduated "cum laude" with majors in applied math and math.

    His technical books are now sold worldwide and have been translated into French, German, Polish, Greek, Spanish and many more. His book on Drupal 6 was reviewed on Slashdot and went on to become a best seller. Mercer's books are recommended reading at higher learning institutes like MIT, and he has a write-up on Wikipedia.

    He also maintains SME Pals, a blog dedicated to helping entrepreneurs and startups thrive online. SME Pals has become a recommended entreperneurial resource with many leading educational institutions because it has a strong focus on innovative business ideas and how to convert them into profitable startups.

    When he isn't working (which isn't that often) he enjoys playing guitar (generally on stage and unrehearsed) and getting involved in outdoor activities ranging from touch rugby and golf to water skiing and snowboarding.

    Browse publications by this author
Building Powerful and Robust Websites with Drupal 6
Unlock this book and the full library for FREE
Start free trial