11月 26 2010

[MT]ウェブページ:ローカルメニュー生成用のモジュール

ウェブページにつけるローカルメニュー用のモジュールを書いたのでペタっておく。
<ルール>
ウェブページが、
(1)フォルダーなしなら なにも出さない
(2)TOPフォルダなら 自分の子フォルダの一覧を出す
(3)下層フォルダなら 自分の兄弟フォルダの一覧を出す
※(2)のルールがちょい変則ですが、一部書き換えれば自分の兄弟フォルダ一覧にもできるです。
<mt:If name="page_archive">
<mt:PageFolder><mt:FolderId setvar="my_fid"></mt:PageFolder>

<mt:If tag="pageFolder">
	<mt:HasParentFolder>
		<mt:ParentFolder>
			<ul><mt:SubFolders><li>兄弟: <mt:FolderLabel></li></mt:SubFolders></ul>
		</mt:ParentFolder>
	<mt:Else>
		<mt:TopLevelFolders>
			<mt:FolderId setvar="this_fid">
			<mt:If name="this_fid" eq="$my_fid">
				<ul><mt:SubFolders><li>自分の子: <mt:FolderLabel></li></mt:SubFolders></ul>
			</mt:If>
		</mt:TopLevelFolders>
	</mt:HasParentFolder>
</mt:If><!-- /if tag="pageFolder" -->
</mt:If><!-- /if name="page_archive" -->

[mt:If tag="pageFolder"]は、
フォルダ指定なしページの時に mtHasParentFolder で再構築エラーになるので後から追加した。フォルダなしならコンディショナルタグ HasParentFolderがfolseを返せばいいだけなんじゃないかと思うんだけど、なぜだかそのようには動いてくれてないみたい。