CHAPTER 1
Introducing Plone

Plone is a content management system (CMS)—a platform that lets you build content-rich sites very quickly; it is built on top of Zope, a powerful web application server written in Python (see Figure 1-1). Plone is open source software licensed under the General Public License (GPL), which ensures freedom to users as well as developers. Most importantly, Plone is a user-friendly, powerful solution that lets you add and edit any kind of content through the Web, produces navigation and searches for that content, and applies security and workflow to that content.

Plone enables you to put together almost any web site and easily update it. It is easily customizable and extensible; there are many add-on products you can integrate into your site to add more features and meet almost any kind of need. In other words, using Plone lets you gain a competitive advantage; plus, it is free and open source, so that you can download and install it on your computer and start building and customizing your application for free. You can examine any aspect of Plone's code and alter it to fit your application. There are no licensing fees to pay, there is no license that will expire, and all the code is visible.

By using Plone, you will understand how its architecture works, and then you will also discover the power of this system. So, let's start our journey, beginning with an overview of the way we can build web sites, the features that Plone provides, some history, and a glance into the big world of Plone and its community.

Images

Figure 1-1. The relationship among Plone, Zope, and Python: Plone is built on top of Zope, which is written in Python.

What Is a Content Management System?

With the term content management system, we usually refer to a software application used to create, edit, manage, and publish content in a consistently organized way. But let's break the term down into smaller parts for a deeper explanation.

What do we mean by content? Content is a unit of data with some extra information attached to it. That piece of data could be a web page, information about an upcoming event, a Microsoft Word or PDF file, an image, a movie clip, or any piece of data that has meaning to the organization deploying the system.

All these items are called content and they all share similar attributes, such as the need to be added or edited by certain users and to be published in various ways. The system controls these attributes, following the type of workflow you chose, in accordance with the logic defined by the organization's business rules for managing content.

With the ubiquity of the Web, many CMSs are now classified as web CMSs, either because they have a web-based interface or because they focus on a web-based delivery system over the Internet or an intranet. Plone provides a web management interface and web-based delivery system.

The History of Web Development and CMSs

The Internet was first proposed in 1962; the idea was to create a global network of computers for sharing information and data. The feature that characterized the Web among other means of communication was the ability to link pages together using hyperlinks. We needed a way to collect, share, and show information, so web sites came to life.

At first, creating a web site meant using a simple markup language, called HTML, that included some formatting options and the ability to link pages together using hyperlinks. So, at this time, we had to write the HTML code from scratch for every page of our web sites, manually creating links among pages for managing content and allowing visitors to surf through it.

With the passing of time, HTML became more complex and flexible. But still, building a web site was almost impossible for nontechnicians—you had to know the language and its behavior very well. With the advent of Cascading Style Sheets (CSS), we finally achieved the ability to separate the content of pages from their looks—but again, we had to know how to write CSS.

One of the advantages a CMS gives you is the ability to build web pages through a user-friendly interface, without having to write any HTML or manage the layout.

What a CMS System Gives You

Although it's not the only advantage of a CMS, the most obvious is the ability to coordinate a web site easily. Take a situation where one person, a webmaster, coordinates a web site—either an intranet or an external site. Contents come from users in various formats, and the webmaster turns them into usable web pages by converting them to Hypertext Markup Language (HTML). If a user wants to change those pages, then he needs to send his changes to the webmaster, who takes care of changing the HTML code, and so on.

This presents many problems for an organization, the biggest being that all content flows through one person, creating an obvious bottleneck. That one person can do only so much work, and if he is sick or leaves the company, a great deal of productivity is lost in finding a replacement. The publishing process can be quite frustrating as e-mails fly between the webmaster and the user trying to get content published.

