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 */ 

你需要修改matrixmytheme的所有引用,并调整描述以及版本,使它们符合你的外观主题。这些区域在下面以粗体标出:

 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外观主题唯你独享喇!