MODX Evolution 1.0.6J-r1をリリースしました

2012年4月30日 23時45分 shortlink:http://modx.jp/?id=820

長年の課題であるキャッシュ改善の第2弾です。今回実装された新キャッシュモードは強力。業界最軽量レベルのメモリ消費です。

▲今回実装された新しいキャッシュモードと各CMSの比較グラフ。ただし他のCMSは標準でキャッシュが有効になっていませんのでご注意ください。MODXのキャッシュはネイティブにシステムに組み込まれているため副作用もほとんどなく、キャッシュの存在を意識することなく安定動作します。

その他、タグの記述方法にバリエーションを加え、Dreamweaverなどのオーサリングツールとの相性のよさをさらに高めました。HTMLコメントに埋め込む形で記述することで、オーサリングツールで作ったHTMLコードをそのままMODXのテンプレートとして利用することができます。

これまでのMODXの弱点を補う機能として、チャンクの公開設定機能を追加しました。リソースと同様、公開・非公開・公開開始日時・公開終了日時などを設定できます。これにより、ページ単位の公開・非公開だけでなく、ページ内の各ブロック単位の公開・非公開が自由にコントロールできるようになりました。

MODX Evolution 1.0.6J-r1 ダウンロード
http://code.google.com/p/modx-ja/downloads/detail?name=modx-1.0.6J-r1.zip

注意事項

古いウィジェットを削除しました

viewport・マーキー・ティッカーなど、古いHTML技術を用いるウィジェットを削除しました。古いタイプのパーツのため利用されているケースはめったにないと思いますが、これらのウィジェットを利用している場合はカスタムウィジェットを自作するなどの対応が必要です。もし困った場合は問い合わせフォームやフォーラムなどを通じてご相談いただければフォローいたします。

アップデートの手順

https://modx.jp/docs/update.html

上記を参照してください。

変更内容

新機能・新仕様

不具合修正

改善

不具合報告・改善要望について

フォーラムまたは問い合わせフォームを通じてご連絡ください。

主な改善内容

▲キャッシュ設定として「バイパスモード」を新しく追加しました。バイパスモードに設定すると15KB程度のメモリで動作します。通常、軽量CMSとして分類されるタイプのCMSでも1MB前後のメモリを消費します。

▲キャッシュモードはグローバル設定で切り替えます。

バイパスモードではページ出力を完全なHTMLとして保存し、二度目からのアクセスではシステム本体の処理を通さずキャッシュの中身をそのまま出力します。そのため、スニペットコールを[!キャッシュ無効書式!]で書いてもキャッシュは無効になりません。また、アクセスのたびごとに動的な制御を行なうようなプラグイン処理も使えません。ただし管理画面にログインしている間や、POST操作を行なった場合は、自動的に通常のキャッシュモードにスイッチしますので、QuickManagereFormなどは特に問題なく利用できます。
当サイトは随所に高度なMODXテクニックを用いてますが、現在パイパスモードで安定動作しております。フッタ付近にメモリ消費を表示しておりますので、参考にご覧ください。

また、通常のキャッシュ処理も改善しました。これまでは、リソースIDごとにしかキャッシュを管理できなかったため、たとえばDittoのページ分割処理(数件ごとにページを分ける機能)を用いる場合はキャッシュを無効にして動的に出力する必要がありました。URI単位でキャッシュを管理するようにしましたので、当サイトのニュース記事一覧のようにページを分割する場合でもキャッシュを利用できます。

▲チャンクに「公開ステータス」「公開開始日時」「公開終了日時」「リッチテキストで編集」の設定を追加しました。たとえばバナーの管理などにチャンクを用いている場合、表示期間を自動的に制御することができます。また、不要になったチャンクを一時的に無効にしておくことができます。

これまでのMODXでは、公開期間を設定できるのはリソースのみでした。ページ自体の公開期間制御は簡単にできますが、ページ内の表示内容の公開期間制御はスニペットなどを利用する必要があるため、多少のスキルが必要でした。今回の改善により、チャンクを使って簡単にページ内各部の公開期間を設定できます。

