remove_htmlを活用する

いたはし 2009年01月30日

パワフルなCMSを98,000円で。

Movable Typeで承認フロー、会員サイト構築ができます。

こんばんは。お久しぶりの板橋です。
今日は複雑な処理ではなく、簡単なTIPSをひとつ。

みなさん、remove_htmlというグローバル・モディファイアは使われていますか?
タグの値からhtmlタグを除外するモディファイアです。よくあるのが、こんばんは。お久しぶりの板橋です。 今日は複雑な処理ではなく、簡単なTIPSをひとつ。 みなさん、remove_htmlというグローバル・モディファイアは使われていますか? タグの値からhtmlタグを...などですね。このタグで、記事から自動出力される概要からhtmlタグを除外することができます。
...たまにソースを除くと、meta descriptionにものすごい改行が入っていたり、htmlタグが出ていたりするサイトってありませんか?remove_htmlを入れればそれが解決します。

さて、ここまでは標準的な使い方のお話でした。

今回は、このremove_htmlを利用して、デフォルトの機能のみでフォルダやカテゴリを並びかえたり、特殊なグループ設定をつけてみたり...という方法をご紹介いたします。

1. デフォルト機能のみでフォルダ/カテゴリを並びかえる

みなさんは普段フォルダやカテゴリのラベル、どのように設定されているでしょうか?
恐らく、「日記」「写真」「その他」...など、日本語で入れてみたり、はたまた英語で「diary」「photo」...など、表示に使われる名前を入れているかと思います。

そこで、ラベルに一工夫。
例えば、写真、日記、その他の順に並べたいとします。

<1>写真
<2>日記
<3>その他

htmlタグを打つ時に囲む半角のカッコで数字を囲みます。
続いて、フォルダを呼び出してみましょう。

<ul>
<MTFolders show_empty="1">
<li><$MTFolderLabel$></li>
</MTFolders>
</ul>

すると、以下のように表示されると思います。

<1>写真
<2>日記
<3>その他

並び順はかわりましたが、数字とカッコは表示したくないですよね。
そんなときこそremove_htmlの出番です。

<ul>
<MTFolders show_empty="1">
<li><$MTFolderLabel remove_html="1"$></li>
</MTFolders>
</ul>

remove_htmlではカッコの中身をhtmlタグとして認識してくれるので、

写真
日記
その他

という順に並びかわります。
#まあ、UIが優れた並び替えのプラグインもあるのであまり需要はなさそうですが...


2. 特殊なグループ設定をつける

上記の並び替えを参考に、今度はグループ設定をつけてみましょう。
例えばカテゴリーが以下のようなカテゴリーが存在するとします。

全社ニュース
総務部からのお知らせ
今日の社食メニュー
渋谷おすすめランチ

ここで、例えば自分が「全社ニュース」のカテゴリページにいる場合は、「総務部からのお知らせ」は出したいが、「今日の社食メニュー」、「渋谷おすすめランチ」は出したくない...という場合、以下のような処理で実現できます。

<news>全社ニュース
<news>総務部からのお知らせ
<lunch>今日の社食メニュー
<lunch>渋谷おすすめランチ

あとはカテゴリーを出すところで以下のような処理をしてあげれば完了です。

<$MTArchiveCategory setvar="thisgroup"$>
<ul>
<MTCategories>
<MTSetVarBlock name="setgroup"><MTIf tag="MTArchiveCategory" like="news">news<MTElseIf name="lunch">lunch</MTIf></MTSetVarBlock>
<MTIf name="thisgroup" like="$setgroup">
<li><$MTCategoryLabel remove_html="1"$></li>
</MTIf>
</MTCategories>
</ul>

まず最初に現在地のカテゴリラベルをthisgroupにセットします。
続いてMTCategoriesでカテゴリの一覧を出し、吐き出されるカテゴリラベルに、先程設定したグループ「news」が含まれるかチェックします。含まれる場合はsetgroupにnewsを、含まれない場合は次のElseIfでlunchをセットします。

次に、現在地のカテゴリとして設定したthisgroupに、先程セットしたsetgroupの値が含まれるかチェックし、含まれていればカテゴリラベルを出力します。含まれていなければ出力せず、次のカテゴリを処理します。

例えば現在地が「<news>全社ニュース」であった場合、最初にthisgroupに「<news>全社ニュース」がセットされます。
次の処理でカテゴリの一覧を出しますが、setgroupに同じnewsがセットされた全社ニュースと総務部からのお知らせは出力しますが、lunchがセットされた今日の社食メニューや渋谷おすすめランチは出力されません。

...と、こういった形で簡単なグループ分けをすることができます。
なお、このタグはカテゴリ、或いはブログ記事のアーカイブでのみ動作します。
カテゴリを含まない月別アーカイブ(カテゴリ別月別等を除く)やインデックスページなどでは動作しません。

と、このようにいろいろな活用方法があります。
日ごろあまり目を向けないグローバル・モディファイアですが、便利なものも多いので、一度一覧に目を通してみてはどうでしょうか。「こういう処理をしたかった...」というものもあるかもしれません。

グローバル・モディファイアリファレンス(SixApart社)
http://www.movabletype.jp/documentation/appendices/modifiers/

投稿者 いたはし : 01/30

Movable Typeを利用したウェブサイト開発はお任せください!

100の企業が認めた成功へ導くCMS構築

スカイアークは創業以来6年間、Movable Typeを一貫して活用し、お客様の様々なウェブサイトをCMS化しました。MTを利用したウェブサイトはスカイアークにお任せください。

MT・CMS構築について詳しく見る

お問い合わせはこちらから お電話でのお問い合わせ03-5475-5101

MTエンジニアブログ

MTCMS Smartキャンペーン!
承認フロー付きCMS「MTCMS Smart(98,000円)」をお買い上げの方、MTライセンス1本がタダに!

配布プラグイン一覧

MultiFileUploader
複数ファイルを一括でアップロードできるMovable Typeプラグイン
ParentalInclude
MT5でウェブサイトとブログのテンプレート連携を便利にするプラグイン
DuplicateEntry
ブログ記事を複製または移動するMovableTypeプラグイン
NotifyAnythingChanged
何かが起きたらメールで通知するMovableTypeプラグイン
rssEntry
取込んだRSSをエントリとして書き出すMovableTypeプラグイン
AutoTagging
面倒な記事のタグ付けを自動化する
FutureRebuild
日時を指定してページを再構築する
EntryImExporter
エントリをCSVに書出したり、CSVから一括登録するMovableTypeプラグイン
MailPack
Movable Typeで簡単携帯投稿!メール投稿プラグイン
DirectoryUtility
カテゴリ・フォルダの階層を表示したり、親フォルダを表示したり、何かと便利なプラグイン
CSVList
CSVデータを整形して表示する
PageBute
静的ページ用ページ分割プラグイン

注目記事

RSS

ページの先頭へ戻る