Building Websites with Plone an In-Depth and Comprehensive Guide to the Plone Content Management System
Total Page:16
File Type:pdf, Size:1020Kb
Building Websites with Plone An in-depth and comprehensive guide to the Plone content management system Cameron Cooper Building Websites with Plone An in-depth and comprehensive guide to the Plone content management system Copyright © 2004 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, Packt Publishing, nor its dealers or distributors will be held liable for any damages caused or alleged to be caused either directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First edition: November 2004 Published by Packt Publishing Ltd. 32 Lincoln Road Olton Birmingham, B27 6PA, UK. ISBN 1-904811-02-7 www.packtpub.com Cover Design by www.visionwt.com Credits Author Layout* Cameron Cooper Ashutosh Pande Technical Reviewers Indexers* Godefroid Chapelle Niranjan Jahagirdar Brent Hendricks Ashutosh Pande Dmitry Makovey Jason Wilson Proofreader Chris Smith Commissioning Editor Louay Fatoohi Cover Designer Helen Wood Technical Editors* Niranjan Jahagirdar Nanda Padmanabhan Ashutosh Pande * Services provided by www.editorialindia.com About the Author J. Cameron Cooper is a Plone developer based in Houston, Texas. He works on the Connexions Project at Rice University (http://cnx.rice.edu/) and at Enfold Systems LLC (http://enfoldsystems.com/), in the company of many of the founders and bright lights of Plone development. He has contributed several facilities to Plone, as well as a number of independent Products. Cameron holds degrees in Computer Science and History from Rice University, where he learned the underpinnings of programming, and has experience in other web development technologies— especially Java—from other efforts. But Python, Zope, and Plone always seemed like a different and better way to do things. He will often grouse about being just a bit too young to have capitalized on the dot-com phenomenon, though he did manage to snag enough to pay his way through university. But he is very glad to be in the midst of the Open Source phenomenon, even if it isn't quite so lucrative. Cameron likes to keep himself too busy for his own good, with such projects as writing this book. He also enjoys playing with his dog, being with family and friends, and usually reads a little Shakespeare once a year. When I first encountered the World Wide Web, frames were brand new and I was very proud of creating a website that used them. But the magic behind creating what we know today as web applications always seemed a bit mysterious. And even when it was not mysterious it was arcane. But that all changed when I was introduced to Zope (by Alan Runyan, one of the eventual founders of Plone) just after its public release. Zope made it seem like everything else had missed the point of web application development. Sure, there are some dark corners out there, and the famous “Z-shaped learning curve”, but Zope was wonderfully unlike anything out there at the time. And still is. Several years later, Plone followed that same path, and is now one of the main drivers of Zope and open source in general. And I'm terribly pleased with the small part I've played in that. I wrote this book to help people of all skill levels, but especially new users, get into Plone as well; I hope that what I learned by helping out on the Plone users list makes this book a good resource. If you have any questions, I'm still on the list along with a bunch of other very helpful people. This book is intended not just as a reference, but as a guide to understanding Plone at a fundamental level. Plone as a system is not much like anything else out there, and even if it weren't so unique, I think there's a whole lot more to be gained by understanding than just mastering a few basic skills. I would like readers to come away from this book with a good mental model of Plone, well adapted to solving the wide variety of problems that will inevitably accompany the wide variety of potential Plone sites. But most readers will probably come away with a bit of mental overload, at least the first time; just remember to stick with it and to learn by doing: experience is always the best teacher. This book would not have been possible without a lot of other people. The developers of Zope, CMF, Plone, and related projects are to be congratulated for creating a great and growing stack of software. I also owe no small debt to the many people on the Zope and Plone lists who educated me as I helped them. I also would be remiss without thanking my editors, especially Louay Fatoohi, for the opportunity to write this book, and for the patience and encouragement to get it done. The reviewers for this book are in no small measure responsible for its ultimate quality; any lack thereof you can lay at the feet of the author. This book would also not have been feasible without the kind cooperation of Brent Hendricks and the rest of the people at Connexions Project; Alan Runyan at Enfold Systems; and Phil Bedient and Jude Benavides of the Rice Hydrology Department. My writing often made for some late nights and creative hours. I must also thank my parents, Jim and Pam Cooper for their support, material and otherwise, even though, as my mom says, she has no idea what I'm writing about. And no, I don't know if anyone would consider this book the equivalent to a Masters thesis. Thanks also to Aaron Martz for providing me access to his computer (and knowledge) on a number of sporadic and probably inconvenient occasions. And I must mention Anna and Cory, who were endlessly enthusiastic about the prospect of getting a dedication. (There's an awful lot of people who deserve a dedication; I would have to write an awful lot to get to them all.) My fun-loving dog Mozi is also to be thanked for dealing with so many late nights by herself. She hasn't complained, but I'll do my best to make it up to her anyway. This book is dedicated to my grandfather, Neil Cooper, who I wish could have seen it in print. If I am ever half so good a man as he, I will count myself lucky. About the Reviewers Godefroid Chapelle Godefroid Chapelle is a software engineer with more than 10 years of industry experience. He manages BubbleNet (http://www.bubblenet.be/) at Louvain-la-Neuve, Belgium. BubbleNet has worked with Zope for more than five years. Godefroid is engaged in community work since June 2002. He has committed code to Plone, Archetypes, Zope 2, and Zope 3. He is part of the i18n (internationalization) team of Plone. Brent Hendricks Brent Hendricks has been an active free/Open Source software advocate and contributor over the last decade. Although his degrees are in Electrical Engineering from Michigan State University and Rice University, he's not so much a hardware guy as a software guy with a hardware candy- coating. He currently works for the Connexions Project (http://cnx.rice.edu/), a collaborative Open Content repository of educational materials at Rice. On different days his titles range from Chief System Architect to Lead Developer to guy-who- makes-things-work. In actuality he's just happy to be making a career developing with fun, exciting technologies like Python, XML, and of course, Plone. Dmitry Makovey Dmitry Makovey started as a Pascal programmer in 1992 and slowly developed into an ASM programmer with conversion into C++, diverging into Perl & PHP, and finally Python. He has worked as both programmer and system administrator for over 10 years, working almost exclusively with Open Source products. He is currently Web Systems Administrator in Athabasca University, working on systems integration, which includes Plone as the CMS part of the puzzle. He has been 'doing' Plone for about two years now, covering all the aspects—installation, customization, and development of new content types. He maintains his own Plone-based product CMFSyllabus along with a couple of University in-house products. Jason Wilson James Wilson is an avid computer user running multiple operating systems. He got started on Plone when the company he works for wanted to utilize a popular content-management system that had a large user help section. In his free time he plays video games and lots of soccer. The season before last he won his division and scored some really cool shirts. He also enjoys watching movies and has a fairly extensive collection. Table of Contents Chapter 1: Introducing Plone 5 What Is Plone? 5 Plone Hierarchy 6 Operating System 6 Python 7 Zope 7 CMF 8 The Web 9 Content Management with Plone 9 Features 9 The Plone Community 11 Users 11 Developers 12 Plone License 13 Summary 13 Chapter 2: Installing and Running Plone 15 System Requirements 15 Server 15 Clients 16 Installing the Software 17 New Installations 17 Windows Installer 17 Mac Installer 21 Linux and BSD Packages 24 From Scratch 25 Running Plone 26 Linux and Unix 26 Command Line 26 Service 27 Windows 27 Plone Controller 27 Service 30 Mac OS X 30 Adding a Plone Site 30 Table of Contents Upgrading