▲既存サイトのHTMLファイルをそのまま利用できるようにしました。a-blog cmsのthemesディレクトリの機能を参考にしています。対応しているファイルの拡張子は .html .htm .xml .rdf .css .js .txt .ico .jpg .jpeg .png .gif です。物理的に存在するパスが異なりますので、CGIやPHPファイルを実行することはできません。また、a-blog cmsのように、テンプレートの切り替えと連動させることは現在のところできません。

ファイル中にスニペットコールやコンフィグ変数を記述・処理できます。当機能をうまく利用すれば、a-blog cmsと同様、既存サイトの取り込みに強いCMSとしてMODXを活用できます。

[[eForm?tpl=フォーム&report=メール]]

▲eFormではformidパラメータが必須とされていましたが、コーディングミスであることが分かったため修正しました。実際には上記のように2つのパラメータ指定のみが必要です。

▲グローバル設定更新時、各部の設定が間違っている場合にアラートを表示するように改善しました。

▲フレンドリーURL設定時は、自動的に.htaccessファイルを生成しますが、正しく生成できない場合は上記のようなアラートを表示します。上記画像の例では、設置ディレクトリに書き込み権限を与えてなかったために生成処理ができず、エラーとなっています。

<!-- #modx [[Wayfinder?startId=0&level=1]] -->
<ul class="navi">
<li>ダミーのメニュー1</li>
<li>ダミーのメニュー2</li>
<li>ダミーのメニュー3</li>
<li>ダミーのメニュー4</li>
<li>ダミーのメニュー5</li>
</ul>
<!-- /#modx -->

上記のように、HTMLコメントで包んだ形でのMODXタグ記述が可能になりました。上記の記述は、

[[Wayfinder?startId=0&level=1]]

実際にはこのように変換されます。

処理時には、HTMLコメントとダミーのHTML記述部分は削除され、変数部分のみが実行されます。スニペットコール・リソース変数・テンプレート変数・チャンク・コンフィグ変数など、ひととおり対応しています。もちろんスニペットコールの複数行記述にも対応しています。

上記の2つの文字列がトリガーになります。この2つのコメントにはさまれた部分は出力されません。開始コメント内の#modx文字列以降に記述された部分のみが出力されます。

もともとMODXだけでサイトを組み立てている場合はかえって手間がかかるため意味がありませんが、ダミーのデザインコードを残したままMODXのテンプレートとして使えるため、Dreamweaverなどのオーサリングツールを利用してテンプレートを作っている場合は便利に利用できます。この方法はすでにSOY CMSやa-blog cmsなどで高い評価を受けています。今までは、Dreamweaverで作ったHTMLコードはそのままでは使えず、動的出力部分をスニペットコールなどに置き換える作業が必要なため、頻繁にテンプレートを更新する場合は不便でした。

※過去バージョンのMODXでも、OnParseDocumentイベントを用いて同等の機能実装が可能ですが、負荷が高くなるため注意が必要です。

※注意

この書式は最新版では変更されています。

<!--@MODX: [[スニペットコールなど]]-->
<!--@IGNORE:BEGIN-->
・・・出力しない文字列・・・
<!--@IGNORE:END-->

最新版では上記の2つのコマンドを組み合わせます。

WebMatrix版について

これから調整します。

その他

気付いた点があればフォーラムまたは問い合わせフォームからフィードバックをお願いします。フォーラムやブログ、Twitterなどで寄せられた要望はこまめに拾って対応しておりますので、気軽に要望いただければ反映に努めたいと思います。

継続的にスポンサーを募集しており、ご支援に応じて、活動が安定します(特に印刷物の費用が必要です)。近年の活動の充実も、各方面からのご支援によるものです。具体的な条件については個別に相談させてください。

自慢のMODXサイトがありましたら、ぜひ事例掲載にお立ち寄りください。

1.0.6J-r1

PR

  • KAGOYA
  • ASP at AKIHABARA Japan
  • CMS AWARDS 2007 Winner
ページトップへ