MODX

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
MODX
開発元 MODX LLC. / MODX JAPAN
最新版 1.0.6 / 1.0.6J-r3 / 2.2.2 / 2.2.2-ja / 2012年05月30日
対応OS クロスプラットフォーム
種別 コンテンツマネージメントシステム
ライセンス GNU General Public License
テンプレートを表示

MODX(モドエックス,モッドエックス)はPHPMySQLで動作するオープンソースコンテンツマネージメントシステムEtomiteから派生した。基本仕様のシンプルさ・テンプレートシステムの柔軟性・拡張性の高さ・URL設定の自由度の高さ・安定したキャッシュ制御による軽快な動作・ロールの概念に則ったユーザ権限管理・分かりやすい管理画面が特長。

目次

経緯 [編集]

EtomiteがMODXの前身となっている。2004年9月、Etomite用の機能拡張である「DocVar」がリリースされる。現在のMODXに備わっている「テンプレート変数」機能の元祖となったもので、これにより投稿画面上のカスタムフィールドの自由な拡張が可能になった。これに興味を示したRyan Thrashは、DocVarの開発を受け継ぎ、フォーラム内で意見交換を深める。

その一方でEtomite本体はAlex(原作者)のアクティビティが低下し、開発の停滞と共にプロジェクト継続に限界が感じられるようになった。2005年3月19日を境に、Ryanが関連する話題はEtomiteフォーラムから削除される。これを契機にプロジェクトの独立を決意、Etomiteに代わるCMSとして、Raymond Irving と共にMODXの開発が始まった。

2ヶ月後、有能な設計技術者であるJason Cowardを開発チームに迎え、開発においては彼がリーダーシップをとる形でMODXプロジェクトは大きな推進力を得る。同年夏に「プレビューテック版」としてMODXが初めてリリースされる。この時点では見た目はEtomiteとほとんど変わらなかったが、DocVarをネイティブにコアに組み込んだ「テンプレート変数」やプラグイン仕様などが追加され、シンプルさを損なわないままさらに高度な拡張が可能となった。小粒で扱いやすいCMSであるEtomiteをベースとしながらも、拡張性の高さが加わったことで、MODXはフレームワーク的なサイト管理ツールを志向することとなる。

その後、数回のプレビューテック版のリリースを通じてコミュニティ参加者との意思疎通を図り、基礎的な仕様をまとめ、秋に初のベータ版がリリースされた。ベータ版としての期間はその後4年に及び、この間にMODXは2つのシリーズに分かれて開発されることが正式に決定した。2009年8月1日、Evolutionシリーズが最初に正式版としてリリース。さらに翌年2010年7月、Revolutionシリーズ正式版がリリースされた。

EvolutionシリーズはMike Schell、RevolutionシリーズはShaun McCormickがコミットリーダーとしてそれぞれ開発を進めている。

2012年5月25日、新シリーズ「MODX 3」の開発開始が宣言される。2013年中のリリースを目指す。

CMSとしての機能 [編集]

デザインワークとの親和性 [編集]

テンプレートの作り方は「編集可能領域」をコンテンツ部分として埋め込むDreamweaverの方式とよく似ており、普通のHTMLのタグをほぼそのまま利用できる。投稿画面上の各フィールドとテンプレート上の動的出力部分が直結している。

<html>
<head>
<title>[*pagetitle*]</title>
</head>
<body>
[*content*]
</body>
</html>

たとえば上記のように記述した場合、投稿画面上の「リソース名」と「内容」が、テンプレート上ではそれぞれpagetitleとcontentに対応している。CMS独自のルールを通さず、コンテンツと直接つながっているため分かりやすい。

テンプレートデザインは所属カテゴリーなどに縛られることなく、ページごとに自由に割り当てることができる(これもDreamweaverと似ている)。ポップアップウィンドウのような単発性の高いページも手軽に作ることができる。

テンプレートとチャンク [編集]

