创建插件来方便对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;
}

    对于这种没有任何文件访问操作的简单插件, 性能不是问题, 将会将更多的内容通过这种方式统一起来, 如广告代码, 如要取消广告, 只需要让插件函数返回空串就行.

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • Have you seen Kate lately?
  • 最近你看见凯特了吗?
  • No, I have no contact with her.
  • 没有. 我和她没有一点儿联系.
  • I heard she got married last week.
  • 我听说她上星期结婚了.
  • Oh, how nice. Sorry, I've got to go now.
  • 那真好. 对不起, 我必须得走了.
  • So do I. See you later. Keep in touch.
  • 我也是, 再见. 记得联系哦.