wrox.beginning.drupal.apr.2010
Trang 1Drupal is an open source framework and content management
system used to create web sites that is known for its steep learning
curve This introduction offers you a clear and solid understanding
of Drupal so that you can get started programming a Drupal
site immediately Author Jacob Redding walks you through the
installation and configuration of a Drupal web site and presents
a clear understanding of Drupal’s hook system, theming layer,
views, and API Throughout the book, helpful examples and
step-by-step instructions provide you with a strong proficiency in the
power and capabilities of Drupal.
Beginning Drupal:
• Addresses ways to manage and moderate comments on your site
• Looks at why Drupal’s node system is the pivotal structure of Drupal
• Explains the basics of the views modules and shows you how to control
the output of your content
• Guides you through Drupal’s built-in themes and modifying them to
suit your needs
• Examines the power of Drupal’s community and demonstrates how
to become engaged with it
• Covers the entire module-development process, including creating
custom configuration settings, blocks, and database tables
Jacob Redding is an open source evangelist and technologist, and an active
member in the Drupal community In addition to managing several modules on
drupal.org and providing Drupal-related training and consulting, he is also a
board member on the Drupal Association
Wrox Beginning guides are crafted to make learning programming languages
and technologies easier than you think, providing a structured, tutorial format
that will guide you through all the techniques involved
quickly leverage the power of Drupal
wrox.com
Programmer Forums
Join our Programmer to Programmer forums to ask and answer programming questions about this book, join discussions on the hottest topics in the industry, and connect with fellow programmers from around the world
Code Downloads
Take advantage of free code samples from this book, as well as code samples from hundreds of other books, all ready to use
Read More
Find articles, ebooks, sample chapters and tables of contents for hundreds of books, and more reference resources on programming topics that matter
to you
Trang 2ISBN: 978-0-470-54070-1 This valuable resource makes it easy to learn how to build web sites using the most up-to-date web standards Whether you’re a beginner eager to start writing your first web page or a more experienced programmer seeking to update your skills, you will find practical introductions to these essential languages, as well as invaluable tips and techniques used by experienced web professionals.
Beginning Joomla! Web Site Development
ISBN: 978-0-470-43853-4Written in an approachable and informative writing style, this hands-on book introduces you to Joomla! and gets you started with using this powerful, versatile tool for developing and managing web sites You’ll gain a clear understanding of Joomla! and learn how to get things done within the Joomla! framework Using this book, you will be able to harness the power of Joomla! to accomplish the goals you want to achieve with your web site
Beginning PHP5, Apache, and MySQL Web Development
ISBN: 978-0-7645-7966-0This book guides you through the entire process of setting up your own site and walks you through every step, from the installation
of PHP, Apache, and MySQL to database management, security, and integration with other technologies The multi-platform approach addresses installation and usage on both Linux® and Windows®, and two common-themed, reusable web sites are examined Upon completion of this book, you’ll be able to create well-designed, dynamic web sites using open source tools
Beginning PHP 5.3
ISBN: 978-0-470-41396-8
As one of the most popular open source web-programming languages in use today, PHP is an ideal server-side scripting language that connects HTML-based web pages to a backend database for dynamic content This guide introduces the PHP language and shows you how to write powerful web applications using PHP
Joomla! Start to Finish: How to Plan, Execute, and Maintain Your Web Site
ISBN: 978-0-470-570890This book walks you through the critical steps that must be taken in the planning process prior to establishing a Joomla! site Joomla! expert Jen Kramer reviews essential questions that need to be asked of a client, discusses technical solutions to a variety of challenges, and explains how a site structure should be organized Once the groundwork has been laid, you’ll discover how to host and install Joomla!, and upgrade and maintain your Joomla! site
Leveraging Drupal: Getting Your Site Done Right
ISBN: 978-0-470-41087-5Drupal allows you to create interactive, media-based, database-driven web sites that become a part of everyday activities and communications This unique book tackles the challenging task of leveraging Drupal to get a site done right and make that site work for you, based on industry-wide software development best practices
Professional PHP Design Patterns
ISBN: 978-0-470-49670-1This book bridges the gap between PHP and older programming languages by applying those tried and tested Design Patterns
to native PHP applications It starts with an introduction to Design Patterns, describes their use and importance, and details where you’ve seen them already The book continues through a host of Design Patterns with code examples and explanations Finally,
an in-depth case study shows you how to plan your next application using Design Patterns, how to program those patterns
in PHP, and how to revise and refactor an existing block of code using Design Patterns from the book
WordPress 24-Hour Trainer
ISBN: 978-0-470-55458-6 This unique book-and-video package provides you with beginner-friendly tutorials for building and maintaining a WordPress web site You’ll discover how to customize WordPress to meet your needs and you’ll see how critical—and simple—it is to expand and update content in order to make your site as effective as possible
Get more out of
Wrox Online Library
Hundreds of our books are available online
through Books24x7.com
Wrox Blox
Download short informational pieces and code
to keep you up to date and out of trouble!
Join the Community
Sign up for our free monthly newsletter at newsletter.wrox.com
Browse
Ready for more Wrox? We have books and e-books available on NET, SQL Server, Java, XML, Visual Basic, C#/ C++, and much more!
Contact Us
We always like to get feedback from our readers Have a book idea?
Need community support? Let us know by e-mailing wrox-partnerwithus@wrox.com
Trang 3INTRODUCTION xxi
CHAPTER 1 Introducing Drupal 1
CHAPTER 2 Installing Drupal 9
CHAPTER 3 Your First Drupal Website 27
CHAPTER 4 Administration — Confi guration, Modules, and Reporting 49
CHAPTER 5 Administration — Blocks, Menus, and Themes 69
CHAPTER 6 Content 91
CHAPTER 7 User Management 125
CHAPTER 8 Taxonomy 157
CHAPTER 9 Search, Performance, Statistics, and Reporting 173
CHAPTER 10 Triggers, Actions, Workfl ow, and Rules 189
CHAPTER 11 Views 213
CHAPTER 12 Internationalization 241
CHAPTER 13 Theming 263
CHAPTER 14 Contributed Modules 299
CHAPTER 15 Custom Modules 315
CHAPTER 16 Development Hooks 331
CHAPTER 17 Module Development Start to Finish 347
CHAPTER 18 Advanced Drupal Installations 379
CHAPTER 19 Prefl ight Checklist 401
APPENDIX Exercises and Answers 417
INDEX 433
Trang 5Jacob Redding
Trang 610475 Crosspoint Boulevard
Indianapolis, IN 46256
www.wiley.com
Copyright © 2010 by Wiley Publishing, Inc., Indianapolis, Indiana
Published by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
ISBN: 978-0-470-43852-7
Manufactured in the United States of America
10 9 8 7 6 5 4 3 2 1
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means,
electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108
of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization
through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers,
MA 01923, (978) 750-8400, fax (978) 646-8600 Requests to the Publisher for permission should be addressed to the
Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 6011, fax (201)
748-6008, or online at http://www.wiley.com/go/permissions.
Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with
respect to the accuracy or completeness of the contents of this work and specifi cally disclaim all warranties, including
without limitation warranties of fi tness for a particular purpose No warranty may be created or extended by sales or
pro-motional materials The advice and strategies contained herein may not be suitable for every situation This work is sold
with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services
If professional assistance is required, the services of a competent professional person should be sought Neither the
pub-lisher nor the author shall be liable for damages arising herefrom The fact that an organization or Web site is referred to
in this work as a citation and/or a potential source of further information does not mean that the author or the publisher
endorses the information the organization or Web site may provide or recommendations it may make Further, readers
should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was
written and when it is read.
For general information on our other products and services please contact our Customer Care Department within the
United States at (877) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.
Wiley also publishes its books in a variety of electronic formats Some content that appears in print may not be available
in electronic books.
Library of Congress Control Number: 2009930281
Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress
are trademarks or registered trademarks of John Wiley & Sons, Inc and/or its affi liates, in the United States and other
countries, and may not be used without written permission Drupal is a registered trademark of Dries Buytaert All other
trademarks are the property of their respective owners Wiley Publishing, Inc is not associated with any product or
ven-dor mentioned in this book.
Trang 7pleasure of working with Equally important is Diana Kuan She stuck by me while I wrote this book, pulled incredible hours with the Drupal Association, traveled
to countless Drupal events and went crazy trying to keep up with the intense development of Drupal 7
Thank you Diana
Trang 9JACOB REDDING got his start in Drupal in 2005 after 10 years in the IT industry building custom software with everything from Microsoft to Linux and UNIX technologies He has since become heavily involved in the Drupal association and Drupal communities around the world, speaking and leading classes in not only New York, San Francisco, Boston, and Washington DC, but also far-fl ung locales such as China and Jordan An enthusiastic advocate
of open-source, he currently spends most of his time providing project agement and training on Drupal-based websites
Trang 10man-DIANA KUAN DESERVES the top spot here Serving as a part-time editor, proofreader, supporter,
and impromptu student she helped set the fl ow of the book, proofread nearly every page, and tested
many of the exercises Without her assistance and support this book would have taken yet another
year, an outcome that would have surely sent the publisher’s henchmen out to get me
Jason Chinn, Mr Magicspark, helped me through the rough spots of theming including building the
nice Drupal chocolate theme used in Chapter 13 Without him the theming chapter would have been
a rambling mess
My students: To those in China: ԴӀᐂ៥ᕜ៥ᛇ䇈䴲ᐌᛳ䇶ԴӀDŽ ៥Ꮰᳯ៥Ӏৃҹᴹ㾕䴶DŽ My
students in Jordan caught me during a critical time of this book and unknowingly tested several of
the exercises in the book, thank you for secretly helping to create this book I can’t leave out those
in my home country of the United States, thank you for listening to me ramble about in class I hope
that I have been a useful part of your Drupal journeys
Joshua Brauer: My technical editor Although we have never met and I’m not entirely sure how we were
paired together, the odd in-book synergy somehow worked I was able to see through his
trying-to-be-nice commentary that brow beat me into thoroughly revising the chapters into something useable
Carol Long and Ed Connor at Wiley/Wrox: Oh boy These two had no idea what they signed up for
The book started on very early versions of Drupal 7 and was revised too many times for them to
count Their patience and tolerance of my “I’ll get it to you soon-ish” (heavy emphasis on –ish) and
“by the way Drupal 7 changed so I have to rewrite the entire chapter” is much appreciated
The entire Drupal community: You gals and guys are amazing From small meetups in Beijing,
large DrupalCamps in Los Angeles, collaborative working sessions in New York and the awesome
DrupalChix group, you (the Drupal community) are amazing individuals to know and to collaborate
with With the book fi nally complete I hope to see you all in IRC more often
Trang 11INSTALLING DRUPAL
Getting Started with Drupal 10 Installing a Single Drupal Website 10 Installing Drupal 13
Acquia’s Stack Installer 16
Modifying Your Menus 31 Adding Blocks to Your Website 33 Getting in Contact 34
Trang 12Exploring Your Site’s Permissions 38 Creating a Members-Only Site 39
Time for a New Look 43
Cron 45
Media 54
Explore the Filtered HTML Text Format 59
Apache 63
A Need for Speed 63
Trang 13IIS 64
Creating Custom Content Types 93
Adding an Image Upload Field 98
Permissions 104
Revisions 105
Trang 14Digging Deeper Into Fields 106
Fields 106
Content Construction Kit (CCK) 109 Views 110 Administering Nodes 110 Content Moderation 111
Nodes in a Nutshell 111 Comments 112 Permissions 113
Comment Approval Queue (A.K.A Comment Moderation) 114
WYSIWYG 117
Spam 117 RSS Aggregation 118
Canceling Accounts 129 Setting Up Account E-mails 129
Creating Roles and Permissions 132
Creating Custom User Profi les 135
Trang 15Using the Core Profi le Module 137
Tracking User Activity 143
Using Views to Create Custom Tracking Pages and Blocks 144
Custom Administration Pages with Views 150 User Sessions 153
Summary 155
TAXONOMY 15
In Simple Terms 157 Terminology 158 Vocabularies 158 Terms 159
Useful Contributed Modules 169 Summary 170
SEARCH, PERFORMANCE, STATISTICS, AND REPORTING 17
Search 174
Trang 16Triggers and Actions 190
Rules 200 Features of the Rules Module 201 Conditions 203 Scheduler and Rule Sets 206 Input Evaluators 209 Summary 210
VIEWS 21
Advanced Help 214 Overview of Views 214 The Frontpage View 215
Displays 218 Style Settings 220 Creating a Photo Gallery 222 Arguments 225 Exposed Filters 229
Relationships 234
Trang 17Translating Your Content 258 Beyond the Basics 260 Summary 261
THEMING 26
Administering Themes 264
Template Files (.tpl.php) 286
page.tpl.php 286node.tpl.php 287
Trang 18comment.tpl.php 287block.tpl.php 287
Preprocess Functions 288
Swapping Theme Functions and Template Files 290
Theme Registry 291 Theme Engines 294 Summary 296
Contributed and Custom Modules 299 Determining Your Needs 300 Fulfi lling Your Needs 301
Summary 312
Trang 19CUSTOM MODULES 31
What Is a Module? 315 Hooks 317
Modules Step by Step 319
Creating a Page 321
Modifying Existing Modules 324
Adding Custom Confi guration Settings 351
Trang 20Helping Your Users 356 Permission Handling 358 Storing Data in a Custom Table 359
Drupal Query Functions 361 Displaying the Results on the User’s Profi le 365 Database Summary 367 Creating a Bulletproof Site with SimpleTest 367
Using CVS to Manage Drupal 382
One Drupal, Many Websites 387
Sites.php 392
Settings.php 392
$databases 393Scalability 394
$baseurl 395
$ini_set 395
$reverse_proxy 396
Trang 21SEO 404
Analyzing Your Site with Google 411 Dashboard 413 Summary 415
APPENDIX: EXERCISES AND ANSWERS 417
INDEX 433
Trang 23OVER THE PAST FEW YEARS, the Web has undergone dramatic changes What originally started as a handful of static web pages with a few e-commerce sites in the mix has now turned into a frenzy of collaboration and information sharing New websites are expected to meet a certain level of inter-activity and information-sharing RSS feeds, blogs, and podcasts are just a few of the current stan-dards Photo uploads with auto-resizing and cropping, video and audio embedding, and even web APIs are quickly becoming the new standard-website functions
Years ago, when I started creating dynamic websites, I began as most developers did, by writing my own custom content management system (CMS) My experience was not unlike that of others who followed the same path The system was light and fast, and did everything that I, and my clients, asked — until a new feature emerged on the Web, and my software had to play catch-up Soon I was buried under a pile of feature requests and bug fi xes, which left me with no time to innovate My quest for a better solution led me through a maze of software packages, until a friend told me about Drupal According to him Drupal has two really great things going for it The fi rst is that it’s built on a mod-ular structure, so it can quickly adapt to custom and unique scenarios The second is that it is built around a community that is growing every day When a new feature emerges on the Web, chances are someone has already gotten it to work within Drupal The community factor is what sold me Now that I have been working with Drupal for a few years, I am in awe at how well the community has organized itself and, as a result, kept itself and the Drupal project on the cutting edge of web technology Drupal has moved from being a piece of software that modularized the latest Internet technologies, to a platform that creates the latest technologies The community made this happen You are now a part of this awesome community Welcome
Who This Book Is For
This book was written for people who want a robust website and aren’t afraid to get their hands dirty Maybe you’re the leader of a nonprofi t who wants to organize your constituency through a community-driven website You have a bit of prior experience in creating HTML pages by hand
or with another CMS You’re now ready to dig in and create your community’s website, and Drupal is your tool of choice, but you want to be on the fast track
Perhaps you’re an established developer and possess the skills to create your own custom CMS
or have experience with other software packages You’re looking for defi nitions and examples on Drupal’s terminology and structure so that you can take advantage of Drupal’s fast development cycle that you hear so much about
To get the most out of this book, you should already possess or have a strong desire to obtain rience in web development with HTML, JavaScript, or PHP I did not set out to write a book that guides you step-by-step through building a specifi c website such as one for a restaurant or bakery Instead, I set out to write a book that will help you understand how you can use Drupal to take the
Trang 24vision in your head and apply it to the Web For example, when you understand that you need a
new form of content, fl ip to Chapter 6, "Content," which discusses all aspects of content in depth,
including creating, administering, moderating, and controlling that content
Experienced developers who are looking to propel themselves on the fast track to custom
mod-ule development might fi nd it useful to skim Chapters 2 through 4, and then skip forward to the
later chapters on module development I would suggest that you spend a bit of time on Chapter 6,
"Content," and Chapter 10, "Workfl ow and Actions," and Chapter 11, "Views." A good
under-standing of these chapters may save you countless development hours
What This Book Covers
This book focuses on Drupal 7, but the changes since Drupal 6 are highlighted where
appropri-ate This book walks you through the entire process of creating a Drupal website It starts with the
installation, moves to administration and confi guration, and then covers users and permissions The
book also discusses content (including nodes, users, and blocks), Drupal’s infamous taxonomy
sys-tem, tips on how to make your site not look like a Drupal site, and instructions on expanding your
site with contributed and/or custom modules
How This Book Is Structured
I often train others on how to use Drupal, so this book is structured similar to a training manual
The chapters are ordered in a manner that builds upon the topics of the previous chapter For
example, the chapter on Views is after the chapters on users, content, and taxonomy, because a
view works with all of these items I believe this order will help you understand the overall fl ow and
structure of Drupal Each chapter, however, is a thorough examination of its topic
I don’t expect you to read the book cover to cover before building your website You should read
this book alongside your development and use it as an aid or reference
If you are new to Drupal, I recommend that you read at least the fi rst parts of each chapter, but you
can move to the next chapter if the topic becomes too complex or just plain boring You can then
revisit each chapter when you need clarifi cation or more information
Experienced developers or those with previous Drupal experience may fi nd it benefi cial to skip to
the chapters that matter most to them Each chapter is designed to be independent, although the
examples in one chapter may build upon the examples in the previous chapter If you fi nd this to be
the case, simply fl ip back one chapter and follow the last example to catch up
What You Need to Use This Book
The book covers Drupal version 7, which has the following requirements:
Webserver: Apache 1.3 or 2.x or IIS 6+
Trang 25The XAMPP project for Microsoft Windows, Linux, and Mac OS X as well as the MAMP project for Mac OS X contain all of these requirements in a single downloadable package
Please visit http://drupal.org/requirements for up-to-date system requirements
CONVENTIONS
To help you get the most from the text and keep track of what’s happening, I’ve used a number of conventions throughout the book
Exercises that you can try out for yourself generally appear in a box like this:
What You Will Be Doing in this Exercise
TRY IT OUT
Each Try It Out consists of an exercise you should work through, following the text in the book.
1. They usually consist of a set of steps
2. Each step has a number
3. Follow the steps using your copy of the database
How It Works
After each Try It Out, the code you’ve typed will be explained in detail.
WARNING Boxes like this one hold important, not-to-be forgotten information that is directly relevant to the surrounding text
NOTE Notes, tips, hints, tricks, and asides to the current discussion are off set and placed in italics like this
This book also uses the following styles to set apart non-standard text:
New and important terms are
Trang 26Separate lines of code are formatted in the following ways:
➤
Monofont type with no highlighting is used for most code examples.
Bold is used to emphasize code that’s particularly important in the present
context.
SOURCE CODE
As you work through the examples in this book, you may choose either to type in all the code
man-ually, or to use the source code fi les that accompany the book All the source code used in this book
is available for download at http://www.wrox.com When at the site, simply locate the book’s title
(use the Search box or one of the title lists) and click the Download Code link on the book’s detail
page to obtain all the source code for the book Code that is included on the Web site is highlighted
by the following icon:
Listings include the fi lename in the title If it is just a code snippet, you’ll fi nd the fi lename in a code
note such as this:
code snippet fi lename
NOTE Because many books have similar titles, you may fi nd it easiest to search
by ISBN This book’s ISBN is 978-0-470-43852-7
Once you download the code, just decompress it with your favorite compression tool Alternately,
you can go to the main Wrox code download page at http://www.wrox.com/dynamic/books/
download.aspx to see the code available for this book and all other Wrox books
ERRATA
We make every effort to ensure that there are no errors in the text or in the code However, no one
is perfect, and mistakes do occur If you fi nd an error in one of our books, like a spelling mistake or
faulty piece of code, we would be very grateful for your feedback By sending in errata you may save
another reader hours of frustration and at the same time you will be helping us provide even higher
quality information
To fi nd the errata page for this book, go to http://www.wrox.com and locate the title using the
Search box or one of the title lists Then, on the book details page, click the Book Errata link On
Trang 27this page you can view all errata that has been submitted for this book and posted by Wrox tors A complete book list including links to each book’s errata is also available at www.wrox.com/ misc-pages/booklist.shtml.
edi-If you don’t spot “your” error on the Book Errata page, go to port.shtml and complete the form there to send us the error you have found We’ll check the information and, if appropriate, post a message to the book’s errata page and fi x the problem in sub-sequent editions of the book
www.wrox.com/contact/techsup-P2P.WROX.COM
For author and peer discussion, join the P2P forums at p2p.wrox.com The forums are a Web-based system for you to post messages relating to Wrox books and related technologies and interact with other readers and technology users The forums offer a subscription feature to e-mail you topics
of interest of your choosing when new posts are made to the forums Wrox authors, editors, other industry experts, and your fellow readers are present on these forums
At http://p2p.wrox.com you will fi nd a number of different forums that will help you not only as you read this book, but also as you develop your own applications To join the forums, just follow these steps:
1. Go to p2p.wrox.com and click the Register link
2. Read the terms of use and click Agree
3. Complete the required information to join as well as any optional information you wish to provide and click Submit
4. You will receive an e-mail with information describing how to verify your account and plete the joining process
com-NOTE You can read messages in the forums without joining P2P but in order to post your own messages, you must join
When you join, you can post new messages and respond to messages other users post You can read messages at any time on the Web If you would like to have new messages from a particular forum e-mailed to you, click the Subscribe to this Forum icon by the forum name in the forum listing
For more information about how to use the Wrox P2P, be sure to read the P2P FAQs for answers to questions about how the forum software works as well as many common questions specifi c to P2P and Wrox books To read the FAQs, click the FAQ link on any P2P page
Trang 29it a system or a framework? Here’s a simple defi nition:
Drupal is an open source software application that manages the content of and builds websites and web applications It can be used to create a web blog, e-commerce store, photo gallery, or social networking website.
That seems straightforward, right? In fact, it sounds a lot like Joomla!, Wordpress, Zope, and many other content management systems (CMSs) So why do people use the term content management platform or content management framework?
The use of the terms platform and framework is an attempt to describe Drupal as a base or a
foundation onto which you build your desired websites or web applications Out of the box, Drupal can be used to instantly create a website with users, articles, blogs, comments, and a forum With a few modules from http://drupal.org it can be transformed into an e-commerce site, a group photo gallery, and more Drupal is also built around a modular core and a strong
1
Trang 30application programming interface (API) so you can quickly and easily extend Drupal to build the site
of your dreams This leads to the following, more technical defi nition:
Drupal is a modular framework written in the PHP scripting language that
contains a CMS, a module system, and an API for rapid development of websites
and web applications.
An example I’ve used often is Lego systems You can purchase the race car Lego set and build
the provided example race car You could also build a luxury car with the same Lego set If you
purchase the rocket ship Lego set, you could combine the two and build a luxury rocket race car
After all, it’s only a set of blocks that you put together using your imagination Drupal is built on
the same idea — it’s a set of modules that you mix and match to build your perfect website or web
application
HISTORY OF DRUPAL
In 2000, Dries Buytaert, a student at the University of Antwerp, needed a method to communicate
with his classmates and friends He built a small web application so that he and his friends could
leave notes for each other After Dries graduated he moved the software over to drop.org and used
it to experiment with new web technologies such as syndication, rating, and distributed
authentica-tion Dries also made the software freely available and licensed it under the GPL It didn’t take long
before the software’s unique modular structure gained notice and attracted a community of
develop-ers and usdevelop-ers
Why is the Name Drupal?
When searching for domain names Dries accidentally misspelled the Dutch word dorp (meaning
vil-lage) as drop Accepting his mistake he registered and started to use the drop.org domain In 2001
the project offi cially adopted the name Drupal The Dutch word for drop is druppel, which changed
to Drupal (pronounced “droo-puhl”) for easier pronunciation
Who is Drupal?
As of this book’s writing, thousands of developers have contributed to the Drupal project Many
have contributed by adding modules and themes, providing support on drupal.org and the Internet
Relay Chat (IRC) channels, and participating at meetups, DrupalCamps, and conferences around
the world Drupal has been recorded as having a developer base in almost every country in the
world It truly is an international open source project
THE DRUPAL COMMUNITY
Drupal is not just software — it’s a community! The Drupal community is one of the largest and
most supportive communities in the open source world In fact, the community is so strong that
it should be a major deciding factor when you’re choosing whether or not to use Drupal Imagine
building a site that requires a certain piece of functionality You found a module that does 90
Trang 31percent of the work but isn’t quite right You can decide to code this functionality on your own or you could work with the current module owner to modify and build in the functionality you need
If you code it yourself, you will have to maintain it in perpetuity, but if you work with the current module owner and the community, you are sharing maintenance with the community The latter result is a more sustainable, longer lasting website and web application
There is no formal agreement with the community The agreement is much more tacit A user viding support one day may expect to receive support another day Likewise, other module develop-ers will maintain their module if you maintain yours, so that everyone’s site can grow and expand
pro-You do not have to be a developer to participate in the community There are groups of designers, users, administrators, and others at all levels working together to build great sites The worst thing you can do when starting out with Drupal is to ignore the community
WHERE IS THE COMMUNITY?
The Drupal community meets online and, better yet, in the real world Here are a few places where you can fi nd them:
Forums on Drupal.org (
Installation, confi guration, migration, translation, upgrading, and module development are just some of the topics covered in the forums Forums are a great place to start when fi rst learning about Drupal and its community
IRC channels
➤
Because it functions in real time, IRC can provide the fastest support, communication, and collaboration IRC can be accessed using IRC software such as Mirc (Windows), Colloquy (Mac OS X), or xChat (Linux) The server is irc.freenode.net and the top three channels are (note that many more exist):
➤ — Hosts high-level development discussions on Drupal core and modules
Once you have used Drupal for a while and are developing modules, use this channel
to collaborate with other developers
You can fi nd more channels and the rules to IRC etiquette at http://drupal.org/irc.Drupal Groups at
➤ http://groups.drupal.org
The Drupal Groups website is the Grand Central station of the Drupal community minded users and developers meet and collaborate on common topics and projects on this website Regional groups from New York City, Paris, Wisconsin, Peru, and Texas schedule regular meetups Topic-based groups such as High Performance and Drupal in Education are great for fi nding others who are in similar situations as you At the time of this writing, there were over 360 active groups Find a local group and get involved!
Trang 32Like-Regional and language-based websites
➤
There are several regional websites that enable users to communicate in their local language
or connect within a geographic region Examples include drupalchina.org, wan.org, drupalitalia.org, and ladrupal.org Language-based communities can be found at http://drupal.org/language-specific-communities, and geographic commu-nities can be found at http://groups.drupal.org/groups
drupaltai-Camps and conferences
➤
Drupalcon brings together developers, designers, users, and other Drupal professionals from all over the world Currently Drupalcon is held once a year in Europe and North America but is quickly expanding to other parts of the world Check http://drupalcon.org for the latest event schedule
Drupalcon may be the biggest Drupal-based conference, but it is not the only one
DrupalCamps, meetups, and other community-organized events happen daily around the world Check http://groups.drupal.org/events for the most recent events
PROFESSIONAL SUPPORT
The Drupal community forums and IRC channels are fi lled with wonderful volunteers working day
and night to help each other build and troubleshoot their websites Although working with the
com-munity is the best way to learn Drupal quickly, you may or may not have your questions answered
or problems fi xed in a timely manner; these channels can require patience Fortunately the
compa-nies of the Drupal community are there to help you
Drupal is a software application that runs on a server platform, meaning a host For this reason
sup-port packages are divided into three general categories: Drupal-only, server-only, Drupal + server
Many hosting companies provide server-only support and do not support the Drupal software,
whereas Drupal professionals may provide Drupal-only support When purchasing support it is best
to ask what is and what is not supported to fi nd the right combination for your project and budget
You can fi nd a list of hosting companies that specialize in Drupal at http://drupal.org/hosting
and a list of companies providing support, consulting, and development at http://drupal.org/
services To help get you started here a few of the more popular options:
Acquia Drupal
➤
Created by the founder of Drupal, Dries Buytaert, this company provides a distribution of Drupal that bundles some of the most popular contributed modules and a custom Acquia module to connect your website to Acquia’s automated monitoring and support network
Because Acquia’s distribution is built on top of Drupal, it is 100 percent compatible with all
of Drupal’s modules, themes, translations and other items, including every exercise in this book In fact, you can use Acquia’s Drupal distribution with this book
Acquia Drupal can be found at http://acquia.com.Hosted Drupal solutions
➤
A hosted Drupal solution is different from a regular host A hosted Drupal solution is a host that installs, confi gures, and fi ne-tunes Drupal for you Often these companies will continu-ally monitor your installation for updates to Drupal and its modules Although Drupal is
Trang 33compatible with many hosts the difference is the specialty in Drupal, which you’ll appreciate when your site goes down in the middle of the night Many other Drupal companies will only host sites they build or help you build But a hosted Drupal solution takes your site, your code, and your system and makes sure it’s rock-solid.
Check out the following hosted Drupal solutions:
Hot Drupal (
➤ http://hotdrupal.com)Workhabit (
➤ http://workhabit.com)Acquia Drupal (
For high availability, high traffi c websites check out Acquia, Four Kitchen’s Pressfl ow Drupal distribution http://pressflow.org, Pantheon, an EC2/Cloud computing distribution (http://getpantheon.com), or Firehose at http://stationindustries.com
You can browse many more hosted Drupal solutions or Drupal-compatible web hosts at
http://drupal.org/hosting.Drupal professionals
➤
The Drupal community is teeming with dedicated professionals that are ready to help you build your website, provide a bit of custom development, or give you advice Companies exist for customers with nearly any budget, from the hobbyist to the Fortune 500 enterprise customer If you choose to hire a professional be sure to inquire about their launch and on-going support options
You can browse a list of Drupal professionals at http://drupal.org/services.Confused? Don’t be The community is there to help you If you have questions simply log into IRC channel #drupal-support, ask your question in the Drupal forums at http://drupal.org/forums, or pick up your phone and talk to one of the many Drupal professionals listed at http://drupal.org/
services
Of course you don’t need to hire a professional to build, support, or even host your website Keep reading to become your own Drupal professional
THE DRUPAL ASSOCIATION
Standing to the side of the community and directed to support and protect your rights as a munity member is the Drupal Association Originally created to purchase hardware to support the drupal.org infrastructure, the Association quickly became a defender of the Drupal trademark from an erroneous claim against it This all community- and volunteer-run nonprofi t works to ensure that Drupal continues to be free and available for everyone to enjoy A few of the activities that the Association performs are:
com-Purchasing infrastructure (servers, etc.) that the drupal.org websites use
Trang 34Redesigning and creating functional upgrades to the drupal.org website
➤
And many other supporting activities!
➤
The Association does not write or maintain the Drupal software or control the content on any
of the drupal.org websites The Drupal project is solely owned and run by the community As
a community-run organization all users are able and encouraged to participate in the Drupal
Association to help Drupal continue as one of the greatest open source projects!
The Drupal Association can be found at http://association.drupal.org
SUMMARY
It should be clear that Drupal is much more than great software; it is also a great community The
Drupal software, built upon a modular architecture, allows you to build great websites with relative
ease And the community of users, designers, and developers, as well as great Drupal companies, are
all there to help you support your website both now and in the future You need no special skills or
invitation to join the Drupal community, just a bit of time to participate in it Drupal is more than
software Drupal is you!
Welcome to the community!
In the next chapter you’ll explore Drupal’s installation process and begin your Drupal journey
EXERCISES
1. What website can you use to connect with other Drupal users, developers, and professionals with
similar interests or located near you?
2. Where can you communicate with other Drupal users or developers in real time over the Internet?
3. What nonprofi t organization helps to protect the Drupal community’s code from GPL copyright
infringement, protects the Drupal trademark, and supports the http://drupal.org infrastructure?
4. Drupal is a great CMS, but developers also love it because of its great ? (three letter
acronym)
Answers to the Exercises can be found in the Appendix
Trang 35WHAT YOU LEARNED IN THIS CHAPTER
in-person at locations around the world Find out more at http://groups.drupal.org.
From the hobbyist to the Fortune 500, companies exist at all levels to give you professional
➤
service
You are now part of the Drupal community!
➤
Trang 37Installing Drupal
WHAT YOU WILL LEARN IN THIS CHAPTER:
Installing a Drupal website
This chapter reviews the installation process of a single Drupal website You will explore the
fi les and folders of Drupal to better understand its structure and to learn what you can and cannot modify You’ll explore Drupal’s system of inheritance and overrides and learn how to install Drupal in a language other than English
After completing this chapter you can continue on in the book or skip over to Chapter 18, which covers advanced Drupal installations Chapter 18 covers installing multiple websites with a single download of Drupal, sharing users between multiple Drupal websites, explores the settings.php fi le, and how to use CVS to simplify updates to your Drupal website
2
Trang 38GETTING STARTED WITH DRUPAL
The fi rst step to getting started with Drupal is to make sure that you meet all of the requirements
Drupal 7 requires the following:
Web server: Apache 1.3/2.x or IIS 6+
If you are using a web host that advertises compatibility with Drupal, most of these are likely already
set up Be aware however that many hosts use PHP 4 by default and not PHP 5 Often a quick call to
their support line is all that is needed to get them to switch your account over to PHP 5
To use Drupal locally on your computer you will need to install these items separately I highly
recommend the XAMPP software for Windows (http://apachefriends.org) or the Mac OS X
equivalent, MAMP (http://mamp.info) These free software packages provide everything you need
in a single download This chapter and the remainder of the book will assume that you are using
XAMPP or MAMP for your Drupal website The chapters and exercises will work the same if you
choose to use a web host instead
Another option that is great for evaluating Drupal is Acquia’s DAMP stack installer (DAMP =
Drupal, Apache, MySQL, PHP) Discussed later in this chapter Acquia’s stack installer provides a
ready-to-go Acquia Drupal website with only a few clicks You may use the Acquia Drupal
distribu-tion to follow along in this book
INSTALLING A SINGLE DRUPAL WEBSITE
You’ll start with a generic installation of Drupal and then take a look at each step and explore how it
all works To begin you need to have a database as well as a username and password with access to
this database If you are working with XAMMP or MAMP, you can use the included phpMyAdmin
application to create the database as well as a username and password phpMyAdmin is a popular
open source application for managing the databases and users of a MySQL server If you are using a
web host, consult their documentation to determine how to create these items
The following set of activities will walk you through creating a database and a username/password
for use with Drupal If your host has supplied you with these items you may skip ahead
Trang 39Creating a Database using phpMyAdmin
2. Login to phpMyAdmin using the credentials provided with your XAMPP/MAMP installation
3. Click Databases from the front menu
4. At the bottom of the Database page type “drupal” into the Create new database form then click
Create as shown in Figure 2-1
FIGURE 2-1
How It Works
The phpMyAdmin application makes it easy to create a new database on a MySQL database server If
you created your database from a tool provided by your web host or if your web host simply gave you
the name of a database the result is the same as creating one with phpMyAdmin You only need a few
items in order to install Drupal
This exercise walks you through creating a username and password for Drupal
1. Navigate back to the front page of phpMyAdmin, then click Privileges
2. On the Privileges page click “Add a new user” near the middle of the page, shown in Figure 2-2
3. Fill in a username and password, as shown in Figure 2-3, then
near the bottom right of the screen click Go
Do not assign permissions on this page The permissions listed on this page are global permissions and will apply to all databases
FIGURE 2-2
Trang 40FIGURE 2-3
4. On the resulting page, the user’s property page, fi nd the Database-specifi c privileges form in the
middle of the page and choose Drupal from the drop-down menu as shown in Figure 2-4
FIGURE 2-4
5. Select the following permissions, as shown in Figure 2-5, SELECT, INSERT, UPDATE, DELETE,
CREATE, ALTER, INDEX, DROP, CREATE TEMPORARY TABLES, and LOCK TABLES, then
In the previous exercise you created a database and in this exercise you created a user account with
access to that database Web hosts often combine these two actions using the same name for the user
and the database but it is important to understand that these are separate items A user may have access
to multiple databases and multiple users may be able to access a single database