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は消えました。けど、フォルダをこんな使い方してるのって私だけかしら(^^;。

 

トラックバックの一覧

トラックバック 特定のフォルダをフィルタリング  »» 2009年1月24日 17:31
MTWriteToFileプラグインでフォルダアーカイブという記事を書きましたが...

コメント

TAEKOさんのアドバイスが気になって、フォトログ用に別のホストを立てて、そこに
新規にMT4.22を入れてみました。
暫く写真のアップにはphotoというフォルダを作って入れ込んでいましたが、ふと
アドバイスにあったこの記事を見直したら、、このページの上にある画面内の「下の
オプションからアップロード先、、」の下には何も表示されていないことに気付いたんです。
アレレ?
一旦、写真フォルダを別名にして新たにMTの管理画面からフォルダを作ってみました。
一見ちゃんと作られた様に見えたのですが、アップロードの手順を進めてもパスの階層
表示は出てきません。またfindコマンドで探してもそのフォルダ自体が見付かりません。
MTのフォルダ一覧にはちゃんと表示されているのに、です。

また何か失敗しているのでしょうか?
毎度おかしな質問で恐縮です。

こんにちは。

>「オプションからアップロード先」の下
あ、これは「フォルダの選択」の文字をクリックしなければ出てきません。初期状態では隠れてますので、もしかしてアップロード先のパスが表示されることに気づいてない方もおられるのかな?

ここにはMTの管理画面から作成したフォルダが出てきます。MTで作ったフォルダなら出てくるはずなので、クリックしてみて下さいね。

おお~っっ、、出てきました。。
ですが、、気が付かないもんですね、お恥ずかしい次第です。
これで安心してMT4.22でのフォトログ構築が進められます。 
ありがとうございました。

出てきましたか~。よかったです。^^
これ、気が付いてない人もけっこう多いのかもしれませんね。
分かりやすいように最初から開いていてほしいですよね。