top

特定のフォルダを表示・非表示にする

MT4からは管理画面からフォルダが作成できるようになりましたが、これは本来ウェブページの管理に使うことを想定されているようです。が、私は画像をアップするためのフォルダとしても使ってます。

080525_1.gif

このように、MTでフォルダを作っておくと、画像をアップする画面で「フォルダの選択」でフォルダをワンクリックで選べるので、いちいちアップロード先にディレクトリ名を書かなくていいので便利なんですよね。こうしておけば写真とイラストでフォルダを使い分けるのも簡単だし。それにポップアップさせる時も、ここで選んでおくと指定したフォルダ内にポップアップ用のHTMLファイルが作られるので管理の上でも便利なのです。

が、テスト用ブログをいじっている時、サイドバーに妙なものが出ているのに気付いた…。

080525_2.gif

ウェブページ一覧のウィジェットが表示されてるんですけど。photoって何!? そうです、画像格納専用に作っているフォルダまで表示されちゃっていたんです。でも画像用フォルダの中にはページファイルなんて置いてないし、ウェブページに関係ないフォルダが表示されてても意味不明。てことで、要らないフォルダは一覧から消す方法を覚え書き。
いずれもウィジェットの「ページ一覧」の<MTTopLevelFolders>~</MTTopLevelFolders>部分を例に選んで書いてます。

■ウェブページのないフォルダを非表示にする
まずは基本的な方法から。

<MTFolders>を使う
階層表示しなくていいのなら、<MTTopLevelFolders>を<MTFolders>に変えます。<MTFolders>はウェブページのないフォルダは表示しないので。なお、<MTFolders>でウェブページのないフォルダも表示させるには<MTFolders show_empty="1">とします。

<ul class="widget-list">
<MTFolders>
<li class="widget-list-item"><b><$MTFolderLabel$></b>
<MTPages sort_by="title" sort_order="ascend">
<MTPagesHeader>
<ul class="widget-list">
</MTPagesHeader>
<li class="widget-list-item"><a href="<$MTPagePermalink$>" title="<$MTPageTitle$>"><$MTPageTitle$></a></li>
<MTPagesFooter>
</ul>
</MTPagesFooter>
</MTPages>
</li>
</MTFolders>
</ul>

<MTIfNonZero>を使う
これで囲むとウェブページのないフォルダは表示されなくなるので、階層構造を保ったままでも画像専用フォルダを非表示にできます。

<MTTopLevelFolders>
<MTFolderHeader>
<ul class="widget-list">
</MTFolderHeader>
<MTIfNonZero tag="FolderCount">
<li class="widget-list-item"><b><$MTFolderLabel$></b>
<MTPages sort_by="title" sort_order="ascend">
<MTPagesHeader>
<ul class="widget-list">
</MTPagesHeader>
<li class="widget-list-item"><a href="<$MTPagePermalink$>" title="<$MTPageTitle$>"><$MTPageTitle$></a></li>
<MTPagesFooter>
</ul>
</MTPagesFooter>
</MTPages>
<$MTSubFolderRecurse$>
</li>
</MTIfNonZero>
<MTFolderFooter>
</ul>
</MTFolderFooter>
</MTTopLevelFolders>

■特定のフォルダを非表示にする
上記の方法ではウェブページのあるなしに関係なくフォルダ表示をコントロールしたい場合に困るので、任意のフォルダを指定して非表示にする方法も。特定カテゴリの非表示とやり方は同じです。赤字の部分を追加します。この例だとフォルダAフォルダBの2つのフォルダが非表示になります。
なお、MTTopLevelFoldersを使って階層表示にしているときは、親フォルダを非表示にすると子フォルダも表示されなくなります(MTFoldersなら指定したフォルダのみが非表示になります)。

<MTTopLevelFolders>
<MTFolderHeader>
<ul class="widget-list">
</MTFolderHeader>
<MTSetVarBlock name="folname"><$MTFolderLabel$></MTSetVarBlock>
<MTUnless name="folname" like="フォルダA|フォルダB">

<li class="widget-list-item"><b><$MTFolderLabel$></b>
<MTPages sort_by="title" sort_order="ascend">
<MTPagesHeader>
<ul class="widget-list">
</MTPagesHeader>
<li class="widget-list-item"><a href="<$MTPagePermalink$>" title="<$MTPageTitle$>"><$MTPageTitle$></a></li>
<MTPagesFooter>
</ul>
</MTPagesFooter>
</MTPages>
<$MTSubFolderRecurse$>
</li>
</MTUnless>
<MTFolderFooter>
</ul>
</MTFolderFooter>
</MTTopLevelFolders>

特定のフォルダのみ表示させる
MTUnlessMTIfに変えることで、指定したフォルダのみ表示させることが出来ます。
MTTopLevelFoldersを使って階層表示にしているときは、子フォルダを表示させるためには親フォルダも指定しておく必要があります(MTFoldersなら指定したフォルダのみで表示されます)。


080525_3.gif

☆てことで、無事photoは消えました。けど、フォルダをこんな使い方してるのって私だけかしら(^^;。

 

トラックバックURL

トラックバックされる際にはこの記事へのリンクをお願い致します

コメントを投稿

 


 <注意>
 ご利用のブラウザ、設定ではコメントのプレビューおよび投稿はご利用になれません。
 コメント投稿の際はお手数ですがjavascriptをオンにして下さい。
 *javascriptオフのまま投稿ボタンを押すと送信内容が消えますのでご注意下さい。