亀レス過ぎていまさらご本人がご覧になるかわかりませんが、1MODXファンとしてご参考まで。
> それで、bingo CMSのデザインユニットのような事はできないでしょうか?
>
http://www.bingo-cms.jp/character/d04/
> ここは画像、ここは文章、というのがあらかじめはっきり決まっているユニットを組み合わせて本文を作るというのは、Wordすらろくに使えないレベルの人でも簡単にきれいにレイアウトできて、良いアイデアだと思います。
確かに、Wordすらろくに使えないのに、やたらと表やリストや段組なんかを入れたがる人向けには、ユニット型というのは面白いアプローチですね。
MODXの場合、内容を入力する人とHTML/CSSを書く人は、同一か、完全に分かれている、というのが基本設計となっている気がします。
つまり、HTMLが分からないなら、レイアウトは別の人が考えて運用者は内容だけ入力すれば良い、という感じです。
内容を入力するだけでページが完成する、そのための裏側を自在に作り込めるという点では、私の知る限りMODXの右に出るCMSはありません。
# ちなみに、デザインユニットというのも、そういうリッチテキストエディタを開発すればMODXに組込可能だと思います。
# TinyMCEは選択肢の1つとして同梱されているだけですので。
以下は、Ryoさんはご存じの上での疑問かもしれませんが、他の迷っている方も見るかも知れないので一応。
MODXでは、非常に柔軟なテンプレート変数(いわゆるカスタムフィールド)の定義が出来るようになっています。
本文(Contents)欄などは、とりあえず初期状態でなんでも書ける余地を残すためのオマケみたいなものだと、勝手に思ってます。
汎用テンプレート以外では画面から消してしまって良い程です。
Ryoさんのおっしゃるアプローチを、MODXでは
1. ページレイアウトの種類ごとにテンプレートを作成する(例 : 「書評」)。※この時点では中身は空で良い。
2. 本文(Contents)欄を使わずに、テンプレート変数をなるべく細かく設定してあげる(例 : 「本のタイトル : 単行テキスト」「ISBN : 数値」「価格 : 数値」「発売日 : 日付」「著者 : 単行テキスト」「紹介画像 : 画像」「書評 : 複数行テキスト」)。
3. 設定したテンプレート変数を埋め込んだテンプレートを書く。
という風に行います。
こうしてあげれば、書評専用の管理画面ができます。
テンプレートとテンプレート変数のセットを他にも作れば、テンプレートを切り替えるだけでそれぞれ専用の入力画面が出せます。
同じ内容でレイアウトの異なるテンプレートをいくつか用意してあげたり、ラジオボタンで画像の配置を選択できるテンプレート変数を用意してあげたり、スニペットやカスタムウィジェットを使って、例えば価格なら勝手に半角化して3桁ごとにカンマ区切りされるようにする、英数字は自動で半角化する、著者名は何度も使うかも知れないのでManagerManagerでタグフィールド化しておく、等々、いくらでも親切な管理画面に出来ます。それこそ、運用者は「きちんとした日本語さえ書ければ良い」というレベルまで。
PHPでCMSを開発する、という開発者の視点で見るとMODXは最高のフレームワークだと思います。
先ほどの書評の例のように、構造化されたデータと表示の間をつなぐシステムを作るのに最適です。
表示に関する細かい要求にも制限が出ませんし、デザイナがどんな突飛なレイアウトを組んできても余裕で対応できます。
ただ、そのためにはいくらかシステム開発の思想が必要です。
設定する側がきちんと設計できないと、MODXは何の取り柄もないCMSにもなりかねません。
統一性や設計などない、好き勝手なページをたくさん作りたいという場合にも、あまり他に勝る部分はないと思います。
この辺が好き嫌いと使いどころの分かれるところかもしれませんね。