使用Movable Type的Widgets

| | Comments (1) | TrackBacks (0)

这是我在半个月以前写的一个关于Widgets使用的草稿,一直没有发出来,本来想把Widgets和modules连到一起来写,因为二者是有关联的。现在把标题改了还是单独写widgets吧。

Movable Type的Widgets使得页面模块的管理变得非常方便,在使用上也没有什么难度。

manage_my_widgets进入“Manage my Widgets”后就看到了“First Widget Manager”。在安装好的Widgets(Installed Widgets)一边已经有一排的widgets,这是MT默认的已经预安装好的widgets。如果你觉得哪个widget是你不想要的,那就把不需要的用鼠标提出来放到可用的Widgets(Available Widgets)那边,再保存重建,那么这个名称为“First Widget Manager”的Widget管理器就建好了。

当你什么时候觉得想要增加某个widget时,从可用的那边提到装好的那边。除了增减,你还可以调整widget的上下顺序,也是用鼠标提上提下的,编辑好widgets后再保存重建。

接下来你需要回到相应的模板将Widget的代码 <$MTWidgetManager name="Name of the Widget Manager"$> 应用到模板中,Widgets才能生效。

怎么应用呢?假设我要把刚才建立的“First Widget Manager”应用到Main Index 模板的侧边栏,比方是beta板块。那么你找到beta区域的代码:

<div id="beta">
<div id="beta-inner" class="pkg">
<div class="module-search module">
...... ......
</div>
</div>
</div>

搞清楚里面的每个module的结构,把要用widget代替的module部分删除。一定要看清楚模板里面的每个html标签。

<div class="module-archives module">
<h2 class="module-header">Recent Posts</h2>
<div class="module-content">
<ul class="module-list">
<MTEntries lastn="10">
<li class="module-list-item">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
</li>
</MTEntries>
</ul>
</div>
</div>

这就是一个完整的module,是最新发表文章的那部分。如果你的widget中选择安装了这个,那就要在模板中把上面的代码完全删掉。刚才你在“First Widget Manager”中选择了几个要装的widgets,那你就在现在这个模板中删除几个。好,现在你的模板中空了一大截。千万注意删除这些module时,搞清那些<div>和</div>的关系。

因为你建立的Widget管理器的名字是“First Widget Manager”,所以要把
<$MTWidgetManager name="First Widget Manager"$>
这行代码放在删掉的那些modules的位置上,也就是用这一行代码来代替刚才删掉的大段代码。

重建这个模板,你可以看到他们全部在页面上显示出来了。同样的做法,你可以把这个“First Widget Manager”运用到其他的模板上去,象Category Archive,Individual Entry Archive等。

使用widgets来管理后,当你需要对某个模块作修改或增删时,要比以前容易方便些。你不用再象以前那样每次到不同的模板中去改动那些modules了,更不用在每个模板中去检查烦人的HTML和MT标签了,因为你已经把他们都单独提取出来放到Widget管理器中来了,现在你只需要到Widget管理器里面来操作就行了。

如果你要在不同的页面模板中用不同的Widgets,那也好办。比方说只在首页用日历,分类存档页面不要。

那么,你再到“Manage my Widgets ”点击“新建Widget管理器”(Create Widget Manager ),然后给它取个名字,就叫“Second Widget Manager”吧。再把你要的Widgets提出来,当然你现在就不要选那个日历了。和上面的步骤一样,只是到分类存档模板中添加Widgets代码,用
<$MTWidgetManager name="Second Widget Manager"$>
来代替删除的那些modules。这个分类存档页面中就没有日历模块了。另外,你也只需要重建存档模板而不需要重建所有页面。只对相应的模板重建。

如果你觉得“First Widget Manager”和“Second Widget Manager”这样的名字不便于记忆,你也可以用任何其他的命名方法,象“Index Widget Manager”和“Category Widget Manager”也不错。当然你还可以用更简单的命名。

我们已经看到了,在Widget管理器中,MT默认的有12个widget,也就是说给你准备好了12个已经编辑好了的widget。MT的这个widget管理器能不能增加自定义的widget呢?就说那个Blogroll吧,如果可以把Blogroll这个插件也加到widget管理器中来一起管理,那才方便呢。

好,我们来看看吧。真的不难。

首先,我们需要把Blogroll这个模块的结构写出来,放在页面模板中试试看是否能正常显示,下面这段就是个完整的Blogroll模块:

<div class="module-blogroll module">
<div class="module-content">
<MTBlogrollCategories">
<h2 class="module-header"><MTBlogrollCategoryLabel></h2>
<ul class="module-list">
<MTBlogrollEntries">
<li class="module-list-item">
<a href="<MTBlogrollEntryURI>">
<MTBlogrollEntryIfRel> rel="<MTBlogrollEntryRel>"
</MTBlogrollEntryIfRel><MTBlogrollEntryName></a><br />
<MTBlogrollEntryDesc>
</li>
</MTBlogrollEntries>
</ul>
</MTBlogrollCategories>
</div>
</div>

确认你的模块代码没有问题。

到Templates - Modules,创建一个新的模板模块,并命名为“Widget: Blogroll”(切记名称前面部分一定是“Widget: ”),接着把上面那段代码完整的放到这个模块的文本框中,保存。


这就建好了这个模块(module),因为名称前面用了“Widget: ”,这个模块也就成了一个widget。你到widget管理器里就可以看到它的存在。

我们就可以使用它了。

通过这样的办法,你可以创建任意多个自定义的widget。

从前面的说明或者通过你自己的实践,你可以知道,MT的widget管理器如同MT一样,具有高度的自定义能力。

默认的那些widgets,并不一定都会适合你的需求,包括里面的html标签,MT标签你都可以随时进行修改(在Templates - Modules区域),直到符合你的要求。

0 TrackBacks

Listed below are links to blogs that reference this entry: 使用Movable Type的Widgets.

TrackBack URL for this entry: http://www.yangkang.org/cgi-bin/mt/mt-tb.cgi/65

1 Comments

一直都没用过这个功能,都是手工修改module部分和模版,感觉也不是很麻烦。

Leave a comment

About this Entry

This page contains a single entry by Yang published on October 2, 2006 11:06 PM.

Google在跳舞吗? was the previous entry in this blog.

Movable Type 不只是blog发布程序 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.