2012年3月

我们除了使用完整的 Plone 安装 Plone 外,还可以使用更为高级的自定义安装方式安装,本文将介绍怎么从无到有使用 buildout 工具安装 Plone。

首先,我们需要创建一个文件夹,将来所有有关 Plone 的内容都将保存在这个目录中,即然是这样,那也就是说,其实你可以在一个系统中安装多个 Plone,要满足安装条件,我们还需要在系统中选安装 Python 2.6,我这里使用 virtualenv 工具创建一个虚拟机,在这个里面使用 Python 2.6

$ virtualenv —python=python2.6 /Users/pantao/VirtualEnv/plone
$ cd /Users/pantao/VirtualEnv/plone
$ source ./bin/activate

我们现在的工作目录就是 /Users/pantao/VirtualEnv/plone,我们将在这个目录下面来创建Plone Buildout。

接下来,下载 http:// svn.plone.org/svn/plone/buildouts/plone-coredev/branches/4.1/ bootstrap.pysvn.plone.org/svn/plone/buildouts/plone-coredev/branches/4.1/ bootstrap.py 这个引文件,这个文件是用来创建 Buildout 工具的。

wget http:// svn.plone.org/svn/plone/buildouts/plone-coredev/branches/4.1/ bootstrap.py

第三步就是在当前目录下创建一个名为 buildout.cfg 的文件,将下面的内容添加到该文件 中:

[buildout]
extends =
http://dist.plone.org/release/4.1/versions.cfg
parts = instance
[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
eggs = Plone

现在我们可以初始化 buildout 了,在当前目录下面,运行下面这一行命令:

$ python bootstrap.py —distribute

这里,我直接使用 python 来运行它 bootstrap.py 是因为我们现处于 Virtual env 中,而这个 Vittual env 就是 Python 2.6 的,但是如果你是进行全局安装,那么有可能直接执行 python 命令运行的并不是 Python 2.6,这个需要你就需要在这里给出完整的 Python 2.6 的目录,比如我的本本上面, Python 2.6 的完整路径是下面这样的:

/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6

接着,我们执行下面命令来将 Plone buildout 出来,这个过程会从网络上下载很多文件,包括 Zope、Plone 本身以及其它一些需求包,根据网速,可能会需要不同的时间, Buildout 过程完成之后,就可以使用下面命令以 Debug 模式启动 Plone 了:

$ ./bin/instance fg

当脚本提示你已经 Ready for request 的时候,你就可以通过:“http://localhost:8080/”:http://localhost:8080/ 来访问你刚才创建的 Plone 站点。

Plone站点安装好了之后,我们总不能永远都使用Plone默认提供的功能和样式,总得根据自己的需要安装一些新的插件,修改修改主题或者安装新的主题,本文记录Plone新插件的安装方法与主题的简单自定义。

安装新的插件

最简单地安装Plone插件方法就是将想要安装的插件名称添加到 buildout.cfg 文件中,如下代码所示:

############################################
# Eggs
# ----
# Add an indented line to the eggs section for any Python
# eggs or packages you wish to include.
#
eggs =
Plone
Pillow
lxml
Products.PloneFormGen
webcouturier.dropdownmenu
collective.easyslider

在上面的代码中,我们除了Plone系统默认安装的插件外,还安装了三个新的插件:@Products.PloneFormGen@、@webcouturier.dropdownmenu@、@collective.easyslider@,这三个插件分别让我的Plone站点可以添加自定义表单,有下拉菜单,还可以很方便在页面中添加Slides。

将新的插件的名称添加到 buildout.cfg 文件中的 eggs 段之后,我们需要更新Plone,重新 buildout它。

首先我们需要进入 buildout.cfg 文件所在的目录(这是必须在,在其它目录中,是无法更新 Plone 的,会提示找不到 buildout.cfg 文件,进入该目录之后,运行下面的命令:

./bin/buildout
PanTao-Macbook-Pro:zinstance pantao$ ./bin/buildout
Uninstalling instance.
Installing instance.
Updating zopepy.
Updating zopeskel.
Updating backup.
Updating chown.
chown: Running echo Dummy references to force this to execute after referenced parts
echo /Applications/Plone/zinstance/var/backups
chmod 600 .installed.cfg
find /Applications/Plone/zinstance/var -type d -exec chmod 700 {} ;
chmod 744 /Applications/Plone/zinstance/bin/*
Dummy references to force this to execute after referenced parts
/Applications/Plone/zinstance/var/backups
Updating repozo.
Updating unifiedinstaller.
*************** PICKED VERSIONS ****************
[versions]
Products.PloneFormGen = 1.7.0
Products.PythonField = 1.1.3
Products.TALESField = 1.1.3
Products.TemplateFields = 1.2.5
collective.easyslider = 0.7.4
collective.js.jqueryui = 1.8.13.1
webcouturier.dropdownmenu = 2.3
*************** /PICKED VERSIONS ***************

之后我们需要停止当前正在运行的Plone Instance,然后再重新开启它:

PanTao-Macbook-Pro:zinstance pantao$ ./bin/plonectl stop
instance: .
daemon process stopped
PanTao-Macbook-Pro:zinstance pantao$ ./bin/plonectl start
instance: . .
daemon process started, pid=1417

重新启动之后,我们还需要进入站点的设置页面,找到附加组件,就可以看到我们刚刚安装的新组件了,这个时候我们就可以启动或者关闭组件。

自定义Plone站点样式

自定义Plone站点样式,我们可以开发新的主题,但是最简单的,莫过于修改Plone现有的主题。

修改 Plone 站点的 Logo

要修改 Plone 站点默认的 Plone Logo,我们可以以管理员身份登陆站点,然后进入 ZMI( 进入站点设置页面,找到 Zope 管理界面,即进入了 ZMI),在该页面中,进入 portal_skins -> portal_images,之后我们可以看到 logo.png文件,点击这个文件,之后在进入的页面,点击 customize,即可自定义该 Logo,上传我们自己的 logo,之后保存,再返回网站前端就可以看到新的 Logo 已经修改好了。

修改 Plone 站点的 CSS 样式表

Plone 并不建议修改它本身自带的样式表(几乎所有现代的CMS都不建议这么做),而是使用新的样式去覆盖它本身的样式,现在我们要修改 Plone 的样式表的话,首先需要开启 Plone 站点的开发者模式(Debug Mode),重新打开 buildout.cfg 文件,找到下面这段代码:

############################################
# Debug Mode
# ----------
# Change debug-mode to "on" to run in development mode.
# This will dramatically slow Plone.
#
debug-mode = off

将 debug-mode 打开,即修改成为下面这一行:

debug-mode = on

之后和安装新的组件一样,需要更新 Plone Instance,更新完了之后,进入ZMI,找到 portal_skins -> portal_styles,之后你可以看到 ploneCustom.css文件,我们只需要 将新的样式加入到这个文件之后,再保存即可。