Web屋さんの現場的発想のCMSとは?
公開日 : 2007-09-22 12:44:33
もちろん商用のCMS製品全てについて知っているわけではないのだが、Web屋の現場で感じることを少し。
「オーサー」の自由度を増すとサイトは崩れて行く
「オーサー」即ちCMSに情報を登録する「発信者」のこと。Movable Type(主にバージョン3系の話)をCMSとして使っていただくと必ずといっていいくらい「表は簡単に貼付けられないの?」とか「画像貼ったり文字に色付けたりしたい」とかいう話が出る。そして、JavaScriptベースのWYSIWYGエディタを組み込んだり、ということになって「ほらこうすると"MS Word感覚"で更新できますよ」みたいなことに落ちつく。
"WYSIWYG"は諸刃の剣
ところが、"MS Word感覚"ってのがくせ者で、実はMS Wordで(特に見栄え面で)センスの良い文章を作成できる人って少ないのです。だから、デザインの自由度をあげると殆どのケースでサイトの統一感は失われていき、せっかくCMS導入してリニューアルしたのに...ってことになりがちだ。
かといって、「WYSIWYGは使えません」だと、「自由度低すぎ」「これも出来ないの?」「あれも出来ないんだ...」という評価になるんだ。
「不自由」と「自由」の落とし所がポイント
そこで、実際は「プロの作成したできるだけ多くのパターンから選択してからページ制作を始めてもらう」「選択したパターンはあまり変えることはできない」というところにだいたい落ち着く。これまでは、MT::App:CMSのテンプレートをある程度簡単にカスタマイズしたりしていたのだが、独自のテンプレートタグを定義して(例:「CMS_Add_Field type=textarea height=200」みたいなタグを書いて)フィールドを増やしていた。
ただ、これではやはりクライアントに渡した後はお手上げになるし、覚えることばかり増えて大変だ。
Movable Type4でどこまで出来るか
MT4からは「ウェブページ」が作れるとか「アップロードしたファイルが管理できる」とか「ブログをまたがってページを出力できる」とか色々なフィーチャーがあって「CMS」狙ってるな!? って匂いはすごくするんだけど、やっぱりまだWeb屋さんの現場ではクライアントニーズにあわせたCMS自体のカスタマイズは必要だ。さもなければ不便に目をつぶって(現実路線としてお金もそんなにかけられないし) 「運用でカバー」ということになるだろう。
そこで、管理画面のGUI操作で「本当の意味で」簡単にカスタマイズが出来るものを作ろうとしていて、まだ限定的ではあるが、Movable Type4「CMS化」プロジェクトを進行中で、エントリー編集画面のカスタマイズあたりはほぼ完成した。
提供する側には「自由度が高くてオーサーのニーズに応えることが容易にできる」、一方で「オーサーは自由度は限定的だが、やりたいことは予め容易された手順で簡単にできる」ものを狙っている。
エントリー(ページ)の編集画面に一行テキスト、複数行テキストエリア、ラジオボタン、チェックボックス、セレクトメニュー、ファイル添付の各フィールドを自由に配置できる。アップロードしたファイルはエントリー(ページ)と関連づいていて、エントリー(ページ)を削除すると同時に削除される。添付したファイルはMTのassetテーブルにも格納される。
ちなみに、このサンプルのテンプレートタグの該当部分はこんな感じになっている。フィールドを増やしたり減らしたりしてもそれなりに対応できるからこんな風に自由にフィールドを増減しながらエントリー(ページ)を作ることも可能。
<MTExtFields>
<MTIfExtFieldType type="text">
<h2 style="font-size:120%;font-weight:bold"><$MTExtFieldText$></h2>
</MTIfExtFieldType>
<MTIfExtFieldType type="textarea">
<p><$MTExtFieldText$></p>
</MTIfExtFieldType>
<MTIfExtFieldType type="file">
<MTIfExtFieldNonEmpty>
<MTIfExtFieldTypeImage>
<p><img src="<$MTExtFieldFilePath$>" alt="<$MTExtFieldAlt$>" width="<$MTExtFieldImageWidth$>" height="<$MTExtFieldImageHeight$>" /></p>
<MTElse>
<p>Download:<a href="<$MTExtFieldFilePath$>"><$MTExtFieldAlt$></a></p>
</MTElse>
</MTIfExtFieldTypeImage>
</MTIfExtFieldNonEmpty>
</MTIfExtFieldType>
<MTIfExtFieldType type="radio">
<MTIfExtFieldNonEmpty>
<p><$MTExtFieldText$></p>
</MTIfExtFieldNonEmpty>
</MTIfExtFieldType>
<MTIfExtFieldType type="select">
<MTIfExtFieldNonEmpty>
<p><$MTExtFieldText$></p>
</MTIfExtFieldNonEmpty>
</MTIfExtFieldType>
<MTIfExtFieldType type="checkbox">
<MTIfExtFieldNonEmpty>
<p>チェックボックスにチェックが入っています</p>
<MTElse>
<p>チェックボックスにチェックが入っていません</p>
</MTElse>
</MTIfExtFieldNonEmpty>
</MTIfExtFieldType>
</MTExtFields>
とはいえ、自由過ぎると色々な問題が出てくるので...
フィールドをカスタマイズした編集画面は「エントリー(ページ)テンプレート」として保存できるので、「オーサー」は予めカスタマイズされたテンプレートを選択してページを作るだけ。現状「テンプレート」編集権限の無い人には、フィールドの増減や並び替えは出来なくしてある。
CMSが機械的に吸収出来る部分は吸収して「オーサー」に覚えてもらうことを減らすことも重要
せっかくCMSを入れても、結局「テキスト入力時には、アクセシビリティにも考慮して以下のことに気をつけましょう」なんてやってるケースが殆どかと思うけど、英数字の全角 or 半角とかそんな統一くらいはCMSでやって欲しいってのが本音な筈だよな。
以下のようなプラグインを使うことで、このあたりも入力する人にできるだけ考えさせないようにすることも重要(MT4では画像アップロード時のalt欄のところが動かないけれどテキストフィルターは正常に動作する)。
いずれにしても、現状でこのようなMT4ベースのCMSカスタマイズ案件を進めていて顧客の要望も(もちろん現場のスタッフの要望も)聞きながらつくっているので、「現場で出てくる不満」をクリアするものに仕上がってきている実感はあるけれども、まだ欲しいものが色々あるので引き続き制作を進めて行きたい。