Gallery:外观主题:参考:Smarty

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

Smarty[ ]

Smarty是一个PHP模板系统,被Gallery2用来收集显示给用户的页面。模板允许Gallery2的高度自定义--通过将其web页面的设计与Gallery允许所需的代码分离开。通过使用某种特殊的markup语言以及标准的HTML,就可自定义外观主题,从而以多种方式显示核心Gallery项目。

资料及教程[ ]

有关Smarty系统的完整资料请见http://smarty.php.net。在网站上还有Smarty速成资料,而通过搜索引擎你可以找到很多Smarty的相关教程。

使用Smarty模板[ ]

Smarty模板混合有HTML和Smarty markup语言。这允许它们显示动态的内容。例如,如果你希望在Gallery页面上向某用户显示欢迎消息的话,你可以在页面模板中使用如下的代码:

<p>Hello, <b>{$user.userName}</b></p>

而对于普通HTML文件,要达到相同的效果的话就需要在PHP代码上花很大功夫,而且所得结果的自定制性会比较差,也就是不如独立的模板系统。理解以下的Smarty概念及标记的话,在编写Gallery2的外观主题模板时能帮上不少忙:

  • 使用HTML和Smarty markup编写Smarty模板
  • 使用{$variableName}语法的变量访问
  • 使用{if}...{else}...{/if}的条件语句
  • 使用{foreach}...{/foreach}的数组访问
  • 使用{object->method}的对象访问

模板debugging和变量的探索[ ]

如果开启了Gallery2的debugging,每次渲染某模板时,Smarty都会产生debug输出。该输出出现在一个单独的窗口中并显示所有用在相应页面中的变量--当模板不按所预期的运行时这就非常有价值了。同样这帮助查看所有传送到模板的变量,尤其是当你需要访问外观主题或用户信息时这就更有用了。

要打开Gallery2的debugging,你需要编辑Gallery根目录下的config.php文件。这里有一个关于Gallery2 debugging模式的解释:

$gallery->setDebug(false);

要开启debugging模式,修改该行:

$gallery->setDebug('buffered');

保存config.php并将其复制到Gallery根目录下。现在当你查看任何Gallery页面时,就会在页面底部看到Gallery debug输出,而smarty debug输出应当出现在某个单独的他出窗口中。如果没有弹出窗口的话,请确保你允许Gallery站点弹出窗口。

使数据在模板中可用[ ]

信息的某些项目被Gallery作为标准用于某模板。然而某些项目必须被外观主题请求了才能够由模本进行访问。这往往是通过theme.inc的各种showXXX函数中的loadCommonTemplateData函数呼叫完成的。有关可用选项的讨论,请参看GalleryTheme.class的源代码,可在Gallery的/modules/core/classes/'目录中找到。