创建插件来方便对MT模板的管理
本站的导航菜单, 最早是用JavaScript来写的(Document.print), 这样做比较方便, 但是现在网页的安全问题层出不穷, 因此很多人都禁用了JavaScript, 而导致访问页面时, 导航菜单显未不出来, 因此通过修改一个一个的模板,将它改为静态的HTML. 今天突然想最近可能增加一个关于MyLOG的菜单项, 那不是又得将模板文件一个一个地修改? 很不太方便, 不如做一个插件了, 直接返回菜单的HTML代码就可以了, 这样以后只需要修改一次了.
代码如下所示, 然后我修改模板, 将显示菜单的代码换为<$MTZHMenu$>, 再选择时机重建相关页面,
use MT::Template::Context;
MT::Template::Context->add_tag(ZHMenu => \&get_zhmenu_html );
sub get_zhmenu_html
{
my $zh_menu_html = '<ul id="nav">'.
' <li><a href="/index.html">Home</a></li>'.
' <li><a href="/en">English</a></li>'.
' <li><a href="/blog.html">Weblog</a></li>'.
' <li><a href="/aul.html">AUL/MyDUL</a></li>'.
' <li><a href="/otop.html">Tools</a></li>'.
' <li><a href="/archives.html">Archive</a></li>'.
' <li><a href="/rss">RSS</a></li>'.
' <li><a href="/aboutme.html">About</a></li>'.
'</ul>';
scalar $zh_menu_html;
}
对于这种没有任何文件访问操作的简单插件, 性能不是问题, 将会将更多的内容通过这种方式统一起来, 如广告代码, 如要取消广告, 只需要让插件函数返回空串就行.
