this print for reference only—size & color not accurate spine = 1.013" 536 page count Kevin Potts, Robert Sable, and Nathan Smith with Mary Fredborg & Cody Lindley In this book you will: Learn to develop websites quickly using Textpattern’s intuitive templating language. Learn to use Textpattern to build e-commerce websites, including customer feedback and reviews. Learn to use Textpattern and web standards to create blogs and community sites with dynamically driven content. Learn how to integrate your own style of coding and design with a content management system that catalyses, rather than hinders, your creativity. Learn how to use PHP to create Textpattern plugins, adding custom functionality and features to uniquely suit the needs of your website. T extpattern is a powerful, PHP-based content man- agement system that allows you to build pretty much any kind of data-driven website quickly and easily. It is very popular among designers and developers alike, and has an active community of users. Sound good? Well, you’re in luck—the book you’re holding now shows you how to use every aspect of Textpattern to a professional standard. Textpattern (and this book) appeals to two main groups of people: Firstly, the web designer who has mastered the funda- mentals of XHTML and CSS and wants to create sites that have fresh and dynamically changing information, but is not familiar with server-side coding and databases. Never fear—Textpattern enables you to integrate your XHTML knowledge, inserting dynamic aspects into your already solid site design. Secondly, PHP developers who are looking for a con- tent management system upon which to build additional functionality and want a hand with the design aspects of their site. Again, Textpattern fills in those holes. The book leaves no stone unturned. It starts by introduc- ing you to Textpattern and guiding you through its very simple installation process. After the core features of the administrative interface are explored, the book dives into building sites with TXP, using CSS, articles, forms, pages, and more to create fully customized templates. Development follows next, looking at installing plugins and building your own custom plugins to further enhance your Textpattern-based site. The book concludes with several case studies to provide ideas and inspiration, including a weblog, an e-commerce site, and an online review directory. Potts Sable Smith CYAN YELLOW MAGENTA BLACK TEXTPATTERN SOLUTIONS MASTER TEXTPATTERN, THE POWERFUL PHP-BASED, OPEN SOURCE CONTENT MANAGEMENT SYSTEM CREATE SEVERAL DIFFERENT TYPES OF WEBSITES EASILY, INCLUDING BLOGS, E-COMMERCE SITES, AND ONLINE REVIEW DIRECTORIES COME TO GRIPS WITH DEVELOPMENT AND DESIGN, FROM CREATING PLUGINS TO CUSTOMIZING LOOK AND FEEL US $39.99 Mac/PC compatible www.friendsofed.com ISBN-13: 978-1-59059-832-0 ISBN-10: 1-59059-832-6 9 781590 598320 5 3 9 9 9 SHE LVING C ATEGORY 1. WEB DEVELOPMENT 2. WEB DESIGN Also Available F O R E W O R D B Y J O N H I C K S Textpattern is built for web designers; Textpattern Solutions will help them make the most of it. —ALEX SHIELS TEXTPATTERN LEAD DEVELOPER AND ARCHITECT “ ” Textpattern Solutions: PHP-Based Content Management Made Easy Kevin Potts, Robert Sable, and Nathan Smith with Mary Fredborg and Cody Lindley 8326FM.qxd 4/23/07 2:23 PM Page i Textpattern Solutions: PHP-Based Content Management Made Easy C opyright © 2007 by Kevin Potts, Robert Sable, Nathan Smith, Mary Fredborg, Cody Lindley All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, e lectronic or mechanical, including photocopying, recording, or by any information storage or retrieval s ystem, without the prior written permission of the copyright owner and the publisher. I SBN-13 (pbk): 978-1-59059-832-0 ISBN-10 (pbk): 1-59059-832-6 Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1 T rademarked 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. D istributed to the book trade worldwide by Springer-Verlag New Yo rk, 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 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 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 freely available to readers at www.friendsofed.com in the Downloads section. Credits Lead Editors Chris Mills, Matthew Moodie Technical Reviewer Mary Fredborg Editorial Board Steve Anglin, Ewan Buckingham, Gary Cornell, Jason Gilmore, Jonathan Gennick, Jonathan Hassell, James Huddleston, Chris Mills, Matthew Moodie, Jeff Pepper, Dominic Shakeshaft, Matt Wade Project Manager Richard Dal Porto Copy Edit Manager Nicole Flores Copy Editor Nancy Sixsmith Assistant Production Director Kari Brooks-Copony Production Editor Ellie Fountain Compositors Dina Quan and Darryl Keck Artist April Milne Proofreaders Paulette McGee and Elizabeth Berry Indexer Julie Grady Interior and Cover Designer Kurt Krames Manufacturing Director Tom Debolski 8326FM.qxd 4/23/07 2:23 PM Page ii This book is dedicated to my beautiful wife and children, who have often wondered why the heck writing a book takes so darn long. They have offered nothing but the kindest support and blessed respite, and despite my agonizing over formatting inconsistencies and code accuracy, were there at the end of the day to remind me of the most important things in my life. To my children: I’m sorry the plot and characters do not make for engaging bedtime reading. (I tried to work in some fire trucks and princesses, but the editors said it “wasn’t relevant.”) To my wife: you could not have been a more patient, loving partner. I love you all very much. Kevin Potts I would like to dedicate this book to my beautiful wife, Joci. I never imagined that I would meet someone so caring and supportive to spend my life with. Thank you, Joci, for everything that you are and everything that you make me. I love you. Rob Sable I would like to dedicate this book to my wife, who has stood by me throughout my meandering pursuit of job satisfaction and outlets for creativity. Thank you for listening to my ranting about funky code acronyms and encouraging me even when I cannot seem to make sense of it all. I love you more than words can express. You are the world to me. Nathan Smith 8326FM.qxd 4/23/07 2:23 PM Page iii CONTENTS AT A GLANCE Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv PART ONE: GETTING STARTED Chapter 1: Setting the Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Chapter 2: Installing Textpattern . . . . . . . . . . . . . . . . . . . . . . . . . . 19 PART TWO: THE TEXTPATTERN INTERFACE Chapter 3: Site Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Chapter 4: Basic Content Manipulation . . . . . . . . . . . . . . . . . . . . 95 Chapter 5: Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 PART THREE: CUSTOMIZING TEXTPATTERN Chapter 6: The Textpattern Model . . . . . . . . . . . . . . . . . . . . . . . . 151 Chapter 7: Creating the Content: Categories and Articles . . . . . 161 Chapter 8: Customizing the Presentation: Sections, Pages, Forms, and Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 8326FM.qxd 4/23/07 2:23 PM Page iv Chapter 9: Tying Content and Structure Together . . . . . . . . . . . . 207 Chapter 10: Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Chapter 11: Beyond the Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 PART FOUR: EXTENDING TEXTPATTERN Chapter 12: Custom Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Chapter 13: Using Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 Chapter 14: Writing Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 PART FIVE: TEXTPATTERN SITE EXAMPLES Chapter 15: Multiauthor Weblog . . . . . . . . . . . . . . . . . . . . . . . . . 313 Chapter 16: Case Study: PopularWeddingFavors.com . . . . . . . . . 337 Chapter 17: Case Study: BoiseCityEats.com . . . . . . . . . . . . . . . . . 359 PART SIX: APPENDIXES Appendix A: Tag Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 Appendix B: Plugin Developer Resources . . . . . . . . . . . . . . . . . . . 473 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 8326FM.qxd 4/23/07 2:23 PM Page v 8326FM.qxd 4/23/07 2:23 PM Page vi CONTENTS Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv PART ONE: GETTING STARTED Chapter 1: Setting the Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 What is Textpattern? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 A noble history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 How does Textpattern work?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 LAMP platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Licensing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Practically speaking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 An active community . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Textpattern FAQs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Textpattern forum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Textpattern resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 T extBook International . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 TXP Magazine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Textgarden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 T extplates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Key bloggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8326FM.qxd 4/23/07 2:23 PM Page vii Chapter 2: Installing Textpattern . . . . . . . . . . . . . . . . . . . . . . . . . . 19 System requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 C lean URL support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 What are clean URLs? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Checking for clean URL support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Choosing a host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Which version of Textpattern? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Acquiring Textpattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Downloading an official release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Local development on Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Installing XAMPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Using XAMPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 MySQL setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Initial preparations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Installing Textpattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Local development on Mac OS X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Installing MAMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Creating a MySQL database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Installing Textpattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Hosted environment setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Database setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 FTP files to host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Install process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Installing Textpattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Checking site preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Checking site diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Preflight checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Messy URLs for testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Advanced topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Textpattern development site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Pulling code from Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 On a PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Subversion on OS X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Installing Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Installing svnX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 PART TWO: THE TEXTPATTERN INTERFACE Chapter 3: Site Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Logging in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Pre-flight check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Preferences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Publish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 CONTENTS viii 8326FM.qxd 4/23/07 2:23 PM Page viii Advanced Preferences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 A dmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 C omments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Custom fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Publish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Manage languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Visitor Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Chapter 4: Basic Content Manipulation . . . . . . . . . . . . . . . . . . . . 95 Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Textile Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Basic Textile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Advanced Textile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Advanced Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Article/Excerpt Markup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Keywords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Article image. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 URL-only title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Recent Articles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Categories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Articles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Images. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Chapter 5: Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 P ages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Tag Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Article Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Article Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Site Navigation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 XML Feeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 File downloads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 All Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 CONTENTS ix 8326FM.qxd 4/23/07 2:23 PM Page ix [...]... expert input that only a core Textpattern developer can provide Cody, Kevin, Rob, and Nathan 8326FM.qxd 4/23/07 2:23 PM Page xxv INTRODUCTION Salutations, brave reader, and welcome to Textpattern Solutions: PHP-Based Content Management Made Easy Since you have this book in hand, it is a safe assumption that you are interested in the content- management system (CMS) called Textpattern Perhaps you have... Kevin Potts, Robert Sable, Nathan Smith, Mary Fredborg, and Cody Lindley have more than filled that need, and you now hold the result! Textpattern Solutions: PHP-Based Content Management Made Easy is an excellent guide, taking you from installation, to advanced uses of Textpattern with global variables, to writing your own plugins There is something here for all levels of users and would-be users to... semantics, and you’ll learn the importance of properly marking up a document based on its meaning We’ll discuss the multiple layers of web development—including the content, structure, presentation, and behavioral layers—and how those four work together within the Textpattern system You’ll understand why Textpattern is explicit in its separation of content and structure, and how those two aspects are eventually... Linux or a Mac Similar to many situations in life, the best way to find a solution is to first define the problem So, let’s evaluate whether Textpattern is right for you The official site defines Textpattern as “A free, flexible, elegant, easy- to-use content management system [CMS] for all kinds of websites, even weblogs.”1 Catchy as it might sound, that bit of prose does not fully encapsulate the... maintenance with Textpattern Learning something new can often be a daunting task, especially when you endeavor to accomplish it alone Hopefully this text will find a ready place on your shelf or desktop, providing simple solutions to otherwise seemingly complicated or obscure situations Each one of this book’s authors has traversed the meandering road of open-source content management, arriving at Textpattern. .. go to install extra third-party plugins, which then enable you to use Textpattern in new and inventive ways If you want to migrate from another publishing platform, such as Blogger or Movable Type, there is even an import function that converts those older posts to a usable Textpattern format Chapter 4 covers the content section of Textpattern Here you are introduced to the text formatting syntax called... 4/23/07 2:23 PM Page xii CONTENTS Chapter 9: Tying Content and Structure Together Building static pages Laying the static page’s foundation Creating the static page content Creating the template for the static page Creating an archive page Creating the section and page Editing the archive template Placing sticky content ... by step, from moving a raw HTML file into the Textpattern system, to outsourcing pieces of code into different forms, to editing those forms with Textpattern tags for pulling in dynamic content In addition, we’ll discuss the fundamentals of pages and sections, the options available for each, and how they work together to produce full templates for housing content At the end of the chapter, you’ll know... how the core building blocks of Textpattern produce different types of content while using the same basic principles Chapter 10 addresses comments, some of the trickier parts of any Textpattern site They tend to be more difficult to control than other parts of a site, but you’ll learn about the numerous options and tags (as well as a virtual library of plugins) that Textpattern provides to customize... 8326FM.qxd 4/23/07 2:23 PM Page xiv CONTENTS Chapter 14: Writing Plugins Before you start Getting started Textpattern plugin template Local workspace setup Local Textpattern setup Plugin loading Basic plugin topics Textpattern plugin template explained . SHIELS TEXTPATTERN LEAD DEVELOPER AND ARCHITECT “ ” Textpattern Solutions: PHP-Based Content Management Made Easy Kevin Potts, Robert Sable, and Nathan Smith. Cody Lindley 8326FM.qxd 4/23/07 2:23 PM Page i Textpattern Solutions: PHP-Based Content Management Made Easy C opyright © 2007 by Kevin Potts, Robert Sable,