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/'目录中找到。