目次

こんなCMSってどうですか?

[ Category : CMS開発プロジェクト ] 2010年01月23日 12:42
 ウェブサイトの作成をはじめて、気づいたら15年ほど経過したことになります。様々なCMSを試しては乗り換えることを繰り返し、あーでもないこうでもないと言いながら、現在のところDokuWikiが最も理想に近いCMSとなっています。しかし、DokuWikiであっても満足できない部分があるんです。それは…

ボクにとっての理想のCMSとは?

Wikiエンジン搭載

 どんなに動画や画像を駆使するようになったとしても、WEBサイトのコンテンツから文章がなくなることは当分ないでしょう。文章入力という作業を考えた場合、Wikiエンジンは必須だと言えます。

可変レイアウト

 一般的に可変レイアウトと言うと、ウェブブラウザの横幅に合わせてページの横幅が自在に変わることを指しますが、そういう意味ではなく、「ページごと、いや、さらにセクションごとに自由にレイアウトを変えることができる」という意味での「可変レイアウト」です。全てのページが統一されたレイアウトというのは面白みが半減してしまいます。特に、何かのパンフレットなどをWEB上に作成するような場合、「このページのこのセクションは3段の段組みで表したい」とか、「このセクションのh2だけは赤色にしたい」という風に、細かくデザインを指定したくなるものです。そういうニーズに対応できるCMSが欲しいと思っています。

時系列コンテンツと章立てコンテンツの混在

 お知らせやブログ等は時系列に並べるのが通常ですが、それ以外のメインのコンテンツは章立てで並べたいものです。これらの2系列を自由にサイト内に設置できることが理想です。

拡張性

 デザインの変更や機能の追加など、必要に応じて柔軟に手を加えられる拡張性が欲しいところです。

データベース不要

 バックアップのしやすさや導入ハードルの低さを考慮し、テキスト形式でデータを保存できるCMSが望ましいと思います。

こんなCMSが欲しい!

エントリーの最小単位は「セクション」

 1回の投稿で、1つのセクション(段落)を作成し、その際、1つの画面内で本文とCSSの両方を並行して作成&修正できるCMSです。セクション単位でCSSをつくることができるというのが最大の特徴です。もちろん、別途、サイト全体のデザインを担うCSSも作成しておくことができ1)、セクション内のCSSが空欄の場合はそちらに準じて表示されるわけです。

セクションを寄せ集めて「ページ」を作成する

 複数のセクション(もしくは1つのセクションでも可能)を配置させてページのボディー部を作成します。セクションは使い回しができるようになっていて、複数のページから呼び出すことができます。

 手前味噌で申し訳ありませんが、こちらのサイト(たいしたデザインでなくてごめんなさい…)を作成する際に、セクションごとにHTMLとCSSを1つのファイルにまとめておいてPHPで呼び出し組み立てるという手法を使ったんですが、ものすごく編集がしやすかったんです。ある部分だけマージンを増やしたくなり、後からクラスを追加するようなことがあったわけですが、そういう場合は、肥大化したCSSに追加するよりも小分けしたセクションごとのCSSに追加した方が把握しやすいですし、管理がとても楽だったわけです。そのときのコーディングはローカルのテキストエディタで行ったわけですが、それを、WEB上でやってしまえればいいなぁと思っているわけです。

動的コンテンツをページ内に表示する「モジュール」機能

 掲示板機能やRSSリーダ、ブログ記事の新着情報、twitterに代表される外部コンテンツの表示等、動的なコンテンツをページ内に表示させるための「モジュール」を、いわゆるプラグインライクに追加できる機能です。これは、静的なセクションと同様、任意のページの任意の場所に配置させたり、ヘッダやフッタ、サイドメニュー等として繰り返し使い回しができます。

ページの構成を使い回しできる「テンプレート」機能

 同じようなレイアウトで何度もページを作成しなければならない場合は、あらかじめテンプレートとしてページのアウトラインを登録しておき、容易に作成できるようになっています。

サイト全体のデザインを差し替えられる「デザインパッケージ」機能

 いわゆる「テンプレート」や「スキン」等の言葉で表現されるもので、サイト全体のデザインをパッケージ化し切り替えることができるようになっています。

関連する複数ページをまとめる「マッピング」機能

 いわゆるカテゴライズに相当する機能です。分類ごとにサイドメニューに表示させたり、一覧としてサイトマップを吐き出せるようになっています。

機能を追加する「プラグイン」を実装

 Wikiエンジンの拡張や管理機能の追加等、モジュールでは対応が難しい機能拡張をプラグインで実現できます。

認証システムの搭載

 グループウェアとして利用できるように、管理者権限、編集権限、閲覧権限などをページごとに設定できるようになっています。

待つ? つくっちゃう?

 こういう夢のようなCMSが誕生するのをじっと待っているか、無謀ながらもつくってみようとチャレンジするか。うん、やるだけやってみようかな…。

 というわけで、CMS開発プロジェクトが立ち上がってしまいました。基本構造はどうにかできるような気がするんですが、セキュリティーの問題や実行速度の改善、Ajaxの搭載など、1人では厳しい部分が多々あります。もし、興味のある方がいらしゃいましたら、どんなタイミングでも構いませんので適当にからんであげてください。中の人はとても喜ぶと思います。

Discussion

1) これは、後述の「デザインパッケージ」内に収録