MODXロゴ

WebサイトCMSとして、最近導入が広がっている「MODX」(モドエックス)[→日本公式サイト]について、試行錯誤しながらサイト構築をひと通りする機会がありました。
しかしながら、自分にとって理解しやすい解説が見当たらず、また解説サイトも多くはないので、自分なりにまとめたメモを公開します。
そんなにがっつりと構築したわけではないので、間違っている部分もあるかもしれませんが、ご了承ください。

勉強の仕方

書籍

書籍は「MODxでつくる!最強のCMSサイト」という書籍ひとつしか見当たらない。ちょっと古い上に、Amazonでの評価は分かれている。

書籍を購入してももちろん良いと思うが、どちらかというと、実際に導入してみて、入っているサンプルデータをいじくって実際の動作を確認するのが一番良いと思われる。

サイト

基本用語メモ

MODXには、聞きなれない用語が結構でてきてよくわからなくなるので、以下に自分なりの説明をまとめます。

  • リソース:ページ、RSS、問い合わせフォームなどサイト表示上の構成要素となるもの。外から見たときの一つ一つのコンテンツを指す。
  • モジュール:管理画面での機能を拡張するプラグインのようなもの
  • エレメント:リソースはページの内容・コンテンツを指すが、エレメントはそのコンテンツの元となる部分を指す。ページのテンプレート、テンプレート変数、チャンク、スニペット、プラグインなどである。リソースは、これらエレメントを自由に組み合わせて作成される
  • チャンク:ブログパーツのようなHTMLコードのパーツ。プログラムコードでは無い。単にHTMLパーツとして用いる事もできる(Google Adsenseのコードを入れて、任意の場所で利用したり、Google Adsenseのコードを入れておくと便利かもしれない。また、サイドバーなどにも用いることができそう。)が、各種スニペット用のテンプレートとして用いる場合もある。{{チャンク名}} で呼び出す。
  • スニペット:ブログパーツのようなPHPコードのパーツ。動的生成が可能なパーツ。フォーム機能や、ページ単位でのコメント機能、サーチフォーム、パンくずリストなどを実現する。[[スニペット名]] で呼び出す。パラメータを付けることも可能。その際には、スニペット名の後に「?」を付加する。各パラメータは、先頭に「半角スペース」と「&」を付加する。パラメータの値は、「`」(グレーブアクセント。Shift+@)で囲む。
  • プラグイン:システム寄りの拡張機能とのことだが、モジュールとの違いがよくわからない。
  • テンプレート変数:リソースのメタ情報を呼び出す。[*テンプレート変数名*]
  • プレースホルダー:スニペット内のテンプレート変数のようなもの。動的にどのように生成するかの指定に使われる。

基本構造メモ

管理画面左側にリソースツリーが見える
リソースツリーには、フォルダ構造のように階層構造とすることが可能。
階層のトップを指定して、その階層以下のコンテンツのRSSフィードを出す、などが可能

各リソースには、固有のページIDが割り振られており、そのID指定で、個別のページへのリンクが可能。
各リソースの末尾に「(3)」などの記載があるが、これが固有のページIDであり、その階層化にあるページ数では無いので注意。

リソース内で、「[~ページID~]」とすれば、そのIDページへのURLが出力される。

ページテンプレート作成法

ページテンプレートは、コンテンツを配置するテンプレートとなり、生のHTMLリソースで生成・編集が可能。
生のHTMLリソースからmodx指定のタグを埋め込むことで、簡単にテンプレート化が可能。

テンプレートにも、動的に生成したい部分(グローバルナビゲーションなど)があるが、そこは動的に生成するためのタグを入れることで対応が可能。

RSSフィードの生成法

ページを作成し、ページ設定から、コンテントタイプをRSS(application/rss+xml)にする。
コンテンツとしてDittoスニペットを呼び出す。

グローバルナビゲーション

グローバルナビゲーションは、指定のID以下のIDのページIDを対象として、有効なリソースツリーにしたがって生成されます。各リソースにメニューに表示するか否かのチェックボックスがあり、個別に設定も可能です。

プラグインのインストール

プラグインごとに異なると思いますが、通常、assetフォルダにプラグインの実体ファイルとルートフォルダにinstallフォルダをコピーし、installフォルダにアクセスするとウィザードによってインストールできるようになります。
インストール時には、診断も行うようですので、この手順に従うのが簡単で良いでしょう。

便利なプラグイン

EDIT AREA
編集エリアの行番号表示、自動インデント、ソースのシンタックスハイライト、タブによるインデントも可能なエディタ。動作も軽く便利。ショートカットキーも利用可能(Ctrl+Sで、保存かつ終了)

Sitemap
サイトからソースをダウンロードし、スニペットを新規作成から登録。指定のタグを入れれば簡単に作成可能。

DittoでRSSを出力する
RSS用のリソースを用意し、コンテンツ内容にDittoスニペットタグを入れる。
リソースの設定は、テンプレートを(Blank)にし、コンテントタイプを「application/rss+xml」)とし、リッチテキストで編集しないようにする。

出力方法は、2種類ある。
それは、parent_idを指定して、特定リソース+その配下のリソースのみのRSS生成とするか、start_idを指定して、リソース全体から指定のid以下のリソースRSSを生成するかである。
一部リソースをblogとし、それ以外を通常のサイトのようにしたいという場合には、blogリソースのidをparent_idとして出力するということも可能になる。

参考リンク:DittoでRSS出力する | Ryuzee.com

MODxでつくる!最強のCMSサイト
MODxフォーラムJapanese Co
ソーテック社
売り上げランキング: 34539