Drupal 7 - Mercer David - E-Book

Drupal 7 E-Book

Mercer David

0,0
23,50 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

In Detail

Drupal is an elegantly designed, well-supported and flexible open-source CMS platform that anyone can use in order to create their own website. What's more, the latest version of Drupal 7 includes a tremendous number of new features and new under-the-hood improvements for both users and developers. 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 a wide range of websites. The White house and the British government, to name but a few, turn to Drupal to fulfill their online requirements.

This book provides the best way to learn and master Drupal 7, enabling you to create virtually any type of website. It meets the booming demand for well presented, clear, concise, and above all practical information on how to design and build sites like a pro.

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!

By clearly and concisely demonstrating the fundamentals of Drupal and combining this with practical and methodical coverage of more advanced subjects, this book paves the way for anyone to quickly become proficient at building and operating professional websites.

150 quiz questions and exercises will help you to consolidate and expand on what you learn in the book. It is an indispensable companion for anyone and everyone interested in building a website.

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 you to advance rapidly up the learning curve to the point where they can tackle any problem with confidence.

David Mercer's new book is a comprehensive beginner's guide to installing, configuring, and building a professional Drupal 7 website

Approach

The approach of this book has been revised and updated for Drupal 7 based on comments from thousands of readers.

The book takes a pragmatic look at the steps necessary to get a website up and running. Drawing on years of writing experience, David Mercer utilizes a friendly, engaging style that is both clear and concise—perfect for the Drupal newbie.

Who this book is for

This book is for people with little or no experience in website design, people who are not necessarily
familiar with PHP, MySQL or HTML, and above all people with little to no experience in using Drupal.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 437

Veröffentlichungsjahr: 2010

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Drupal 7
Credits
About the Author
About the Reviewer
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Errata
Piracy
Questions
1. Introduction to Drupal
Drupal—an overview
How Drupal came to be
What Drupal has to offer
Uses of Drupal
The Drupal community
Documentation
Download
Support
Forum
Contribute
Contact
The Drupal license
The Server environment
Obtaining and installing XAMPP (PHP, Apache, and MySQL)
Troubleshooting XAMPP installation
Obtaining and installing Drupal
Troubleshooting the Drupal installation
Drupal's post-installation status
Creating a basic Drupal page
Summary
2. Basic Functionality
Modules
Working with modules
Forum
Comments
Search
Third-party modules
Downloading and installing modules
Updating modules
Working with blocks
Adding blocks
Configuring blocks
Menus, main, and secondary links
Summary
3. Configuration and Reports
Before we start
Site information
Actions and triggers
Shortcuts
File system
Performance
Caching
Bandwidth optimization
Maintenance
Logging and errors
Clean URLs
RSS publishing
Reports
Summary
4. Users and Access Control
Planning an access policy
Roles
Permissions
Users
Administering users
User settings
Profiles
OpenID
Summary
5. Basic Content
Content overview
Content types
Working with content
Working with content types
Adding content
Administering content
Content-related modules
Aggregator
Book
Summary
6. Advanced Content
Content and fields
Creating new content types
Adding fields
Displaying fields
Taxonomy
What and why?
Implementing taxonomies in Drupal
Introduction to vocabularies
Dealing with terms
Adding vocabularies to content types
Posting content with taxonomy
Hierarchies
Tagging
Formatting
Summary
7. Multimedia
Images
Fields
Styles
Files
Advanced media handling
Embedded media
WYSIWYG
Summary
8. Views
Introduction to Views
Views user interface
Displays
Configuring categories
Live preview
Creating a basic view
Filters
Fields
Sort criteria
Basic settings
Page settings
Creating an advanced View
Arguments
Adding an Argument
Setting the Path
Testing the arguments with Live preview
Relationships
Adding a relationship
Results
Headers and footers
Style settings
Advanced settings
Creating an attachment
Theming Views
Views CSS
Views templates
Theme information
Creating a custom template file
Modifying the custom template file
Importing, exporting, and cloning views
Summary
9. Drupal Theming
Planning a web-based interface
Visual design
Language
Images
CSS
Themes
Theme anatomy
Choosing a base theme
Theme settings
Customizing themes
Sub-themes
Working with the Sub-theme
Summary
10. Advanced Features
Introduction to Panels
A basic Panels page
A more advanced Panels page
Important Panels features and settings
Additional theming
Theming nodes
Theming pages
Customized content reviews
Integrating Shadowbox
Creating the article reviews view
Theming the view
Embedding the View
Summary
11. Deployment and Management
Deployment
The live server
Preparing for deployment
Deploying the site
Configuring the site
Access problem?
Filesystem settings
Backups
Website activities
Path and Pathauto
Search engine optimization and website promotion
Updates
Summary
A. Leveraging jQuery
jQuery Basics
jQuery in action
Index

