Plone 简介
20 世纪 70 年代末,Apple II 计算机获得成功,其中一个最大的原因并非来自 Apple Computer, Inc. 的产品。相反,第一个电子表格 VisiCalc 是由 Dan Bricklin 和 Bob Frankston 编写的,它帮助推动了 Apple II 的销量。VisiCalc 是一款革命性的产品,而且只能在 Apple 计算机上运行。各地的企业开始购买 Apple 计算机,仅仅是为了能够使用 VisiCalc。
事实证明,Bricklin 和 Frankston 不仅发明了电子表格。他们还发明了杀手级应用——一种使平台如此引人注目的应用程序,人们为了这款产品而采用该平台。每个平台供应商都希望有人为其产品开发出一款杀手级应用,从而推动平台技术的销量,因为越来越多的人想要亲自使用它。在开源世界中,情况并没有太大不同,尽管存在不同的动机。例如,许多人采用 Linux 是为了使用 Apache 或 Python 来与 Zope 协同工作。
开源世界中最新的杀手级应用示例是 Plone,这是一个内容管理系统 (CMS),由 Alexander Limi、Alan Runyan 和 Vidar Andersen 在 Zope 之上编写。近几个月来,Plone 已成为越来越重要的软件,并为 Zope 社区带来了许多人。尽管许多 Plone 用户似乎停留在那个世界中,并没有冒险深入 Zope 服务器,但 Plone 很可能成为 Zope 的杀手级应用。如果属实,这将是一个引人入胜的趋势,因为长期以来,Zope 一直被认为是 Python 语言的杀手级应用。
Plone 是一个简单的 CMS,允许站点管理员向不同的用户授予不同的权限。所有用户都可以阅读公开可用的内容。某些用户被允许输入新内容,而其他用户则被允许将该内容发布给公众。事实上,可用内容和已发布内容之间的区别是 CMS 与普通网站最显著的区别。
与静态网站(文件一旦存在于根文档目录中即可供公众访问)相比,CMS 允许您有选择地公开内容。此外,CMS 允许您撤回以前发布的内容。因此,如果您的网站发布了一篇后来被证明是虚假的新闻报道,您可以将其从公众视野中移除,而无需实际删除任何文件。站点管理员可以随时查看故事的撰写、发布和撤回日志,以及执行每个操作的人员和原因。
Plone 并非旨在成为内容管理系统的终极解决方案。相反,它旨在用于中小型网站,这些网站的管理员希望提供各种有用的功能,偏好友好的用户界面,并且需要一定程度上自定义网站外观和风格的能力。
Plone 本身是作为许多不同的 Zope 产品实现的,其中每个产品实际上都是一个可以多次实例化的对象类。但是,Plone 不是直接在 Zope 中实现的,而是在 Zope 的内容管理框架 (CMF) 中实现的,CMF 是一组旨在简化您创建自己的 CMS 的对象和 API。
Plone 1.0 在本文撰写之前,即 2003 年初发布,并且依赖于 2002 年年中发布的 CMF v1.3。正如桌面应用程序使用底层操作系统提供的许多功能一样,Plone 或任何基于 CMF 的 CMS 也使用 CMF 提供的功能。因此,Plone 站点提供全文搜索以及社区成员评论任何内容对象的能力。随着 CMF 的改进并提供更多服务,我预计 Plone 也将得到改进。
如果您已经运行了 Zope,则安装 Plone 非常容易。请记住,每个 Zope 产品都必须安装在 Zope 目录中的 lib/python/Products 目录中。此外,必须手动或从基于 Web 的控制面板重启 Zope,以便新安装的产品能够被看到和注册。
在安装 Plone 之前,您必须安装最新版本的 CMF。从 cmf.zope.org 获取 CMF-1.3,它以 gzipped tar 文件的形式提供。我将 tar 文件放在 /tmp 中,并按如下方式安装它
# cd $ZOPE/lib/python/Products # tar -zxvf /tmp/CMF-1.3.tar.gz
在 lib/python/Products 中创建的 CMF-1.3 目录包含许多 Zope 在启动时需要定位的 CMF 相关产品。因此,我们创建了许多指向产品目录的符号链接
# ln CMF-1.3/CMFCore . # ln CMF-1.3/CMFCalendar . # ln CMF-1.3/CMFDefault . # ln CMF-1.3/CMFTopic .现在 CMF 已经安装好了,我们也可以安装 Plone 了。从 www.plone.org 获取 Plone 的 tar 文件,将其放在 /tmp 中并解压缩
# cd $ZOPE/lib/python/Products # tar -zxvf /tmp/CMFPlone-1.0.tar.gz与核心 CMF 产品一样,您必须在 Products 目录中创建几个符号链接,以便 Zope 在启动时能够识别它们
# ln -s CMFPlone-1.0/CMFPlone . # ln -s CMFPlone-1.0/DCWorkflow . # ln -s CMFPlone-1.0/Formulator .如果您使用的是 Zope 2.6.x 之前的版本,您可能需要从另一个产品创建一个指向主 Products 目录的符号链接。请查看 Plone 说明以确保。
确保 CMF-1.3 和 CMFPlone 目录及其内容归运行 Zope 的用户所有。这通常是一个名为 www 或 zope 的用户。不再建议以 nobody 用户身份运行 Zope,这曾经被认为是安全的选择。如果适当的用户不拥有这些文件,您可能会遇到一些奇怪的所有权和权限问题。
现在您已经安装了创建由 Plone 管理的站点所需的一切。启动 Zope,以具有管理权限的用户身份登录,您就可以开始了。
从基于 Web 的 Zope 管理界面创建 Plone 站点非常容易。从添加产品菜单中,选择 Plone 站点。系统将提示您输入几条信息
站点的 ID,它将成为 URL 的一部分;
站点的标题,它将显示在每个页面的顶部;
站点应该有自己的用户文件夹还是应该从周围的 Zope 站点继承用户;
站点的描述;以及
您要创建的站点类型(目前,保留默认的 Plone)。
当 Zope 完成创建 Plone 站点的新实例时,Zope 管理界面中的大窗格会发生显著变化。中间会出现一条介绍性消息,工具栏在顶部滑动,信息(包括日历)会显示在左右两侧的矩形中。
修改 Plone 站点的界面与标准 Zope 界面显着不同。虽然 Zope 通常为所有用户显示相同的屏幕,并且仅当 /manage 方法调用附加到 URL 时才显示管理界面,但 Plone 会根据当前用户的权限修改其输出。因此,尽管访客只能浏览站点的内容,但管理员会看到诸如查看、编辑、属性和状态之类的选项卡,并且可以查看站点上的所有项目,包括那些尚未发布的项目。
幸运的是,Plone 用户界面对于管理员来说相当简单明了。要修改页面的内容,请单击编辑选项卡。然后,您可以使用 Web 浏览器编辑内容,包括其 URL 和摘要信息。摘要信息会出现在搜索结果中。Plone 使用 JavaScript 使非技术用户更容易理解用户界面;例如,在 Plone 编辑界面中单击任何 HTML 小部件(例如文本区域或单选按钮)都会弹出一个工具提示式描述,说明应该插入什么内容。
使用基于 Web 的 Plone 界面添加或修改的内容可以是纯文本、HTML 或 Zope 的结构化文本格式,该格式使用标点符号和缩进作为格式化机制。我更喜欢尽可能多地使用结构化文本,仅在我想以结构化文本不允许的方式格式化页面时才使用 HTML。
页面上的主要文档周围是多个 portlet,这些附件添加到站点的内容中。Plone 默认带有几个 portlet,包括新闻报道列表、事件列表、显示当天日期并突出显示当月任何事件的日历以及当前站点上相关文档的列表。
要添加新文档,首先通过单击导航 portlet 中的链接移动到内容视图。这将生成当前文件夹中的文档列表。然后,您可以从左上角的添加新项目选择新的内容类型。重要的是要意识到,一旦您单击添加新文档,就会创建一个新文档;之后,您将修改其属性和内容。
默认情况下,Plone 允许您创建多种不同的内容类型
文件夹允许您使用层次结构来组织您的站点。正如磁盘、静态网站或 Zope 站点在文件夹中包含文件一样,Plone 站点也可以包含文件夹。每个已发布文件夹的标题都会显示在导航 portlet 中。
文档是 Plone 站点上最常见的项目,可以使用 HTML、结构化文本或纯文本进行格式化。大多数时候,您可能都想创建一个新文档。
图像可以是几乎任何格式,包括 JPEG、PNG 和 GIF。
文件是您希望用户能够查看或下载的项目,但它们没有 Plone 可以轻松处理的 MIME 内容类型。一些示例包括 QuickTime 电影、音频剪辑和 Microsoft Office 文档。
事件是具有开始和结束日期的简短文档,并在日历 portlet 中突出显示。
新闻项目是在新闻 portlet 中显示的简短文档。这是一种发布新闻稿的好方法且简单易行。
Plone 还附带链接,这些链接是外部世界感兴趣的 URL,以及主题,这些主题是站点内的预定义搜索。越来越多的其他内容类型正在 Plone 中涌现,例如网络日志和相册。
当您在 Plone 中创建新的内容时,它默认处于可见状态。这意味着如果人们知道 URL,他们就可以使用 Web 浏览器访问您的文档。但是,该内容不会出现在搜索或导航 portlet 中。
要发布内容,请单击页面顶部的状态选项卡。(从内容视图中,您可以使用页面底部的状态按钮同时发布多个内容。)这将带您到一个页面,询问内容何时应首次发布、何时应过期以及您希望对发布文档的决定发表的任何评论。您输入的日期是最终决定因素,这意味着已发布的文档仅在其开始日期和结束日期之间可见。这允许您在内容应向公众公开之前的几天或几周输入内容,而无需在适当的时间将其状态更改为已发布。
一旦发布,文档就会出现在全文搜索中。它在任何缺少默认 index_html 文档的文件夹中也是可见的。
我最喜欢的 Plone 功能之一是属性。每个文档都可以通过屏幕顶部的属性管理选项卡分配一个或多个属性。当用户查看内容时,相关的 portlet 会列出站点上与当前文档共享一个或多个属性的所有其他文档。这使站点访问者可以轻松找到他们可能感兴趣的其他内容。
Zope 是一个功能强大的应用程序服务器,CMF 是一个用于创建 CMS 的功能强大的工具包。但是,鉴于与两者相关的陡峭学习曲线,Plone 很可能成为 Zope 的杀手级应用,通过易于安装、配置和管理的强大功能将新用户带入 Zope 世界。
下个月,我们将更仔细地研究 Plone,检查我们可以修改显示内容的方法,包括更改站点的外观和风格。