「テンプレート」と「チャンク」の仕組みはDreamweaverの「テンプレート」と「ライブラリ」の関係に相当する。

<html>
<head>
<title>[*pagetitle*]</title>
</head>
<body>
{{特売バナー}}
[*content*]
</body>
</html>

たとえば上記のように記述した場合、「特売バナー」という名前のチャンクの内容をそこに出力することができる。この特売バナーをサイト全体の多数のページに貼り付けておけば、バナー呼び出し元のチャンクひとつを書き換えるだけで全てを一括で更新できる。

静的構成のサイトを意識 [編集]

自由なURLカスタマイズ・高度なキャッシュ制御による高速出力などにより、MODXによって作られたサイトは通常のhtmlファイルで静的に構成されたサイトと見分けがつかないものにできる。エクスポート機能を使うことにより実際に静的なサイトを作ることもできるが、エクスポート機能はモジュールに準ずる機能であり、MODXの本質を示すものではない。

コンテンツ構造 [編集]

多くの有名CMSのコンテンツ構造が制限なくコンテンツを追加していけるスタック型であるのに対し、MODXはサイトの全貌を直感的に把握しやすいツリー型を採用している。WindowsやMacなどPCのファイルシステムがツリー構造(またはディレクトリ構造)であるのとイメージが近く、CMS初心者には理解しやすい構造である。必ずしもリソースの頂上がサイトのトップページになるわけではなく、ツリー内のどのページでも、自由にトップページに指定できる。

MODXのコンテンツ構造は単純さを重視している。「カテゴリーとエントリー」といった概念はないし、出力されるコンテンツがモジュールによって違うこともない。すべて「リソース」によってサイト全体が構成される。リソースはMovable Typeでいうところの「エントリー」のようなものであるが、MODXのコンテンツ構造がツリー体系である以上、リソース間には親子の関係はあるものの、親リソース独自の属性・サブリソース独自の属性といったものはない。全てのリソースが対等であるため、リソースの移動・複製・削除は自由にできる。

動的コンテンツ [編集]

Dreamweaverなどのオーサリングツールでは不可能な、自在なコンテンツコントロールによる動的コンテンツが作れる。新着情報のページをひとつ作ればトップページにも自動的にリンクを張る、などといった運用は簡単である。それは他のCMSでも可能だが、MODXではこれらの動的ギミックを、個々のページとテンプレートの区別なくパーツ感覚で手軽に貼り付けられ、柔軟に使える。たとえばナビゲーションスニペットはテンプレートに貼り付けるといいが、新着情報一覧スニペットはトップページに貼り付けるだけでいい。

管理画面 [編集]

一般的なCMSと、MODXの管理画面の雰囲気は異なる。Ajax技術を活用し、デスクトップアプリケーションに近い操作性を実現している。この傾向は、Revolutionにおいて特に顕著である。コンテンツ管理の考え方が単純なため、通常のCMSのように管理画面を設計すると扱いづらい。これを管理画面の操作性で補う考え方になっている。たとえば、任意の記事に対する編集・削除・複写・移動・公開・非公開などの基本操作は、2~3クリック程度で簡単にできるようになっている。

スニペット [編集]

ページ単位で手軽に設置できる「スニペット」と呼ばれる動的出力パーツも特徴のひとつである。スニペットは普通のphp文がほぼそのまま記述でき、MODXのAPIも利用すれば自由度の高い動的サイト作りが簡単に実現できる。配布されているスニペットも多く、その大半はFTPすら利用することなく、管理画面から簡単なコピー・ペーストによってコードを貼り付ければ使用できるようになっており、簡単にインストールできる。ただし高度な働きを持つスニペットは複数のファイルにより構成されており、インストールに際してFTP操作等が必要なものもある。

チャンク [編集]

