Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu đang bị lỗi
File tài liệu này hiện đang bị hỏng, chúng tôi đang cố gắng khắc phục.
Building online communities with drupal, phpBB, and WordPress
Nội dung xem thử
Mô tả chi tiết
Robert T. Douglass, Mike Little,
and Jared W. Smith
Building Online
Communities with
Drupal, phpBB, and
WordPress
5629_FM_final.qxd 11/16/05 4:11 PM Page i
Building Online Communities with Drupal, phpBB, and WordPress
Copyright © 2006 by Robert T. Douglass, Mike Little, and Jared W. Smith
All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording, or by any information storage or retrieval
system, without the prior written permission of the copyright owner and the publisher.
ISBN (pbk): 1-59059-562-9
Printed and bound in the United States of America 987654321
Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence
of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark
owner, with no intention of infringement of the trademark.
Lead Editor: Matt Wade
Technical Reviewers: Steve Potts, James Walker
Editorial Board: Steve Anglin, Dan Appleman, Ewan Buckingham, Gary Cornell, Tony Davis, Jason Gilmore,
Jonathan Hassell, Chris Mills, Dominic Shakeshaft, Jim Sumser
Project Manager: Sofia Marchant
Copy Edit Manager: Nicole LeClerc
Copy Editor: Marilyn Smith
Assistant Production Director: Kari Brooks-Copony
Production Editor: Lori Bring
Compositor: Linda Weidemann
Proofreader: Linda Seifert
Indexer: Rebecca Plunkett
Artist: Kinetic Publishing Services, LLC
Cover Designer: Kurt Krames
Manufacturing Director: Tom Debolski
Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor,
New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail orders-ny@springer-sbm.com, or
visit http://www.springeronline.com.
For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley,
CA 94710. Phone 510-549-5930, fax 510-549-5939, e-mail info@apress.com, or visit http://www.apress.com.
The information in this book is distributed on an “as is” basis, without warranty. Although every precaution
has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to
any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly
by the information contained in this work.
The source code for this book is available to readers at http://www.apress.com in the Source Code section.
5629_FM_final.qxd 11/16/05 4:11 PM Page ii
I’m dedicating my portion of this book to my Aunt Sobeida Linder,
whose inspiring spirit in the face of nearly impossible odds sets an example
we can all admire and try to live up to. She personified the phrase
“live life to the fullest,” as she did exactly that with every day she had,
good days and bad. We miss you tremendously.
Jared Smith
5629_FM_final.qxd 11/16/05 4:11 PM Page iii
5629_FM_final.qxd 11/16/05 4:11 PM Page iv
Contents at a Glance
About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
About the Technical Reviewers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
PART 1 ■ ■ ■ Drupal
■CHAPTER 1 Introducing Drupal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
■CHAPTER 2 Configuring Drupal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
■CHAPTER 3 Using the Drupal Core Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
■CHAPTER 4 Adding Contributed Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
■CHAPTER 5 Adding and Customizing Themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
■CHAPTER 6 Maintaining Your Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
PART 2 ■ ■ ■ phpBB
■CHAPTER 7 Introducing phpBB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
■CHAPTER 8 Installing and Configuring phpBB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
■CHAPTER 9 Touring phpBB’s Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
■CHAPTER 10 Securing and Maintaining phpBB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
■CHAPTER 11 Modifying phpBB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
■CHAPTER 12 Styling phpBB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
PART 3 ■ ■ ■ WordPress
■CHAPTER 13 Introducing WordPress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
■CHAPTER 14 Installing and Configuring WordPress. . . . . . . . . . . . . . . . . . . . . . . . . . 379
■CHAPTER 15 Starting to Blog and Building Your Community . . . . . . . . . . . . . . . . . 401
■CHAPTER 16 Changing the Look of Your Blog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
■CHAPTER 17 Customizing Your Blog’s Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
■CHAPTER 18 Maintaining Your Blog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
■INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 v
5629_FM_final.qxd 11/16/05 4:11 PM Page v
5629_FM_final.qxd 11/16/05 4:11 PM Page vi
Contents
About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
About the Technical Reviewers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
PART 1 ■ ■ ■ Drupal
■CHAPTER 1 Introducing Drupal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
What Is Drupal? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Who Should Use Drupal? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Installing Drupal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Meeting Drupal Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Obtaining Drupal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Setting Up the Database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Setting the Database and Base URLs. . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Accessing the Drupal Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Troubleshooting Installation Problems . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Creating the First User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Creating the files Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Using Other Installation Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Creating Drupal Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Adding a News Story. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Changing the Front Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Touring Drupal’s Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Introducing Themes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Introducing Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Introducing Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Introducing Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Introducing Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Introducing Taxonomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
vii
5629_FM_final.qxd 11/16/05 4:11 PM Page vii
■CHAPTER 2 Configuring Drupal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Configuring Site Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
General Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Error Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Cache Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
File System Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Image Handling Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
RSS Feed Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Date Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
String Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Setting Up and Maintaining User Accounts . . . . . . . . . . . . . . . . . . . . . . . . . 30
Configuring User Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Managing User Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Controlling Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Using Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Using Blocks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Administering Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Adding Blocks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Managing Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Configuring Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Filtering Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Viewing, Searching, and Updating Content . . . . . . . . . . . . . . . . . . . . . 48
Managing Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Configuring Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Managing the Comment Approval Queue . . . . . . . . . . . . . . . . . . . . . . 50
Configuring Themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Enabling Themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Choosing Theme Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Using Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Understanding Vocabularies and Terms. . . . . . . . . . . . . . . . . . . . . . . . 53
Configuring Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Leveraging Categories with Custom URLs . . . . . . . . . . . . . . . . . . . . . 56
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
viii ■CONTENTS
5629_FM_final.qxd 11/16/05 4:11 PM Page viii
■CHAPTER 3 Using the Drupal Core Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Aggregator Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Identifying Feeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Configuring Feeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Viewing Feeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Archive Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Block Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Blog Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Configuring Blogs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Accessing Blogs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
BlogAPI Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Configuring BlogAPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Publishing to Your Site Using BlogAPI. . . . . . . . . . . . . . . . . . . . . . . . . . 66
Book Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Using Book Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Working with the Book Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Viewing Book Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Comment Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Contact Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Using the Personal Contact Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Using the Sitewide Contact Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Drupal Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Using Distributed Authentication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Running a Directory Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Configuring the Drupal Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Filter Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Forum Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Configuring Containers and Forums . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Setting Up Forum Categories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Help Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Legacy Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Locale Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Enabling and Importing Translations . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Translating Strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Exporting Translations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
■CONTENTS ix
5629_FM_final.qxd 11/16/05 4:11 PM Page ix
Menu Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Modifying Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Adding Custom Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Showing Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Adding Menu Links the Easy Way . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Resetting Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Node Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Page and Story Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Path Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Creating Path Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Creating Aliases to Drupal Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Ping Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Poll Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Creating Polls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Administering Polls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Profile Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Creating Custom Profile Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Viewing Profile Listing Pages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Search Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Enabling the Search Box. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Building the Search Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Statistics Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Configuring Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Banning Abusive Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
System Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Taxonomy Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Throttle Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Throttling Modules and Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Configuring Throttle Thresholds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Tracker Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Upload Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Configuring File Uploads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Uploading Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Podcasting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
User Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Watchdog Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
x ■CONTENTS
5629_FM_final.qxd 11/16/05 4:11 PM Page x
■CHAPTER 4 Adding Contributed Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Getting Drupal Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Introducing Some Useful Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Installing Contributed Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
TinyMCE Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Installing the TinyMCE Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Configuring the TinyMCE Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Image Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Installing the Image Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Configuring the Image Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Uploading and Viewing Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Image Assist Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Installing the Image Assist Module . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Configuring the Image Assist Module. . . . . . . . . . . . . . . . . . . . . . . . . 110
Using Image Assist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Flexinode Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Installing the Flexinode Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Adding Custom Node Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Event Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Installing the Event Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Configuring the Event Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Event-Enabling Node Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Viewing Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Exporting Event Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Location Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Installing the Location Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Configuring the Location Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Location-Enabling Node Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Organic Groups Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Installing the Organic Groups Module . . . . . . . . . . . . . . . . . . . . . . . . 131
Activating Group Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Configuring the Organic Groups Module . . . . . . . . . . . . . . . . . . . . . . 132
Configuring Organic Groups Albums. . . . . . . . . . . . . . . . . . . . . . . . . . 134
Creating Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Managing Groups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
■CONTENTS xi
5629_FM_final.qxd 11/16/05 4:11 PM Page xi
Spam Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Detecting Spam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Installing the Spam Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Configuring the Spam Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Managing URL Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Creating Custom Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Using Other Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Database Administration Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Installing the Database Administration Module . . . . . . . . . . . . . . . . 141
Configuring the Database Administration Module . . . . . . . . . . . . . . 141
Using the Database Administration Module . . . . . . . . . . . . . . . . . . . 143
Running Queries and Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Developer Tools (Devel) Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Installing the Devel Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Configuring the Devel Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Viewing Timer and Query Log Information . . . . . . . . . . . . . . . . . . . . 145
Using Developer Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Emptying the Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
■CHAPTER 5 Adding and Customizing Themes . . . . . . . . . . . . . . . . . . . . . . . . . 149
Understanding Themes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Theme Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
How Drupal Finds Themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Installing New Themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Customizing Themes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Introducing Themable Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Using Template Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Overriding Themable Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Adding Custom Regions for Blocks. . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Using CSS for Themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Creating a Custom Favicon.ico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Using Theme-Related Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
xii ■CONTENTS
5629_FM_final.qxd 11/16/05 4:11 PM Page xii
■CHAPTER 6 Maintaining Your Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Scheduling Automated Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Introducing Cron.php. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Calling Cron.php. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Running Multiple Drupal Sites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Directing Requests for Multiple Sites . . . . . . . . . . . . . . . . . . . . . . . . . 190
Creating a sites Subdirectory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Using Site-Specific Modules and Themes . . . . . . . . . . . . . . . . . . . . . 193
Sharing a Database Among Multiple Sites . . . . . . . . . . . . . . . . . . . . 194
Sharing Tables Across Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Making Backups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Making Database Backups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Making File System Backups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Moving Your Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Maintaining a Test Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Creating the test_site Subdirectory . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Creating a Copy of the Site Database. . . . . . . . . . . . . . . . . . . . . . . . . 205
Copying the Files to the test_site directory. . . . . . . . . . . . . . . . . . . . 205
Updating the Test Site’s Configuration Settings . . . . . . . . . . . . . . . . 205
Accessing the Test Site. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Updating Drupal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Tracking Your Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Testing the Update. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Performing the Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Getting Drupal Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
The Drupal Community. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
PART 2 ■ ■ ■ phpBB
■CHAPTER 7 Introducing phpBB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
The Basics of Running Your Own Forums . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Some Forum Administration Lingo . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Organizing Your Forums Logically . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Respecting Your Bread and Butter: Your User Base . . . . . . . . . . . . . 220
Keeping Things Familiar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Keeping Things Fresh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Using a Quality Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
■CONTENTS xiii
5629_FM_final.qxd 11/16/05 4:11 PM Page xiii
Enter phpBB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
The Million-Dollar Question: Why Use phpBB?. . . . . . . . . . . . . . . . . . . . . . 222
phpBB’s Feature Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
End-User Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Administrative Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
phpBB’s Security Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
phpBB’s Customizability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
phpBB’s Scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
What We’ll Accomplish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Looking Toward Olympus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
■CHAPTER 8 Installing and Configuring phpBB . . . . . . . . . . . . . . . . . . . . . . . . 231
Installing phpBB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Meeting phpBB Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Obtaining phpBB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Preparing Your Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Running the Install Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Troubleshooting Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Performing Post-Installation Chores . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Configuring phpBB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Using the phpBB Administration Panel. . . . . . . . . . . . . . . . . . . . . . . . 241
Configuring Basic Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Creating Your Forums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Touring the phpBB 3.0 Installer and Administration Panel . . . . . . . . . . . . 252
Installing phpBB 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Configuring phpBB 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
■CHAPTER 9 Touring phpBB’s Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Reading and Posting to Forums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Using the Forum Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Marking Forums As Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Watching Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Formatting Posts Using BBCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Working with Emoticons (Smilies). . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Making Topics Sticky and Posting Announcements. . . . . . . . . . . . . 270
Attaching Polls to Topics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Editing Posts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
xiv ■CONTENTS
5629_FM_final.qxd 11/16/05 4:11 PM Page xiv