What is needed is a system that does the following:

  • Separates the content of a page from its presentation: If the actual content is separated from the presentation method, then the content author doesn't need to know any HTML or how the page is delivered. In fact, one piece of content could have many different templates applied to it, including formats other than HTML, such as Portable Document Format (PDF) or Scalable Vector Graphics (SVG). Thus, if you want to change the look and feel of the site, you only have to change the template file, rather than all the content.
  • Allows certain users to add and edit content: If specified users can add and edit content easily, then there is no need to send content to the webmaster or web team. Instead, the user who wants to create a page can do so and edit it as much as necessary.
  • Applies rules regarding who can publish what and when: Your organization might not want just anybody publishing content on your web site. For example, people in marketing should be able to publish in the press release area of the site, but not the engineering section.
  • Can apply business rules to content: If a person from marketing creates a press release, somebody in legal might need to review that document. In this case, the document will be passed through a review process that ensures it won't go live until reviews are done.
  • Can search and index information intelligently: Since the CMS can keep track of structured metadata about the content (such as author's name, publication date, modification dates, categories, and so on), it can produce listings of content by author, recent content, and so on. It can also provide searching capabilities that are much smarter and more useful than just a simple text search.

These are all aspects and advantages that a CMS provides. Although this example lists advantages that are more significant for large organizations, groups of all levels benefit from this approach.

The key factor of any CMS is that it provides a clear separation of the various elements in it: security, workflow, templates, and so on. For example, as we have already mentioned, the templates presenting an item are separated from the content. This allows you to easily modify the presentation.

So, Plone is a CMS, but it isn't just a simple CMS, it is a great deal more! Let's discuss why.

Who Needs Plone?

In the 21st century, a company without a web site is unthinkable, and many companies and organizations have more than one. As we have already mentioned, whether it is an external site for communicating with clients, an intranet for employees to use, or an e-commerce or e-learning site, all web sites have a common problem: how to manage content. This is a challenge that can often cost organizations large amounts of time and effort. Producing a powerful yet flexible system for these sites that meets ever-changing requirements while growing to meet your company's emerging needs isn't easy. This is what Plone does.

No matter what the requirements for your web site or the amount of content or users, Plone is a powerful and flexible solution for managing and updating a site. Being open source software, Plone already has a large user base and legions of developers, usability experts, translators, technical writers, and graphic designers who are able to work on it. By choosing Plone, you are not locked into one company; rather, many companies offer different Plone services all around the world.

Is there a better warranty than a successful case study? Many important and famous companies have chosen Plone to build and manage their web sites; some of them are easily recognizable because of their look, and some of them aren't. The following is just a small sample of the diverse range of sites:

Let's summarize the particulars of Plone, which will help you to understand why you would want to choose Plone for your projects.

Packaging

Plone maintains installers for Windows, Linux, and Mac (we will talk about installation in Chapter 2). Other third-party products and add-ons also come with the installers. Maintaining quality releases of these products makes installation and management easy. Also, each new release maintains migration paths and updates so that your Plone site will keep working and stay up to date.

Internationalization

The whole Plone user interface is translated into more than 35 languages, including Chinese, Japanese, Korean, and even right-to-left languages such as Arabic and Hebrew, with ease. Inserting your own translation is easy (see the "Managing Language Settings" section of Chapter 4).

Usability

Plone offers an excellent user experience that provides high levels of usability and accessibility. This isn't just a matter of presenting pretty HTML, but instead goes to the core of Plone. Plone provides an interface that is compatible with industry and government standards, and it meets or exceeds the US government Section 508 and the W3C's WAI-AA standards. This allows sites built with Plone to be used by people with visual disabilities. In addition, this provides the unexpected but related benefit that your page may index better in search engines such as Google—and you know, search engine optimization (SEO) is important for almost any kind of web site.

Easy Theming

Plone separates the content from the actual templates, or skins, used to present it. The skins are written in an excellent HTML templating system, Zope Page Templates, and a large amount of CSS is provided. With little knowledge of Plone, you can apply multiple skins, achieve a variety of looks, and totally customize your web site's appearance.

Registration and Personalization

Plone features a complete user registration system. On a Plone site, users register using their own username and password. The site administrator can add and manage users through the Plone user interface, and each user can create and modify a personal profile and dashboard, and manage personal preferences. In addition, with add-ons, you can use information you already have about users, coming from many places, such as relational databases, Lightweight Directory Access Protocol (LDAP), Active Directory, and more.

Workflow and Security

Workflow controls the logic of processing content through the site. You can configure this logic through the Web using graphical tools. Site administrators can make sites as complex or as simple as they would like; for example, it is possible to add notification capabilities, such as sending e-mails or instant messages to users. Chapter 7 covers workflow in great detail. For every item of content in a Plone site, you can set up access control lists to decide who has access to that item and how users will be able to interact with it. Will they be able to edit it, view it, or comment on it? All this is configurable through the Web.

Extensibility

Since Plone is open source software, it can be easily altered. You can change and configure almost any aspect of Plone to suit your needs. Countless packages and tools for Plone provide a wide array of options for smaller sites and for large-scale enterprises. Repositories of free add-ons for Plone are available at http://plone.org. With development tools such as Archetypes, you can generate and alter Plone code easily through the Web or using Unified Modeling Language (UML) tools.

Content Customization

Users of a Plone site can add every kind of content: there are no limits or constrains on data. Plone developers can create their own content types so that almost any type of content can be managed; the only limit is your own imagination.

Documentation

The Plone project maintains documentation, including this book, which is published under the Creative Commons license. The best starting place for the community documentation is http://plone.org/documentation. Many teams of users and developers all over the world have provided documentation in languages other than English as well.

Reliability, Growth, and the CMS Future

Hundreds of developers are involved to some degree in the Plone project around the world; they work every day to improve the features of the software and to quickly solve any bugs that arise.

Many CMSs have been born in the past several years, but many of them have already disappeared. Plone, on the other hand, has been around for over seven years. It has grown, and so has its community and the number of users around the world. If you are working with Plone, you can always find a Plone developer online who is willing and able to help you. And this should be increasingly true in the future as Plone continues to grow and mature.

The History and Origins of Plone

Plone was created by Alan Runyan, Alexander Limi, and Vidar Andersen, and the first version was released in 2001. The history of Plone is tied with the application server Zope and the development of the content management framework (CMF) on which the CMS is built. Since the first distribution, Plone grew quickly, its community started to take form, and the project received many new add-on products from its users.

As the community began to grow, some important events were organized, like the first annual Plone Conference (2003), which is still running today. Sprints and other events were (and are still) held in different parts of the world to gather Plone developers to work together to improve the software and discuss the future of the community.

In 2004, the Plone Foundation was created, an organization that has ownership rights over the Plone code base, trademarks, and domain names; and that manages the development, marketing, and protection of Plone.

Zope and the CMF

To understand Plone, you have to understand Zope and its CMF as the underlying architecture. For this reason, we will explain these two items and how they integrate with Plone in this section.

Zope is a powerful and flexible open source web application server developed by Zope Corporation (www.zope.org). Originally, Zope was developed as a stand-alone CMS, but over time it didn't satisfy the needs of its users. Then Zope Corporation developed the CMF as an open source project. The CMF provides developers with the tools necessary to create complex CMSs; it enables workflow, provides site skinning, and offers other functions.

The CMF is a framework for a system; in other words, it provides developers with the tools for building a product, rather than just providing an out-of-the-box system that users can use immediately. Plone takes this and many other features and improves upon them in order to provide users with a high-quality product. Plone is a layer on top of the CMF, which is an application running on top of Zope. Understanding the CMF is the key to understanding Plone. Most administration functions require the use of Zope's administration interface, and developing Plone requires an understanding of Zope and its objects.

This book doesn't go into depth about pure Zope applications; rather, it gives you enough information to complete tasks in Plone and directions on where to widen your knowledge of the CMF. Just reading this book will give you enough information to customize and modify almost anything you want in Plone.

Both Zope and the CMF are key technologies that Plone needs; without them, Plone wouldn't exist. The Plone team owes a great deal of thanks to everyone at Zope Corporation for having the vision to create and then offer both Zope and the CMF as open source.

Python

Zope is written in Python, a powerful object-oriented open source programming language comparable to Perl or Tcl. Knowledge of Python isn't required to use Plone or even to do basic administration; however, customizing products and scripting Plone does require some Python.

If you plan to do anything sophisticated with Plone, take a day or two to learn the basics of Python. This will not only allow you to customize Plone substantially, but to familiarize yourself with objects and how they interact in the Plone environment. Teaching you Python is outside the scope of this book; instead, for the most advanced parts, we assume you have a basic knowledge of Python. That fundamental knowledge will be enough to get you through this book and allow you to easily customize the Plone installation.

Fortunately, Python is an easy-to-learn programming language; on average, it takes an experienced programmer a day to become productive in it. New programmers might take a little longer.

If you are installing Plone using the Windows or Mac installers, then the correct version of Python will be included. To download Python as a separate product, for almost any operating system, go to www.python.org.

The Python web site has excellent documentation, especially the tutorial. Also, the following books provide a good overview of Python:

The Plone World

One of the best things about Plone is the community of developers, users, and companies that support and develop it. The Plone community is spread worldwide; it is one of the largest open source teams in the world. Speaking about Plone without mentioning its community doesn't make any sense, because Plone is first and foremost a community.

As soon as you get in touch with Plone, you will realize how big and involved the Plone world is. So, let's give it a glance, to understand why we belong in the community if we use Plone, how to exploit all the advantages of being part of it, and how to contribute to its growth.

The Community

The Plone community, of course, is not only the Plone core developers. It involves users, designers, contributors, sponsors, and companies. Many core contributors are friends in real life, and the community members have the chance to personally meet during the various events that are held over the year.

In brief, what does the community do for us? Besides working on the core of the software, many contributors provide end users with third-party add-on products; many developers and end users work every day to answer questions on mailing lists, produce quality documentation and translations for non-English speakers, report bugs, and discuss the future of Plone.

The Foundation

As we have mentioned before, the Plone Foundation was formed in May 2004 to serve as a supporting organization for Plone. The goals and objectives of this organization, as given on the Plone official site (http://plone.org/foundation), are listed here:

  • Provide clear, neutral, and sustainable ownership of code, trademarks, and domains.
  • Provide a decision-making structure for essential community activities.
  • Ensure that, as Plone grows, it remains a level playing field.
  • Act as the voice of Plone for official announcements, press releases, and other communications.
  • Help create promotional material, interviews, speeches, and other activities to market Plone.

The Plone Foundation is governed by an elected board of directors (http://plone.org/foundation/about/team/FoundationBoard). You can see a list of all the members of the foundation at http://plone.org/foundation/members, where you can also fill out a new membership application if you have significantly contributed to the Plone community.

The Framework Team

The Framework Team mainly works for the future of Plone; it reviews and suggests features for inclusion in new releases; it is responsible for feature evaluation and general guidance on architectural decisions. The existence of such a group is a further demonstration of the constant effort to improve and grow the Plone project.

Getting Involved

Although Plone has an impressive list of features, its list of "wants" is even more impressive. For this reason, the project is always on the lookout for new people willing to contribute to it.

Fortunately, since Plone is focused on the end user, there is a need for a very broad spectrum of disciplines. Volunteers in a range of areas—not just coders or web developers—are welcomed. Plone needs user interface developers, usability experts, graphic designers, translators, writers, and testers. You can find the current development status on the Plone web site at http://plone.org/development, and the best way to get involved is to join the mailing lists or the developers on an Internet Relay Chat (IRC) channel.

Plone.org and Plone.net

As you may have already noticed, the official Plone site (http://plone.org) is a good starting point for anything you are looking for. First, you can download Plone (http://plone.org/products/plone)! You can navigate through almost 1,000 add-on products that you can download and install to extend the features of your site, and you can refer to hundreds of tutorials, how-tos, and FAQs to stay updated about news and events in the Plone world, inquire about the current development status, and discover ways you can contribute and sponsor.

In contrast to Plone.org, Plone.net is dedicated to Plone providers. As mentioned on the site, it "showcases Plone websites, consultants, hosting providers, case studies, and media coverage, in order to promote the use and adoption of Plone." Navigating Plone.net, you'll have the chance to see many of the Plone sites that populate the Web, together with the companies and organizations that have chosen this CMS for their projects, and you'll have the chance to get in touch with the Plone providers that work all around the world.

Summary

Plone lets you create and manage a web site with no special technical background; it is also a good groupware collaboration tool; its flexibility lets you choose a workflow system to control access to and permissions on your content. Using Plone as a development platform, developers will be able to customize every part of the software.

In this first chapter, you started your journey toward discovering and understanding this powerful open source tool. You began to see what a CMS is and why Plone is a good one, and you got an introduction to its history, its structure, and what lies behind it. You learned that since Plone is a mature open source project, you can enter a big and enthusiastic community where you will always find help and support. You were given a quick overview of the Plone world, including how you can get involved in the project.

You can now go on with your journey, starting with the installation of the software on your operating system (Chapter 2). Once Plone is correctly installed on your system, you will start working with it. In Chapter 3 you'll see how to create and manage content, and in Chapter 4 you'll see how to administer a Plone site.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.114.38