Gallery:模板的编辑
来自站长百科
如果你想通过编辑*.tpl文件来自定义站点的话,这里有几点需要考虑一下。如果之间编辑文件,在将来升级时这些修改都会丢失(新版本的解压会覆盖被修改的文件)。这里有一些选择:
- 使用一个本地tpl:在要编辑的tpl文件的相同位置创建一个名为local的目录。将原始的tpl文件复制到该local目录下,并对其进行编辑。 注 (1):此技巧也适用于被直接URL引用的文件,如js和css文件。注 (2): 在编辑.tpl文件时请注意语法。例如,如果某代码用于某行的开头或结尾的话,不要在其中使用双引号("example")。
<toggle title="Examples" style="margin-left:1.8em">
cd modules/slideshow/templates mkdir local cp Slideshow.tpl local
cd themes/matrix mkdir local cp theme.css local
</toggle>
- 使用外观主题覆盖:自Gallery2.3版本开始,外观主题能偶覆盖模块的tpl文件了。
<toggle title="Details and Example" style="margin-left:1.8em">
modules/foo/templates/bar.tpl
首先查看modules/foo/module.inc并找到设定模板版本的语句行:
$this->_templateVersion = # or $this->setTemplateVersion(#)
将bar.tpl复制到themes/mytheme/templates/foo_#/bar.tpl下并进行编辑。使用mytheme的页面才会用到该文件。如果你升级foo模块,而它对模板结构有改动,你的版本就可能无法兼容了,那么它会包括进一个新的模板版本号。Gallery会使用来自该模块的tpl文件而不再使用外观主题覆盖了。你可以为新模板版本建一个foo_#目录并重新进行本地修改。这里的优势在于,在升级时,模块会转回默认外观,但仍能运作。而不完整的本地tpl文件会导致你的网站出错。
使用区块模板的样例:覆盖某个区块模板
modules/foo/templates/blocks/SomeBlock.tpl
你需要将该文件复制到themes/mytheme/templates/foo_3/blocks/SomeBlock.tpl(假定模块foo的模板版本是3) </toggle>
- Subversion用户注意:当使用svn时,最好直接编辑tpl文件。然后你可以使用svn diff来查看所作的修改,svn revert则用于还原原始文件,而svn update则会尝试将本地修改与新版本合并,或在无法合并时作出报告。
如果看不到修改效果该如何是好[ ]
- 访问站点管理(Site Admin) / 维护(Maintenance)并运行模板缓存的删除任务。也可以在lib/support/index.php的缓存维护部分完成此操作。当不确定时,清除缓存总是好的。注意鉴于文件时间戳的检查方式,在删除某本地tpl或外观主题覆盖时都需要清除缓存并还原至原始的tpl文件。
- 自Gallery2.3开始,经编译的模板会被缓存起来,这样文件的编辑添加或本地tpl文件外观主题的覆盖就不可见了。在自定义站点或建立外观主题时,访问站点管理(Site Admin) / 性能(Performance)来关闭此缓存方式 。在处理完tpl文件之后将其重新开启以获取更好的性能补偿。
- 模板缓存无法通过2.2版本中的管理界面进行禁用。新建外观主题的开发者们会觉得手动清除缓存比较麻烦。对Smarty类别的小修改就可以阻止模板被缓存起来。在lib/smarty/Smarty.class.php中的第150行:
var $force_compile = false;
将此行修改为:
var $force_compile = true;
CSS图片无法显示[ ]
在你将css移至某本地文件夹时,你需要做:
1. 复制引用某本地目录的图片,如:
gallery2/themes/matrix/local/images/nav_last.gif
2. 编辑css使其pint向合适位置。
相关信息[ ]
- 外观主题相关的更多信息
- 外观主题参考有关tpl文件中的语法