Gallery:外观主题:为模板读取数据

来自站长百科
跳转至: 导航、​ 搜索

Matrix的theme.inc

如果你想专注于外观主题布局及风格的修改,但在现有的外观主题中能找到足够满意的内容的话,那么就不需要对theme.inc中的php代码做过多的处理。但如果你想更进一步地对外观主题所显示的内容进行修改的话,代码修改就很有必要了。下面的解释说明是假定你对PHP或编程了解不多的情况下给出的。当然,稍微了解PHP的话会有助于理解后文内容。

PHP代码标识:由于此文件是PHP代码,因此第一行必须为:
  <?php
phpDocumentor comments:Gallery使用一名为phpDocumentor的程序为代码自动生成文档。类似theme.inc中的批注在下文中就是以标记 "@"开头的部分,用来为该步骤提供提示。如果需要的话,你可以将这些添加到自己的外观主题代码中去。
  /**
   * @版本$Revision$ $Date$
   * @整合包Gallery
   * @编写者Bharat Mediratta <bharat@menalto.com>
   */
  
  /**
   * 这会实现标准的gallery外观主题
   *
   * @整合包 GalleryTheme
   * @子整合包Theme
   */
外观主题类别实现:所有外观主题都是自Gallery的核心GalleryTheme中派生出来的。下一行声明外观主题并将所有核心外观主题功能拉入外观主题matrix中。
  class MatrixTheme extends GalleryTheme {
  
构建式:此处的代码对外观主题进行初始化,并建立起对象。global $gallery;将特殊的变量$gallery带入该函数的范围,这样其内容就可以被访问了。
      /**
       *构建式
       */
      function MatrixTheme() {
       global $gallery;

函数的剩余部分就建立起了外观主题。当你自己创建外观主题时,请在合适的位置插入外观主题的名称,并修改设定以满足自己的需要。

       $this->setId('matrix');
       $this->setName($gallery->i18n('Matrix'));
       $this->setDescription($gallery->i18n('Standard Gallery2 look and feel));
       $this->setVersion('1.0.0');
       $this->setRequiredCoreApi(array(7, 0));
       $this->setRequiredThemeApi(array(2, 1));
       $this->setStandardSettings(
           array('rows' => 3,
                 'columns' => 3,
                 'showImageOwner' => 0,
                 'showAlbumOwner' => 1,
                 'albumFrame' => ,
                 'itemFrame' => ,
                 'photoFrame' => ,
                 'colorpack' => ,
                 'showMicroThumbs' => 0,
                 'sidebarBlocks' => serialize(array(
                       array('search.SearchBlock', array('showAdvancedLink' => true)),
                       array('core.ItemLinks', array('useDropdown' => false)),
                       array('core.PeerList', array()),
                       array('imageblock.ImageBlock', array()))),
                 'albumBlocks' => serialize(array(
                       array('comment.ViewComments', array()))),
                 'photoBlocks' => serialize(array(
                       array('exif.ExifInfo', array()),
                       array('comment.ViewComments', array())))));
      }