[笔记]巧用Plugin管理模板导航条

| 0 Comments | 0 TrackBacks | WebBlog Articles

This is a SiteLog of Easun's WebBlog.

其实就是说本站上面的无序行表导航条:)
但是有个 加重 的选择。根据不同页面加重的部分不一样,比如主页加重的就是 "Home" ,而 BookMarks 选种的就是 "Bookmarks";
我的 Blog 采用的模块化设计,整个头部都是一样的,原来的加重是用一段 JS 来实现的,但是自己觉得不太满意,既然是静态化设计,何不彻底静态化?既然后台是 MT ,那就 MT plugin实现吧。
分析了一下,最简单采用add_global_filter来过滤:)
我的顶部模块名字为 Blog:header 模块,原来加载的办法是 MT 的 MTinclude 办法,如下:

<$MTInclude module="Blog:header"$>

修改后的代码如下

<$MTInclude module="Blog:header" do_notice_id="top_blog_home"$>

添加的 global_filter 名字为 do_notice_id ,其中"top_blog_home" 是我导航菜单中需要加重的部分,可以根据不同页面来换成你加重的id。

实现代码如下:

# Copyright 2007 EasunLee Easun.org # http://easun.org/

package MTPlugins::QiukNav;

use strict;
use warnings;
use MT;
use MT::Template::Context;

if (MT->version_number >= 3) {
use MT::Plugin;
my $plugin;
$plugin = new MT::Plugin(
{
name => 'QiukNav',
version =>'0.1',
description => 'QiukNav',
author_name => 'EasunLee',
author_link => 'http://easun.org/blog/',
}
);
MT->add_plugin($plugin);
}

MT::Template::Context->add_global_filter(do_notice_id => \&_hdlr_easun_do_notice_id);

sub _hdlr_easun_do_notice_id {
my ($str, $param, $ctx) = @_;
$str =~ s/class="notice"//ig;
$str =~ s/(id\="$param")/$1 class="notice"/ig;
$str;
}
1;

保存以上代码。存成 qnav.pl ,放在 MT 的 plugins目录下面,即可生效。
希望对大家有所有帮助:)

引用通告|TrackBacks (0)

本日志的TrackBack URL: http://easun.org/cgi-bin/mtos/tb_mt_41.pl/129.

以下罗列的是网络上引用了本日志 [[笔记]巧用Plugin管理模板导航条] 的 Blog 连接。

升级到 MT 4.0 好几天了,模板依然用的 3.3x系列的。不是不升级模板,而是在 MT 4.0 默认模板基础上测试和重新设计风格而已:) MT 4.0 模板设计的很优秀,在测试中发现了一些不同和技巧,特和大家共享之。 一: 强大的 MTIf 和 MTSetVar。 因为有了SetVar 和 if ,模板也有了简单的判断和设定功能。所以MT4.0模板才变的更加简单和模块化。通过在主模板顶部设定不同变量的数值,可以方便而简单让模板生成的页面任意在 3栏,2栏变化,也可以方便让侧边栏显示或不显示某个模... [阅读更多...]

发表该文评论|Leave a comment

最近发表|Recent Entries

[八卦]话说修路这件事

建国路貌似又在修。根本没有办法步行。这个让我想起来一个笑话:话说某A国人来北京,在东城区丢了一枚戒指,于是乎找警察,警察告诉他尽可能的帮他找。过了几天,此人发现整个东城的马路都挖开了,于是感叹曰:北京的警察真好。看来这个笑话的地点可以换在朝阳了?是不是某人的戒指又丢了?PS: 城市规划城市规划,年年挖年年修。。。生命不休,挖路不止…

[SiteLog]Blog升级到了 Movable Type Pro 4.25

Thisi is a SiteLog of Easun's WebBlog.今天终于升级到了 Movable Type Pro 4.25 ,貌似一切顺利,也没有发现什么特别大的改动?只是 Community Pack 变成了 1.62, Professional Pack 升级成了1.3 。其他的一切顺利,模版也没有修改,我甚至连重建前台HTML的事情都没有做。。。就这样吧,继续用这个风格,等有时间了再慢慢研究吧。如果非要说有什么修改的话,就是评论的登陆方式又丰富了很多,包括…

IE脚本错误,可以尝试以下办法

IE 脚本错误是个很麻烦的问题,一般定位都是 JS 引擎 和 VB 引擎出错。但是有时间反复注册 jscript.dll 和 vbscript.dll 也不能解决问题。具体表现 部分 js 解析正常,而部分就不行,尤其是基于 Web2.0的网站。不说别的,就连 ie7/ie8 本身第一次运行向导的"保存设置"也出错。其实研究下,貌似都出现在 XML 解释上? 重新注册…