Drupal 7

Drupal 7

Copyright © 2010 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: April 2008

Second edition: September 2010

Production Reference: 1020910

Published by Packt Publishing Ltd.

32 Lincoln Road

Olton

Birmingham, B27 6PA, UK.

ISBN 978-1-849512-86-2

www.packtpub.com

Cover Image by Faiz Fattohi (<[email protected]>)

Credits

Author

David Mercer

Reviewer

Diliny Corlosquet

Acquisition Editor

Sarah Cullington

Development Editor

Mayuri Kokate

Technical Editors

Sakina Kaydawala

Neha Mallik

Copy Editor

Leonard D'Silva

Indexer

Tejal Daruwale

Editorial Team Leader

Aanchal Kumar

Project Team Leader

Ashwin Shetty

Project Coordinator

Poorvi Nair

Proofreader

Mario Cecere

Graphics

Geetanjali Sawant

Production Coordinator

Shantanu Zagade

Cover Work

Shantanu Zagade

About the Author

David Mercer was born in August 1976 in Harare, Zimbabwe. As he always had a strong interest in science, he came into regular contact with computers at the university where he graduated cum laude with majors in applied math and math (although he minored in computer science).

As a programmer and professional writer who has been writing both code and books for about ten years, he has worked on a number of well known titles, in various capacities, on a wide variety of topics. His books have been translated into over nine different languages to date.

