CMSのポテンシャルを引き出す─MODxで作る商用サイト

第22回祝!MODx-2.2リリース

遅くなりましたが、2012年になって初めての記事公開となります。本年もgihyo.jpとMODxをよろしくお願いいたします。

さて、ご存じの方もいらっしゃるかもしれませんが、年末からアナウンスされていたMODx-2.2がついに先日リリースされました。バージョン2.2.0-pl2ではさまざまなバグフィクスはもちろんのこと、いくつかの注目すべき新機能も加わっています。

そこで、今回はバージョン2.2.0-pl2のアップグレード方法といくつかの新機能について紹介していきたいと思います。

主な新機能の紹介

バージョン2.2.0-pl2では、さまざまな機能追加が行われていますが、いくつか簡単に紹介しておくと、主に次のような特徴があります。

  • メディアソースの実装:Amazon S3をファイルツリーとして使用できる
  • スタティックエレメントの実装:ファイルシステム上にチャンクやスニペットを設置可能
  • カスタムダッシュボード:管理画面のダッシュボードをカスタマイズ
  • UIの変更と高速化
  • アクセスポリシーやテンプレートのインポート、エクスポート
  • コマンドベースのインストール、アップグレード

また、ありがたいことに、日本語訳も以前より読みやすく改良されているようであり、MODX Japanの皆様には感謝の限りです。

MODxのアップグレード

MODx日本語版のアーカイブは例のごとくMODX Japanよりダウンロードします。新機能が備わったと言っても、アップグレード方法はこれまでと同様です。ただし、アップグレードを行う前に、2.2.xへのアップグレードドキュメントをまずは一読しておいてください。以前のバージョンから大きな変更が加わっているため、一部のスニペットが動作しない可能性もあります。事前のバックアップはお忘れなく。

さて、ここでは、新機能であるコマンドラインによるアップグレードを紹介したかったのですが、筆者の環境では次のように、WayFinderスニペットのクラスがエラーを吐き、簡単にはインストールを行うことができませんでした。

コマンドラインインストールでエラーが発生
% unzip modx-2.2.0-pl2-ja.zip
# cp -a 2.2.0-pl2-ja/* /var/www/html/
# cd /var/www/html
# chown -R apache:apache .
# php ./index.php --installmode=upgrade 
PHP Fatal error:  Call to a member function get() on a non-object in
 /var/www/html/core/components/wayfinder/wayfinder.class.php on line 165

本来はきちんとトラブルシューティングすべきなのでしょうが、時間の都合により今回はこれまで同様、ブラウザ経由でのアップグレードを行いました。MODxアップグレードの手順はすでに紹介済みですが、

  • アーカイブを展開
  • アーカイブ内のファイルやディレクトリを既存のMODxディレクトリにコピー
  • パーミッションを適切に修正
  • http://MODxサーバのIP/setup/ を表示

というのが基本的なステップです。無事インストールが終わったら、早速管理画面を表示してみてください。ログイン画面自体もこれまでと異なっており新鮮ですが、少しだけスクリーンショットを紹介しておきます。

図1 MODx-2.2.0-pl2の管理画面トップ
図1 MODx-2.2.0-pl2の管理画面トップ
図2 リソース作成画面
図2 リソース作成画面

このように、管理画面が以前よりもクールになり、操作性やレスポンスもずいぶん向上しています。

[新機能1]新しいメディアソースの使用

メディアソースとしてAmazon S3がサポートされたことで、リソース作成中にリソースブラウザを使用する際、つまり、画像などの貼り付けを行う場合、MODxサーバのファイルシステムだけではなくAmazon S3のストレージを直接指定できるようになったのですが、残念ながら筆者はS3を使用していないため、ここでは設定方法のみを紹介しておきます。

「ツール⁠⁠→⁠メディアソース」に進むと、デフォルトではMODxが動作しているサーバのファイルシステムを利用するための「Filesystem」というメディアソースが定義されています。Amazon S3を追加するためには、ここで「Create New Media Source」をクリックし、下表のようにアイテムを作成します。

名前My_S3
ソースタイプAmazon S3t

これだけではストレージ領域にアクセスするためのキー情報などが不足しているため、作成したMy_S3メディアソースを右クリックし、⁠Update Media Source」を選択します。この画面でバケットやアクセスキー、シークレットキーなどの指定を行ってください。

図3 Amazon S3の設定画面
図3 Amazon S3の設定画面

このようなメディアソースを作成しておけば、リソース作成時の画像や動画挿入時、次のようにAmazon S3を選択することができるようになります(繰り返しになりますが、筆者はS3を利用していないため、実際にはアイテムは表示されていません⁠⁠。

図4 メディアソースを指定した様子
図4 メディアソースを指定した様子

[新機能2]スタティックエレメント

「カスタムのチャンクやスニペットを作成したいが、ブラウザで毎回コーディングするのは(バージョン管理もできないし)大変。サーバ上のファイルを直接viやemacsで編集できたら便利なのに…」といった場合に役に立つのがスタティックエレメントです。

ここでは、例としてスタティックなチャンクを作成しますので、まずは次のようにして、サーバ上でチャンクファイルを作成しておきます。

スタティックチャンクの作成
# mkdir /var/www/html/assets/chunk
# echo 'This is static chunk' > /var/www/html/assets/chunk/StaticChunk.chk

次に、管理画面の左側メニューより、⁠エレメント⁠⁠→⁠チャンク⁠⁠→⁠新しいチャンク」に進み、⁠Is Static」というチェックを有効にし、チャンクの存在するメディアソース(今回はFilesystem)を指定、⁠Static File」として、先ほど作成しておいたStaticChunk.chkというファイルを指定します。

リソースを作成後、もう一度このチャンクを表示してみると、次図のように、チャンクコードの中にはStaticChunk.chkの内容が入っていることがわかります。さらに、チャンクファイルのパーミッションがMODxから書き込めるよう適切に設定されていれば、ファイルシステム上のエディタからでもブラウザからでも内容を変更することができ、大変便利です。

図5 スタティックチャンクを再表示(ファイルの中身がテキストエリアに表示される)
図5 スタティックチャンクを再表示(ファイルの中身がテキストエリアに表示される)

最後に

MODx-2.2.0-pl2の注目すべき新機能は、まだまだこれだけではありません。次回も引き続き新機能を中心に紹介を行っていく予定です。

おすすめ記事

記事・ニュース一覧