Gallery:外观主题:如何复制一个现有的外观主题
Sections which need expansion (i.e. more detail, clarification, etc...)
外观主题的新增或创建[ ]
要添加一个外观主题的话,请将其移至gallery/themes文件夹。如果你下载的是zip格式的文件,将其解压并将解压出来含有外观主题的文件夹移至gallery/themes文件夹。含有外观主题的文件夹中有"theme.inc"和"theme.css"文件。而且还有很多用户提供的外观主题。
新建外观主题的最简便办法就是拿现有的外观主题做修改(克隆+修改)。
“克隆”外观主题[ ]
选一个带有所需功能的外观主题。我们建议你从Gallery2自身所带的外观主题开始,因为这些外观主题的代码都比较新。你的新外观主题需要一个独一无二的外观主题id。Id为单个单词,可以含有字母数字和下划线,并且要与外观主题名称相关。比如你现在要克隆Matrix主题,并作了一个新主题叫MySite,那么id就可以是mysite。
为了做一个开头,我们复制matrix文件夹及其下的所有内容,并将新文件夹命名为mysite。通过unix shell你可以输入:
cd gallery2/themes cp -R matrix mysite
或直接使用ftp客户端来进行复制操作。你可以将matrix文件夹复制到计算机上,接着将其重命名后重新上传至服务器。
现在我们来编辑mysite/theme.inc来为新外观主题定制细节。编辑mysite/theme.inc时,在其中你会看到一个区域开头是这样的:
class MatrixTheme extends GalleryTheme { /** * Constructor */ function MatrixTheme() { global $gallery; $this->setId('matrix'); $this->setName($gallery->i18n('Matrix')); $this->setDescription($gallery->i18n('Standard Gallery2 look and feel')); $this->setVersion('0.9.9'); /* Update upgrade() also */
你需要修改matrix到mytheme的所有引用,并调整描述以及版本,使它们符合你的外观主题。这些区域在下面以粗体标出:
class MySiteTheme extends GalleryTheme { /** * Constructor */ function MySiteTheme() { global $gallery; $this->setId('mysite'); $this->setName($gallery->i18n('My Site')); $this->setDescription($gallery->i18n('This is a theme for My Website')); $this->setVersion('0.9.0');
相关的一些注释:
- 如果新外观主题中存在MANIFEST文件,删了它。它包含你复制而来的外观主题数据,在升级时会造成混乱。
- 在类别和函数名称中必须使用id中所使用的相同的字母,但大小写无需重视。
- 在$this->setId('mysite');中的大小写必须与外观主题文件夹名称大小写相符。不然在安装时会得到无法找到外观主题的错误消息。(所以请严格对待文件夹名称中的大小写问题)
- 你可以使用任意版本号,但请遵循#.#.#的格式,这样在编写升级代码时会比较轻松。
- 如果原外观主题有升级功能的话,你可以从新外观主题中将其移除。(在你开始支持升级功能后再将其重新添加进来)
- 你外观主题的名称必须如matrix外观主题一样以"Theme"结尾。
现在,打开站点管理,并在左侧边栏中选择插件选项,再次安装新的外观主题。安装好后点击边栏中的外观主题就能看到列表中的"My Site"外观主题了。
你的外观主题现在就能投入使用了。编辑一个相册并从列表中选取自己的外观主题,现在克隆加修饰后的Matrix外观主题唯你独享喇!