スニペットと違い、静的なHTML文によって書かれるパーツ的なもの。Dreamweaverでいうところの「ライブラリ」のような使い方をする。たとえば複数ページにスポット的に挿入したいバナーなどに利用する。チャンクの中身を書き換えると、呼び出し先のページの出力も書き換わる(というより、その都度呼んでいる)。Dreamweaverと同じように、チャンクはリソースにもテンプレートにも手軽に貼り付けることができる。ヘッダやフッタ、ナビゲーションなどをチャンクとしてパーツ化すると、テンプレートをすっきり分かりやすく整理・記述できる。特に複数のテンプレートにより構成するサイトでは便利である。テンプレートを自由に割り当てられるのがMODXの長所のひとつなので、規模の大きいサイトほどチャンクは有効に利用できる。

またチャンクは、パターン出力機能を持つスニペットの出力のひな型として利用することもできる。

プラグイン [編集]

「ページ出力時」など「イベント」に対して動作を関連付けられる「プラグイン」という仕組みがある。たとえばアクセス解析やwiki記法サポートなどに用いることができる。管理画面を操作する場合のイベントにも割り当てられるため、たとえばTinyMCEなどWYSIWYGエディタの実装にも用いられる。スニペットが使われるのがページ単位でありページ内の任意箇所にトリガー的に記述するものであるのに対し、プラグインはサイト全体の機能拡張にも用いられるのが特長のひとつでもある。

モジュール [編集]

MODXの管理画面内に、アプリーケーションのように「モジュール」を追加できる。MODXがもともと持っている機能や画面を拡張するプラグインとは仕組みが全く異なり、モジュールは自らが持つ画面そのものが実体であり、プラグインほどはMODXの働きに密接には関係しない。たとえば「商品管理の画面を作りたい」といった場合にモジュールとして実装するとよい。

テンプレート変数 [編集]

いわゆる「カスタムフィールド」である。多くのCMSが「タイトル」「内容」などといった項目で個々のエントリーを構成するが、MODXではこうした項目の設定をかなり柔軟にできる。テキストフィールドやリストメニュー・チェックボックスなど、入力に用いるインターフェイスを自由に選ぶことができ、出力もフィルター的に自由にコントロールできる点は他のCMSではあまり見られない特長である。たとえば、もしその項目を入力しなかった場合は項目ごと出力しないなどといった制御が簡単にできる。この出力コントロールの仕組みは「ウィジェット」と呼ばれ、CMSならではの出力コントロールを実現するものである。ただしウィジェットで提供される処理はコア内部でハードコーディングされているため自由度には欠ける。自由度を求める場合は、テンプレート変数をスニペットに渡して処理するか、PHxのモディファイアを通すとよい。

ユーザ管理 [編集]

ロール概念に則ったユーザ管理。運営に携わるメンバーを管理するユーザ体系と、会員制サイトなど利用者としての参加を管理するユーザ体系の2つを持つ。ユーザ単位で割り当てられる属性は多く、きめ細かい。思いつく限りの自在なコントロールが可能。

習得にあたって最低限覚えるべきこと [編集]

デザインや構成の自由度の高さがMODXの特長のひとつであり、簡単なテンプレートの作り方を覚えるだけでも、MODXの便利さは十分に体感できる。テンプレート記述に必要なMODXタグはpagetitleとcontentの2つであり、他は普通にhtmlを書くだけで十分に機能する。

スニペットやプラグイン・モジュールなどの拡張機能は、使いこなせば便利なものではあるが必須ではない。最新版のMODXは同梱アドオンの重量化が進んでいるため大がかりな構成イメージがあるが、基本はシンプルなCMSである。簡単に習得できて、手軽に運用できる。最初の時点では拡張機能に依存せずに、コアのみで仕組みを習得すると理解が早い。

次のステップとしてDittoやWayfinderを習得すると、よりCMSらしい動的なコンテンツ制御が可能になる。

課題 [編集]

設計思想に由来する問題 [編集]

