@付きプライベートタグのウェブページとブログ記事
- Tweet
- 2011年7月18日 22:14
- MovableType
movabletype.jpに「プライベートタグでウェブページを部品データにする」という記事を寄稿しました。
@付きプライベートタグのウェブページ
私は「@付きプライベートタグのウェブページ」を良く使ってます(この方法がメジャーなのかどうなのかよく分かりませんが)
CMSとしてMTを利用するなら、データ、デザイン、構造 は完全分離が望ましいわけですが、HTMLにテキストを埋め込んじゃう方法は、その時点でデータの完全分離に失敗しているからNGなのかと思う時があります。
それを解決するために、@付きタグのあるウェブページを利用します。タグフィールドに@からはじまるタグを書くと、タグクラウドに影響を与えないタグを付けることができます。(プライベートタグと言うそうです:汗)
詳細は、movabletype.jpの「プライベートタグでウェブページを部品データにする」を参照ください。
で、さらにmovabletype.jpの記事に追加のエピソードです。
ブログ記事への応用
あるとき、クライアントさんからこんな相談を受けました。
「ブログでキャンペーン告知をしたら、本サイトでもキャンペーンを開始(バナーを表示したい)したいのですが…」
私は、いままでマルチブログの設定を使って「ブログ記事を書いて再構築したら自動でキャンペーンが開始(キャンペーンバナーを表示)します」と説明してきました。
しかし、今回は「更新したブログの内容が必ずしもキャンペーン開始の合図ではない」ということがあり、従来の方法では難しいと考えました。
そこで、@付きのプライベートタグをブログ記事に使いました。
あらかじめキャンペーンスタートのタグを決めておき、それをクライアントさんにはブログ記事のタグフィールドに書いてもらいます。そのタグ名をフックにしてキャンペーン用バナーを表示するようにインデックステンプレートにMTタグを仕組みました。
それが、こんな感じです。
<mt:MultiBlog include_blogs="12"><mt:Entries tag="@3周年"><mt:Ignore>@3周年タグがあればisdisplay を "ok"にする</mt:Ignore><mt:Setvar name="isdisplay" value="ok"><mt:Ignore>そのブログのURLをバナーのリンク先にする</mt:Ignore> <mt:Setvarblock name="specialurl"><mt:EntryPermaLink></mt:Setvarblock></mt:Entries></mt:MultiBlog><mt:If name="isdisplay" eq="ok"><a href="<mt:Getvar name="specialurl">" title="3周年記念セールのお得情報"><img src="バナーのURL" width="258" height="121" alt="期間限定、3周年記念セール開催中!全品20%OFF 詳しくはこちら" /></a></mt:If>
さらに、予想しなかったのですが、キャンペーン終了のタイミングもクライアントさんが決めることができました。タグを消せば自然にキャンペーンバナーは非表示になるのです。
でも矛盾
根本のウェブページにプライベートタグを付けて部品DBにするという発想には、実は矛盾があります。
まず、データとHTMLソースの分離が目的だとすると、リッチテキストエディタを使用してデータを作成し、それをそのまま利用することが正しいのかどうなのか?データとはHTMLソースまでを指し、それらとMTタグなどのソースとの分離という意味では成功していますが。そもそもCMSにとって、HTMLソースはデータだけど、ブラウザにとってはソースコードという現実が、よりこの問題を複雑にしているような気がします。
結局、HTMLソースもデータであると認めたとして、リッチテキストエディタを使用する時点である程度のHTMLソースの乱れは覚悟する必要はあります。
さらに、この方法は、テンプレートに書くことしかできません。たとえば、ウェブページ内のネスト(ウェブページから異なるウェブページを参照するなど)が不可能なため、利用できる範囲に制限があります。むかし、ブログ記事内のMTタグも機能させる、というプラグインがあったので、それが動けば大分事情は変わりますが、検証していないのでなんとも言えません。
まとめ
このように、不具合や不都合もありながら、なんとかMTテンプレートから固定文字(文言)を除くことができるので、試したい人はやってみると意外な利点もあるやもしれません。ぜひ、お試しを。
追記(2011年7月19日):たとえば、WEBページのサイト名(<title>)は、細かくなんども変えたいのかも、と思うとこの「ウェブページ+プライベートタグで部品DB化する」方法が有効ですね。
- Newer: Fireworksの内部エラーを直す
- Older: 「Movable Type 5.1 プロの現場の仕事術」の1-3を執筆
- Feeds
- About