让你的Blogroll 看起来更生动
Blogroll 是MT 的一个非常强大的插件,它的众多功能是围绕着链接管理 展开的,使用它,我可以很方便的在侧边栏添加一个新的外部或者内部链接,而无需去直接修改模板。
现今,相当一部分bloger 都为自己的blog 设计有icon,一般在站点根目录下,命名为favicon.ico。我们可以在他们的链接前自动加上他们自己的icon,这样可以使链接看起来更生动,让那些对其有印象的访问者可以迅速识别出来。
Favicon
Blogroll 不支持这个功能,我找到了另外一个插件Favicon 1.4 ,但它仅仅在comments 与 trackback 的上下文中有效,并不支持Blogroll,我对其进行了小的改动,增加了一小段代码(加重部分),使其支持Blogroll。
plugin/Favicon/favicon.pl
sub favicon {
my($ctx, $args) = @_;
my $c;
my $u;
if ($c = $ctx->stash("ping")) {
favicon_debug("Trackback in MTFavicon");
$u = $c->source_url;
} elsif ($c = $ctx->stash("comment")) {
favicon_debug("Comment in MTFavicon");
$u = $c->url;
favicon_debug("URL for comment ID <" . $c->id . "> is <$u>");
} elsif ($c = $ctx->stash("br_entry")) {
favicon_debug("Blogroll in MTFavicon");
$u = $c->uri;
} else {
favicon_debug("Error: MTFavicon called without a comment or trackback in context");
return $ctx->error("Error: MTFavicon called without a comment or trackback in context");
}
return favicon_return($u, $ctx, $args);
}
我使用MT 3.34 与Blogroll 2.51,如果您认为合适,可以直接下载修改过的favicon.pl 。
进行以上修改,需要参考以下两个文件:
plugin/Blogroll/Blogroll.pl plugin/Blogroll/lib/Blogroll/Template/ContextHandlers.pm
Blogroll
为了显示icon,接下来需要修改Blogroll 部分的模板,添加一部分代码(加重的部分),以下是一个的例子:
<ul>
<MTBlogrollLinks>
<li>
<MTFaviconIfAvailable>
<img src="<$MTFavicon$>" alt="Siteicon" title="Siteicon" height="16" width="16" />
</MTFaviconIfAvailable>
<a href="<$MTBlogrollLinkURI$>"><$MTBlogrollLinkName$></a>
</li>
</MTBlogrollLinks>
<ul>
如果你还没有自己的favicon.ico,可以在这里,使用自己的图片免费生成一个 。
延展阅读