MODXはコンテンツ管理はツリー型であるため、特に管理画面においてはリソース数がツリーで見渡せる範囲を超えると扱いづらいという欠点があった。この欠点は、操作性を改善したリストビューを備えたMODX 1.0.5J-r9で、ある程度克服されている。

日常的な更新 [編集]

ブログなどシンプルな入力画面を備えるCMSに慣れていると、MODXのページ編集画面の項目構成が冗長に感じられることがある。「タイトル」「内容」以外に、「長いタイトル」「説明」「リンク属性」「要約」などが多数並ぶ。ManagerManagerプラグインを利用すると、任意の項目を非表示にすることができる。

公式リソースの不備 [編集]

API等に関するリソースがまだ満足に整備されていない(※注・現在はRevolution用のリソース整備に注力している)。

基礎的なフレームワークの整備 [編集]

Revolutionにおいては自前のフレームワークに則った開発が進められているが、Evolutionではphpの関数をそのまま使っている部分が多く開発効率が悪い。管理画面のほとんどは、phpとhtmlが混在したハードコーディングとなっている。

日本コミュニティ [編集]

かつてはMODX本家サイトに世界中のリソースを集約する方針だったが、現在では各国ごとにコミュニティ展開を充実させることを推奨している。この方針変更を受けて、2009年1月11日に日本国内の拠点であるMODX日本公式サイトがオープンした。

日本公式サイトの経緯 [編集]

2008年7月18日、日本コミュニティモデレータチームと本家開発チームのライアンとの音声対談が実現(Skype利用)。これをきっかけに、公式拠点を国内に整備する流れが加速。対談を通じて、日本の作家が作った数々のリソースやセキュリティ対策が海外で大きく評価されていることも知ることができた。

2009年1月11日にMODX日本公式サイトがオープン

2009年9月1日に日本公式フォーラムがオープン

現在ではモデレータ権限などは特に関係なく、Xoops Cubeなどと同様、組織としての形を持たないインフラ的な活動となっている。

Evolution と Revolution [編集]

これまでVer 0.9.7として開発を進めていた次世代版MODxが、MODx2.0・コードネーム「Revolution」として正式リリースされた。一方、すでに普及が進んでいるVer0.9.x系はMODx1.0・コードネーム「Evolution」として正式リリース。2つの正式版が並走開発されている。

MODx Revolutionでは管理画面のインターフェイスが一新された。全面的にExtJSが採用され、Evolutionと比べ操作性が格段に向上している。内部構造的にはPDOノウハウを意識しており、xPDO(OpenExpedio)と呼ばれるライブラリ(開発の進捗についてはフォーラム参照)が導入される。スニペットコールなどの書式が一部変わるため、デザインワークに影響する。これを考慮し、書式変換ツールが提供される予定。

Revolutionは、本格的な管理画面を持つフレームワークとして、他に見られない独特の存在感を示す。管理画面も枠組みとして提供され、サイトの目的に応じてメニュー構成や機能を自在に組み立てるものとなる。

Evolutionはこれまでどおり、軽量・コンパクトなCMSとして最適化が進められる。アップデートも手軽であり、管理面での負担が少ない。

その他の情報 [編集]

解説本 [編集]

  • MODxでつくる! 最強のCMSサイト ISBN 978-4-88166-573-2 - 0.9.5をベースとした内容であり、現在では古くなっている。最新の1.0.5をベースとした執筆が進行している。

似たタイプのCMS [編集]

  • CMS Made Simple - 日本語対応も進んでおり注目されている。開発ペースも早い。
  • TYPO3 - MODXと比較されることが多い。豊富なリソースと完成度の高さが注目されるTYPO3に比べ、採用技術の新しさと習得のしやすさがMODXのアドバンテージと言える。TYPO3の大きな特長であるTypoScriptは管理効率を大幅にアップさせる優れた言語だが、管理者は多少の学習が必要である。
  • SilverStripe
  • Syntax Desktop

受賞歴 [編集]

外部リンク [編集]

情報サイト [編集]

関連動画 [編集]