MODX Evolution 1.0.6J-r7をリリースしました
2012年10月8日 23時59分 shortlink:http://modx.jp/?id=860
管理画面内の多くの場面で使われているMooToolsを最新のjQueryに置き換える作業を進めています。念入りなテストを通じて安定動作を確認していますが、今回のリリースは各部の変更が多いためご注意ください。基本的には不具合修正に力を入れています。
注意事項
MooToolsをjQueryに置き換えています
管理画面内の多数の箇所で用いられている古いMooToolsを最新のjQueryに置き換えており、今回のリリースでだいたい8割くらいの置き換えが完了しました。この改善はブラウザの違いに影響する可能性がありますので、もし問題があった場合はブラウザを変更して検証いただければと思います。その上で現象を確定できた場合は、ご連絡いただければ対応いたします。
実際には、最新のjQueryのほうがクロスブラウザ対応が進んでいるため、今まで以上に安定して利用できるようになっていると思います。
アップデートの手順
https://modx.jp/docs/update.html
上記を参照してください。
変更内容
不具合修正
- リソース複製処理の不具合修正
http://forum.modx.jp/viewtopic.php?f=7&t=905 - 移動時にエイリアスが重複していた場合、新規投稿になるため修正
http://forum.modx.jp/viewtopic.php?f=7&t=901 - 画像アップロードができないため修正
http://forum.modx.jp/viewtopic.php?f=7&t=899 - mm_changeFieldHelp(ManagerManager)でJavaScriptエラー
http://forum.modx.jp/viewtopic.php?f=7&t=904 - ManagerManager - 正規表現エラーを修正
- テンプレート変数編集画面の「次の作成」が機能していないため修正
- インストーラで<b>タグが閉じられていない箇所があるため修正
- DataGridウィジェット - ページングを正しく行なえないため修正
- TinyMCE - ユーザ設定の$modx->config['editor_css_path']を認識しないため修正
http://forum.modx.jp/viewtopic.php?f=7&t=915 - モジュール設定画面内の画像のリンク切れ修正
- Ditto - JSON文字列に不要なカンマが含まれているため削除
http://chibinowa.net/notebook/modx/ditto-json-jquery.html - Ditto - JSONフォーマットでシングルクォートを使えるように修正
http://chibinowa.net/notebook/modx/ditto-json-jquery.html - $modx->addEventListener()の返り値が正しくないため修正
- session_nameが同じだと片方にログインすればもう片方にも認証なしで入れてしまうため修正
http://forum.modx.jp/viewtopic.php?f=32&t=404 - 投稿画面でテンプレートの変更ができないことがあるため修正
http://forum.modx.jp/viewtopic.php?f=7&t=914
新機能・新仕様
- エクスポート機能の処理モードを「ダイレクト(新機能)」「クロール(従来互換)」の2つから選べるようにする
- Revolutionに倣って$modx->getOption()と$modx->setOptionを追加
- TinyMCE - ひな型コード挿入機能を追加
- システムイベント OnManagerPreFrameLoader・OnManagerFrameLoaderを追加
- 投稿画面 - descriptionフィールドのフォーム形式をtextareaに変更
- 投稿画面 - リンク属性(link_attributes)をページ設定タブに移動
- 投稿画面 - introtextの縦幅を少し狭くする
- TopicPath - &tplOuterをデフォルトで出力しない
http://forum.modx.jp/viewtopic.php?f=7&t=935 - jquery.maskedinput.js(日付入力支援)を追加
- MODxMailer(PHPMailer)の設定をオーバーライドできるようにする(SMTP送信なども可能。sample.mailer.config.inc.php参照)
- データベース接続に用いるエンコードを新規インストール時にutf8に固定
- ファイルブラウザでアップロード時、許可されない文字を含むファイル名を自動的に正規化
- エレメントのロック権限をAdministratorロールからロール設定権限を持つロールに変更
- モジュールのGUIDを必ずセット
- 管理画面のメニューペイン・ツリーペインのMooToolsをjQueryに差し替え
- MODX_CORE_PATH導入(Revo準拠)
- キャッシュファイルの数が1000以上に増えた場合、リクエスト数100回に5回の確率でキャッシュを初期化するよう改善
- リソース変数をプレースホルダとして用いることができるように改善
http://forum.modx.jp/viewtopic.php?f=7&t=906 - Wayfinder - &titleOfLinksで優先順位をつけて複数の値を設定できるようにする
- Wayfinder - &textOfLinksで優先順位をつけて複数の値を設定できるようにする
- Wayfinder - [+wf.alias+]が空の時はidを取得
- メニューオーダー自動増分が「いいえ」の場合はリソース複写時にメニューオーダーを変更しない
http://forum.modx.jp/viewtopic.php?f=7&t=905 - $modx->sendmail()で複数の送信先をセットできるようにする(カンマ区切り)
- $modx->stripAlias()にパラメータを追加
- $modx->db->lastQueryを追加
- $modx->join()を追加
- $modx->db->update() パラメータ追加
改善
- エクスポート処理を高速化(従来の60~70倍)
- ファイルアップロード時のログ取得を行なえるようにする
- 管理画面にログインしていない時はファイルブラウザを確実に使えないようにする
- 管理画面に関係する操作にはIN_MANAGER_MODE定数を定義する
- mkdirの後で必ずchmodを実行する
- ファイルブラウザで表示する画像のサムネイルファイルをサブディレクトリ(.thumb)にまとめる
- ファイル管理画面・ファイルブラウザでファイル選択と同時にファイルをアップロード
- ファイルブラウザの不要な処理(Authなど)を整理
- ファイル管理画面に画像をアップロードした時に画像を表示
- ファイル管理画面のメッセージ表示領域を移動
- 入力フォーム単位のdocumentdirtyのチェック処理をjQueryによる一括指定に変更
- キャンセルボタンをクリックした時にdocumentDirtyステータスを解除しない
- カスタムtvの初期値をセット
- インストール時の言語をブラウザ設定から自動検出($_SERVER['HTTP_ACCEPT_LANGUAGE'])
- モジュールと各エレメントの関連付けインターフェイスを分かりやすく改善
- 新規カテゴリー追加のUIを改善
- TinyMCE - スニペットコールやチャンクを<p>要素で囲まない
http://forum.modx.jp/viewtopic.php?f=32&t=916 - キャッシュがバイパスモードの際、404ページ表示時にURLの数だけキャッシュを生成しないようにする
- $modx->getDocuments() の処理を整理
- TinyMCE 3.5.7 アップデート
- tinymce.linklist.flat.php 削除
- enable-bindings.tpl削除(コアに機能を統合したため)
- $modx->['enable_bindings']をコア機能として組み込む
- サンプルコンテンツ調整(RSSフィードにdescriptionを設定する)
- Ditto - RSSフィードのdescriptionに改行が入らないようにする
- ManagerManager - mm_default()の値でシングルクォートなどを使えるようにする
http://forum.modx.jp/viewtopic.php?p=5046#p5046 - メソッド名を処理内容に合ったものに変更 $modx->getDocumentListing() → $modx->getIdFromAlias()
- 管理画面リソースツリーのチップヘルプの表示を改善(見やすく改行を入れる)
- QuickManager - 無効なオプション設定が混入しているため削除
- DataGridウィジェット - Field Namesを指定せずに済むように改善
- 日付入力・メニューオーダー入力ではIMEを無効にする
- QuickManager - Load jQuery in managerオプションを廃止
- QuickManager - jqueryコンフリクトモード修正
- QuickManager - 編集画面でのjquery読み込みオプションを廃止(MODX本体がデフォルトで読み込むようになったため)
- アップロード可能なファイルとしてcsvを追加
- DataGridウィジェット - 処理の実体が存在しないプロパティを削除
- ファイルアップロード - アップロード失敗時にログを残す
- デフォルトのmanager_themeをセット
- $modx->rewriteUrls()の処理を見直し
http://forum.modx.jp/viewtopic.php?f=7&t=911 - QuickManager のjQuery対応を改善
- $modx->getDocumentListing()の処理を見直し
- DataGridウィジェット - class名を変更
- DocManager - ユーザビリティを改善
- DataGridウィジェット - デリミタの指定を改善
- DataGridウィジェット - ヘッダ検出・コミット忘れ
- DataGridウィジェット - デザイン調整
- DataGridウィジェット - 最初の行をヘッダとして認識するオプションを追加
- DataGridウィジェット - ページングまわりの処理及びデザインを改善
- datagridウィジェットのデリミタ指定をリストから選択できるようにする
- テンプレート変数 - ウィジェットのプロパティ値でカンマとバックスラッシュを使えるようにする
- テンプレート変数 - 新規作成時にデフォルトテンプレートにデフォルトでチェック
- テンプレート変数 - データグリッドのソースファイルエンコードをリスト化
- テンプレート変数 - カスタムフォームの初期値を改善
- ManagerManager - カスタムフォームの判定を改善
- テンプレート変数・ManagerManager - deprecated_tv_typesを削除
- ManagerManager - Version更新
- テンプレート変数 - データグリッドの機能を大幅に改善
- エクセルからの貼り付け対応(タブをデリミタとして認識)・CSVファイルの読み込み対応・ヘッダ指定の省略可など
- テンプレート変数設定 - 文字列処理用のフィルターをいくつか追加
- テンプレート変数設定画面 - 初期値をセット
- DocManager - キャンセルボタンを追加
- ウィジェット設定欄でセミコロンを使えるようにする
- datagridウィジェットの各部の初期値を省略できるようにする
- 管理画面のツールチップヘルプをMooToolsからjquery.powertipmin.jsに差し替え
- 本家サイト内ページへのリンクを最新状況に合わせて変更
- テンプレート変数設定画面 - 「入力時のオプション」の表示を出し分ける(selectやradio以外では不要)
- ツリーノード - parentの値を取得できない時は0をセットする
- 不要なisset($_GET['savestateonly'])判定を削除
- Installer - MooToolsをjqueryに置き換え
- jqueryアップデート(1.8.2)
- keepMeAlive()関数をインラインで記述してsession.jsを削除
- JSON文字列のプロパティ名はダブルクォートで囲む必要があるため修正(MooTools以外では認識されないため)
- session.js - mootoolsの処理をjqueryに置き換え
- インストーラからEtomite用のアップデート文を削除
- PHPMailerのSenderプロパティをセット(exitの書き方を簡略化)
- リストア機能改善(site_urlやfilemanager_pathを書き換えない)
http://forum.modx.jp/viewtopic.php?f=7&t=909 - TinyMCE - 設定画面デザイン調整
- TinyMCE - バージョンアップ直後のスクリプト読み込み更新を改善
- TinyMCE - ユーザ設定の不便をある程度改善
http://forum.modx.jp/viewtopic.php?f=7&t=915 - Wayfinder - テンプレート変数情報の取得にMODX本体APIを用いる
- MakeTable class をdocumentParserで読み込み
- DocManager デザイン調整
- mysql関数をDBAPIに置き換え
- 古いDB関数をDBAPIに置き換え
- googleapiのjqueryのバージョンを1.8にアップデート
- バイパスキャッシュモード - 本体パーサに合わせて変数名を変更
- config.inc.tplディレクトリ変更
- jQueryのパスをコア領域内に移動
- content・tempをコンテナ名に用いることができるように改善
- config.inc.phpをシンプル化
- MySQL - Strictモード対策
- ファイル管理画面 - 「.. 」を除外
- ファイル管理画面 - ディレクトリ内にファイルが存在する場合でもディレクトリを削除できるようにする
- フレンドリーURL設定・WebMatrix対応
- robots.txt内容整理
スクリーンショット
▲今回、古いバージョンのMooToolsライブラリを最新のjQueryに置き換える作業を行なっています。その影響で、今まで動作していなかった機能をいくつか確認できました。たとえばアップデート直後は上記のようなメッセージを表示する仕様になっていたようです。
▲HTMLエクスポート処理を高速化しました。従来なら14秒近くかかっていた処理が、
▲新しい処理では1秒以下で完了します。
▲モードを選べます。header関数を用いるスニペットを組み込んでいて途中で処理が止まってしまう場合は従来動作のクロールモードを選択してください。
▲MODxMailer(PHPMailer)の基本設定を上書きできるようにしました。上記のように記述すると、GmailのSMTPサーバ経由でメールを送信できるようになります。
▲新イベントOnManagerPreFrameLoader・OnManagerFrameLoaderを実装しました。管理画面のフレームを読み込む直前・直後に実行できます。利用できる変数は$actionで、管理画面アクション($_GET['a'])と同じです。
▲慣れたユーザ向けに、投稿画面の日付入力を手軽にできるようにしました。
▲投稿画面のTinyMCEツールバーに、ひな型挿入機能を追加しました。
▲上記のように、事前に登録しておいた任意のHTMLコードを挿入できます。挿入してから、各部を手作業で適当に書き換えて使います。
▲登録はグローバル設定で行ないます。ひな型の登録先としてリソースまたはチャンクが使えます。
▲テンプレート変数のDataGridウィジェットを本格的にメンテナンスしました。上記のような表組みを簡単に作成することができます。件数が多い場合はページングできます。各ページはキャッシュ対応なので負荷の心配もありません。
▲テンプレート変数を上記のように設定します。
▲表計算ソフトからデータをコピーします。
▲貼り付けます。これだけで表組み完成です。テキストの貼り付け以外に、データベースやアップロードしたCSVファイルを読み込むことも可能です。詳細についてはブログ記事を参照してください。
XREA対応
※10月28日追記
以下で解説する方法ではQuickManagerが動作しないようです。auto_prepend_fileディレクティブを利用する方法を用いてください。
今回のリリースより、XREAサーバでの運用をほぼ問題なく行なえるようになりました。これまでは、基本的には動作するものの画像やファイルのアップロードだけは思うようにいきませんでした。
<FilesMatch "\.php$>
AddHandler application/x-httpd-phpcgi .php
</FilesMatch>
MODX設置ディレクトリの .htaccessに上記の3行を追加します。
次に、サーバのユーザルートに「tmp」など適当な名前でディレクトリを作ります。FTPでアクセスして、一番上の階層です。
session_save_path('/virtual/ユーザ名/tmp');
autoload.phpというファイルを作成し、上記の一行を記述してMODX設置ディレクトリ(index.phpや.htaccessがあるディレクトリ)に転送します。
今後の予定
- リビジョン管理機能の実装を進めています。
- 管理画面内で使用しているMooToolsをjQueryに置き換えます。
- 現在のところ地道な機能改善を続けていますが、ビジュアル系展開も検討しています。
その他
気付いた点があればフォーラムまたは問い合わせフォームからフィードバックをお願いします。
ご自慢のMODXサイトがありましたら、ぜひ事例掲載にお立ち寄りください。