David believes that everyone should be able to benefit from the vast potential of the Internet. He founded Site prebuilder (http://www.siteprebuilder.com) to provide education and services to reduce the barrier to entry for Internet newcomers. The aim of Site prebuilder is to empower ordinary, non-techie people with the knowledge and skill required to run any website efficiently.

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

It is necessary to first thank the Packt team for making this possible, along with Diliny Corlosquet who did the review. In addition, my ever supportive family was always at hand to provide a change of pace and scenery that enabled me to work with greater effort throughout. Finally, I would like to thank my readers. The success of the first few editions of this book has made it possible (and necessary) to sit down and update it on a regular basis. I hope 
it does its job well.

About the Reviewer

Diliny Corlosquet is a freelance web developer who was introduced to Drupal by the vibrant community in Ireland back in 2006. Having attended several DrupalCamps and DrupalCons, she keeps up-to-date with the latest and greatest in the Drupal community and maintains several Drupal websites. She now lives in Boston, Massachusetts, with her Drupalite husband of RDF/Semantic web fame, Stéphane, and their dog Maya.

I would like to thank my husband for his constant encouragement and commitment to Drupal as a whole, without whom I would never have become so involved!

Preface

The Internet is a magical place where any type of media and information can be accessed any time, day or night. Online medical diagnosis websites pander to every whim of the world's hypochondriacs, while media sites stream endless clips of the latest celebrity meltdowns. It's a huge and wildly variable place, which is great… if you're only browsing.

The second you take it upon yourself to contribute to this melee of information, the magic has a tendency to be replaced by cold, hard reality. It's no longer sufficient to learn how to create a "Hello world" web page by hand. Those days are gone, and no-one is interested anymore.

Today, no matter who you are, you have to worry about things like SEO, sessions, hackers, RSS, DNS, Flash, Analytics, bots, and thousands of other things, all at once. Things have become so complex that it's simply not possible to do this as an individual anymore. More to the point, why would you want to?

What's important is that you can achieve whatever you want without ever having to learn the fundamentals of session state management or OOP, for example. This is where Drupal comes in. Thousands of developers work in, on, and around the Drupal project to provide a platform that is cutting edge and does its job "under the hood".

Your job is to take Drupal and turn it into what you need in order to meet your goals—regardless of what they are. Sure, you'll need to become knowledgeable about some things, and you'll have to invest a bit of your time learning the ropes, but that isn't a very high price to pay for what you get.

Learning new concepts, techniques, and technologies can be frustrating—believe me, I know. That's why this book contains everything I would want to know about Drupal, if I was starting out again. It has a focus on practical, real world information that will turn you into an adaptable and competent Drupal 7 webmaster.

What you do with your newfound knowledge and experience after that is entirely up to you. The sky is the limit!

What this book covers

Chapter 1, Introduction to Drupal introduces you to the world of Drupal and looks at where Drupal comes from, where it's going, and what it can offer you. It then deals with how to get everything you need up and running on a development machine and also briefly looks at how all the requisite technologies gel together to produce a working Drupal site.

Once everything is up and running, and after looking over some of the more common installation problems, the chapter presents a brief tour of Drupal in order to give you an idea of what to expect in the coming chapters.

Chapter 2, Basic Functionality sees us adding important functionality to the newly created site. The focus of this chapter is on modules and blocks and how to add and enable them, and how to obtain modules that are not a part of the core distribution. Given that menus are closely associated with a site's functionality, these are also covered here.

Chapter 3, Configuration and Reports looks at the most general settings that all Drupal administrators need to contend with. Everything from specifying your site's name and dealing with filesystem settings to proper utilization of logs and reports gets treated here.

Chapter 4, Users and Access Control concerns itself with the best ways to implement a sound access control policy. Drupal has a sophisticated role-based access control system, which is fundamentally important for handling users properly. This chapter will give you the information you need to implement whatever access controls your site requires.

Chapter 5, Basic Content gets to the heart of the matter by beginning the book's coverage on content. Working with content, what content types are available, administering content, and even a discourse on some of the more common content-related modules serve as a basis for moving to more advanced content-related matters that follow in the next chapter.

Chapter 6, Advanced Content gives you the edge when it comes to creating engaging, dynamic content. In particular, Drupal 7's new field paradigm is discussed along with content types, taxonomy, and formatting.

Chapter 7, Multimedia embraces the trend towards rich, visually appealing websites. Given the increasing availability of broadband Internet, it is only fitting that a full chapter be devoted to learning how Drupal's various core and contributed modules support different media.

Chapter 8, Views is dedicated to arguably the most important topic of all. By mastering Views, Drupal webmasters can manipulate and organize their content in a way that no other platform can. This chapter shows not only how to create new basic and advanced Views, but also how to theme and manipulate them.

Chapter 9, Drupal Theming gives you a run down of how attractive, functional interfaces are created in Drupal through the use of themes. As well as discussing briefly some of the considerations that must be taken into account when planning your website, it shows how to make important modifications to your chosen theme, through the use of sub-themes.

Chapter 10, Advanced Features adds the icing on the cake by looking at a host of more advanced topics. From better and more complex theming issues, to creating a real world application by integrating several different features and technologies, this chapter gives readers their first look at how Drupal makes building genuinely world-class websites possible.

Chapter 11, Deployment and Management takes a pragmatic look at the type of tasks in which you will need to be proficient in order to successfully run and maintain a Drupal site. Whether it's considering what type of hosting service to use, or how to enhance a site's SEO, everything you need to do throughout the course of operating a live website is covered.

It also discusses the all-important topic of deployment. Because all major work should be done on a development website, this chapter presents a sound process for taking the finished product and making it available for public consumption on a live server.

Appendix looks at the JavaScript features that come as standard with Drupal using the jQuery package. By demonstrating how to incorporate jQuery effects and features into content, readers will be able to add that special something to their pages.

What you need for this book

You need to have the following:

XAMPP (PHP, Apache, and MySQL)Drupal 7Internet connection (Online quizzes and exercises for this book are available at Site prebuilder—http://www.siteprebuilder.com)

Who this book is for

This book is for people with little to no experience in using Drupal. People who are not familiar with PHP, MySQL, or HTML will also be able to use the book.

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

Code words in text are shown as follows: "It may be more expedient to create a directory, say drupal_downloads, to save these files to."

A block of code is set as follows:

h1, h2, h3, h4, h5, h6 { margin: 0; padding: 0; font-weight: normal; font-family: Helvetica, Arial, sans-serif; }

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

h1, h2, h3, h4, h5, h6 { margin: 0; padding: 0; font-weight: normal; font-family: Helvetica, Arial, sans-serif; }

New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "click on the Run cron link".

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply send an e-mail to <[email protected]>, and mention the book title via the subject of your message.

If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or e-mail <[email protected]>.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book on, see our author guide on www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book.

If you find any errata, please report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the errata submission form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title.

Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.

Piracy

Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors, and our ability to bring you valuable content.

Questions

You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.

Chapter 1. Introduction to Drupal

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 such as PHP or Perl. The not inconsiderable task of learning the niceties of the chosen language to a respectable degree would 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 to work in. 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 this 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 working with 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.

Note

To further consolidate your learning and expand on the practical aspect of the various topics covered throughout the book, each chapter will have an associated self-marking online quiz with additional exercises available at the author's website: http://www.siteprebuilder.com. It is highly recommended you take advantage of this additional resource to get the maximum benefit from this book.

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 brief discussions on the following topics:

Drupal—an overviewHow Drupal came to beWhat Drupal has to offerUses of DrupalThe Drupal communityThe Drupal licenseThe server environmentObtaining and installing XAMPP (Apache, MySQL, and PHP)Obtaining and installing DrupalA short tour of Drupal

Before we begin, there is one crucial bit of advice to be given:

Tip

Ensure that you have access to a good, preferably broadband Internet connection, as you will be downloading a fair amount of software.

If you already have a development environment set up and running, feel free to skip the web server sections and move to the Obtaining and Installing Drupal section.

Drupal—an overview

Drupal is anOpen 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:

Tip

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.

Besides 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 to 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?

Tip

A content management system is software that facilitates the creation, organization, manipulation, and removal of information in the form of images, documents, scripts, and 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 one can achieve is the subject of the What Drupal Has to Offer section, 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 later in 2001, when it was decided to release the code to the public in the hope that 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, administrators, 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 software 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:

Tip

A great advantage of Drupal is that the code itself is very well designed and written, which makes modifying it easy. This means that, as you attempt more advanced tasks, the very way in which Drupal is designed will lend you 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?Secure: Has the website been successfully used in real world applications? Are known bugs fixed quickly and regularly?

Again, these are precisely the attributes that Drupal is known for. If you have other questions that are not specifically mentioned here, try looking through the Drupal forums.

Finally, and perhaps most importantly, it is necessary 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 by visitors 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. Ultimately, how easy a site is to use depends on how you, the creator of the site, present content and information.

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 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 websites: Companies maintain their internal and external websites in Drupal. Drupal works well in these cases 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, and 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 by, Drupal will only develop stronger support for audio, video, images, and playlist content for use in multimedia applications.Social networking sites: Drupal has a lot of the common 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, you should perhaps limit its use to those things that complement its design—like those mentioned in the previous list.

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 in the following screenshot:

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 needs. The content is gathered into five main sections, some are shown in the following screenshot:

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 Understanding Drupal page:

You are urged to look through at least the first section before moving on 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/modules or clicking the Download tab gives the following:

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 (the same goes for Drupal 7), then you are shortly going to experience no small amount of frustration—this is especially valid at this time, given that 7.x is brand new, and hence many modules have yet to be updated.

Tip

Use the Filter by compatibility block to limit module results to only the version you require.

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.

These are:

DownloadRelease notesFind out more, andBugs 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—often, this information will include download statistics, which can give you a good idea of how popular a module is.

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

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 back to the Drupal handbooks (to be discussed shortly) from the Get documentation section to find out some basic information on Drupal.

Briefly, in this section:

The Get started section offers a get started guide, training resources, and videosDocumentation and help facilities are provided in the Get documentation section and include links to books and various guidesThere are also links to forums, groups, mailing lists, and commercial support in the Get help section.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, that includes German, French, Spanish, and Afrikaans.

If in doubt as to where to go, the Support page is probably the best place to start.

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 500,000 support-related posts alone. The following screenshot shows the Forum home page as well as the first few forum categories. It's easy to see that this is 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 four main forum categories—General, Support, Services, and Newsletters—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.

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 http://drupal.org/forum-posting before you begin writing any posts to the site:

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 e-mail. Do this by editing your contact information,

Some of you may have noticed the link entitled Recentposts on the right-hand side of the page (assuming you are logged in). Clicking on this link brings up a list of the topics that have recently been active:

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

Contribute

At first glance, you might assume that there is very little to contribute to the Drupal community while you are still learning the software. This is not entirely true, so it is worthwhile seeing what 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, incorporating the Druplicon onto your site, and so on. There is also a constant 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

TheContact page allows you to send an e-mail 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 in the following screenshot:

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 start setting up our website, there is one more important issue we need to discuss, namely, the Drupal license.

The Drupal license

You should always be well acquainted with any 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 for 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 http://www.gnu.org/home.html for more information on this movement.

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 everyone 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 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 licensingYou 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 introducedYou mustn't break the terms of the GPL at any stage or you will find your current license to use the software terminatedYou 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 softwareIf 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 itIf 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 allKeep 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.

The Server environment

I know most of you will be eager to get going at the moment and might well prefer to dive straight into making modifications to your Drupal site. Before we do so, we can take a few moments to read over this section to gain an appreciation of how everything is put together behind the scenes.

Having a basic knowledge of how the various technologies co-operate in order to produce a working Drupal site will help immeasurably in the long run. While everything we need to run a server will be provided in a single package, let's take a look at each of the individual underlying technologies we will be using:

PHP: PHP, or PHP Hypertext Preprocessor, is the language in which Drupal is written. PHP is widely used on the Internet for a multitude of different projects and is renowned for its ease of use.Apache: This is the web server we will use to serve web pages during the development phase. Apache is the most popular web server on the Internet, with millions of live sites using it every day. In fact, as the Apache website says: It is more widely used than all the other web servers combined.MySQL: This is the database software that we will use to store all the information required to keep the website running. Everything from customer details to product information and a host of other things will be stored in the MySQL database. Keeping with the trend of popularity, MySQL is also the world's most popular bit of database software with over six million active installations worldwide.

The package that we will use to get a complete web server (that includes all the above mentioned technologies) for the purposes of this book is called XAMPP .

Note

The XAMPP distribution is available at http://www.apachefriends.org/en/xampp.html.

Now that we know what we are using, it is important to take a quick look at how it is used. The following diagram shows a simplified view of how everything works, with the shaded section denoting the package containing the Apache web server, PHP interpreter, and MySQL database, with Drupal installed on the system:

So whenever a user does anything with your Drupal site (hopefully like contributing meaningfully), here's what happens:

The relevant information is sent to the server in the form of an HTTP (HyperText Transfer Protocol) request.The server receives the HTTP request and says, Ah! This is a PHP page that has been requested. I need to send it off for processing by the PHP engine. The PHP page then gets processed and executed appropriately, and any actions that are required as a result of the user's request are performed.Once that is done, an appropriate response is returned by the server to the user's browser, and the cycle continues.

There are quite a few methods of providing dynamic web content that don't rely on PHP server requests. Instead, processing can be done on the browser itself (features like this are often loosely termed Web 2.0), but what you have been shown here is fundamentally how everything works, even if there are exceptions to the rule.

Obtaining and installing XAMPP (PHP, Apache, and MySQL)

As mentioned in the previous section, we are going to make use of a package installation in order to simplify the task of creating a workable development environment. You will notice that most software installation is really about learning a single process and repeating it for whatever software you need. More often than not, you will:

Go to the software producer's siteFind the download page and download the appropriate packageUnpack the software or run the executable file, depending on the method of installationInstall and configure the software—most often you will be guided through the process in one way or anotherTest your setup

Easy enough! Head on over to http://www.apachefriends.org/en/xampp.html and select the appropriate download link (that is, for Windows, Linux, Solaris, and so on). Select the desired package—generally the latest stable release. At the time of writing, version 1.7.3 was the most appropriate release, but you should feel free to use a later version, if there is one, as this will not affect the installation procedure.

Tip

Note that you should ensure that any package you use comes with versions of PHP and MySQL that are compatible with the system requirements of your Drupal installation. Drupal system requirements are available at: http://drupal.org/requirements

The download section should look like the following screenshot:

Click the EXE file link and, depending on your PC's security settings, you may get the following message:

Click on SaveFile to continue. At this point, you may take a break for a cup of coffee or tea if you have a slow connection as it may take a while—the download is in excess of 50 Meg.

Once the file has been downloaded, double-click it to begin the setup procedure. Follow the dialogs and ensure that you set the XAMPP options, as shown here (Note in particular, the first two options in the SERVICE SECTION are selected), before clicking Install:

Once everything