MODx Evolution 1.0.4 日本語版Revision4をリリースしました

2010年11月20日 18時06分 shortlink:http://modx.jp/?id=257

毎月定例の日本語版のリビジョンアップを1.0.4J-r4としてリリースします。今回のアップデートは、デバッグを効率よく行なうために必要なエラー情報の詳細化・管理メンバーのアクティビティ情報の出力・ダッシュボード領域の整理などが主な内容です。また、同梱のAjaxSearchとQuickManagerをバージョンアップしています。

AjaxSearchはセキュリティ面が強化されており、AjaxSearchを利用しているユーザにとっては重要なアップデートとなっています。outputパラメータの追加によりレイアウト上の自由度も向上しており(1.8系まではAjaxモードでは検索窓の直下にしか検索結果を出力できなかった)、サイト内検索をインスタントに実装してみたい人にもおすすめできます。また、日本語ファイルの翻訳も全面的に見直したので、サイト内検索を違和感なく実装できます。

ヘルプはWebサイト構築業者やデザイナーを意識したTipsや、簡単なプログラミングテクニックなどを追記しました。

■MODx Evolution 1.0.4 日本語版 Revision4 ダウンロード
http://code.google.com/p/modx-ja/downloads/detail?name=modx-1.0.4J-r4.zip
0.9.6.3以前からアップデートする場合はQuickEditプラグインとBottom Button Barプラグインが不要になりますので、使わない場合は削除してください。

今回から「コアのみのアップデータ」は配布しません。上記のアーカイブからmanagerフォルダだけを取り出して上書きし、グローバル設定を空更新するだけでコアのアップデートを手軽に行なうことができます。この場合はデータベースの書き換えも行ないません。

変更内容

デモサイト

http://demo.modx.jp/manager/
ログイン名・パスワードをセット済み。そのままログインボタンをクリックしてください。

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

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

アップデートの手順

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

上記をご覧ください。

次回リリースについて

次回のリビジョンアップは12月初旬を予定しています。

スクリーンショット


▲Parse Error出力の例。document.parser.class.inc.phpの771行目のeval関数が実行しているコード・・・の2行目でtrim関数が単純なコーディングミスによるエラーを起こしていることが分かりますが、このエラーの内容では、MODx本体側のコードに問題があるのか、スニペットやプラグインに問題があるのかが分かりません。MODxの扱いに慣れている人であれば、771行目のevalエラーといえばスニペットの問題であることがピンときますが、それでもスニペット名までは分かりません。


▲今回はこのようにエラートラッキングを改善しました。スニペット名・エラーを起こしたページのURL・クライアントが持っているリファラ情報とUA情報・リソースIDなどを取得できます。プラグインのエラーも同様にトラッキングできます。


▲逆に、一般の訪問者にはエラー情報をほとんど見せないことにしました。MODxのエラーであることすら分かりません。


「Assigning the return value of new by reference is deprecated」という警告が上記のように大量に蓄積されていることがあります。主にphp5.3系環境でWordPressIntegratorを導入しているケースで見られるもので、特に問題があるわけではありませんが、このログの蓄積自体が非常に多く運用上支障をきたすことがあります。もともとMODxはDeprecated警告を無視する仕様になっているのですが、これが期待どおりに動いてなかったため修正しました。


▲ManagerManagerでmm_widget_showimagetvsルールを用いる時、@inheritコマンドが記述されていると、投稿画面を開くたびにサーバのエラーログに404エラーが蓄積されます。@inheritコマンドが記述されている場合はこれを画像と判断しないよう分岐を加えました。


▲DocManagerの「メニューを整列」は上記のようになっていますが、「メニューに表示しない」リソースも同じようにリストアップされているため、メニューを整列させるという肝心の作業がしづらいです。


▲上記のように、メニューに表示されるリソースのみを太字で表示し、他は目立たないようにしました。さらに、非公開のリソースは背景を薄い黄色で出力します。


▲ナビゲーションがすっきりと整列できたことを目視で確認できます。


▲コード編集画面の見た目に関する改善。現状は上記のように、インデントや空白による位置揃えが配慮されず見づらく感じます。


▲monospaceフォントで表示するようにしたので、揃えるところが揃って見た目に分かりやすくなりました。シングルクォーテーションも見やすくなっています。


▲初回のログインに限って「前回のログイン日時」が1970年で表示される問題。二度目のログインで直りますし実害はありませんが、初めてMODxを使うぞという時に「40年ぶり?」と言われると不安を感じます。小さな問題ですが修正しました。


▲隠し機能ですが、ダッシュボードにモジュールの一覧を表示できるようにしました。


▲/assets/templates/manager/welcome.html をテキストエディタで開いて、上記のようにModulesプレースホルダーを記述すると、そこにモジュール一覧を出力します。デフォルトではコメントアウトしてあり、MODx慣れしている人ならそのへんを見ればなんとなく分かると思います。


▲挿入ボタンをクリックしてファイルブラウザからアイコン画像を任意に指定した場合は相対パスになりますが、そのままだとパス違いでアイコンが表示されません。相対パスの場合はとりあえずパスを補うようにしました。モジュールというシステムの性格上、あまりスマートな解決ではありませんが、本家開発チームが仕様検討を保留している現状ではこうするのがベターです。


▲アイコン画像のサイズは32x32pxを推奨。Crystal Clearアイコン集などがおすすめです。


▲ダッシュボードの「最近編集・作成されたリソース」は、編集日時が分からないため実用性に欠けます。着信時刻が分からない着信履歴のようです。誰が編集したのかも分かりません。


▲編集日時を出力するよう改善しました。コードを見る限り、ここは自分が編集したリソースのみを対象としていることが分かったため文言も少し修正しました。


▲ユーザ一覧画面。単純にアカウント名の順に並べているだけで、各メンバーのアクティビティまでは分かりません。


▲直近にログインした順に並べるよう改善しました。一度もログインしていないメンバーのログイン時刻は「 - 」として表示します。また、アカウント休止設定にしているメンバーは末尾にまとめて表示します。上記の例のように数人程度ならあまり不便はありませんが、数十人以上が運用に関わるケースでは役立ちます。さぼっている人アクティビティの低いメンバーに声をかけるなどして、サイト更新の活性化につなげるとよいでしょう。なお「アクセス拒否」などの文言は懲罰的で厳しい印象があり逆に使いづらいため、柔らかめの「休止」という表現に改めました。


▲静的htmlファイルをMODxにインポートする時、親リソースが指定されている場合はサイトツリーをリセットできないようにしました。親リソースを指定する場合に全リソースを削除するような無意味なことをする人はいないと思いますが、念のために制限をかけました。


▲ダッシュボードのタブ構成を整理。同じような性格を持つセクションをタブごとにまとめました。「受信トレイに 0 件のメッセージが入っています。0 件が未読です」というメッセージもシンプルに修正。サイト名の下に表示していた「MODxへようこそ」は削除しました。


▲アップデート時にインストーラのソースを通じてデータベースのパスワードを閲覧できる問題があったため修正しました。今回は修正を施したのでよいですが、もし過去にMODxをインストールした時のinstallディレクトリをまだサーバ上に残している場合は、迷わず今すぐに削除してください。


▲MODxのインストーラには、書式に則って作られたエレメントファイルを自動的に検出し、まとめてインストールする機能が備わっています。これによって、オリジナルのMODxパッケージを作ることができます。この機能を利用してテンプレート変数を自動インストールさせたい時、関連付けるテンプレートを複数指定できない不具合があったため修正。また、これを機会にテンプレート変数の空ディレクトリを同梱することにしました。


特定バージョンのTinyMCEとファイルブラウザの相性問題を解決。TinyMCEがファイルブラウザに正しい情報を渡さなかった場合でも、ファイルブラウザ側で自動的に値を正規化するように改善しました。MODxはディレクトリ情報を渡す時は慣習的に末尾のスラッシュを付けて渡すことになっていますが、ある時期までは暗黙のルールとしても定着してなかったため、時々こういう問題が起きていました。


▲本家開発チーム側の修正。インストールされる3つのシステムイベント名(OnWebChangePassword・OnManagerChangePassword・OnManagerSaveUser)の末尾に不要な半角スペースがくっついていたという話。この状態では、これらのイベントを用いるプラグインを作ろうとしてもうまくいきません。今回のアップデートで正しく登録し直すことができます。


▲Wayfinderの &rowTplパラメータ指定で使えるプレースホルダーとして[+wf.alias+]を追加しました。エイリアスが商品コード管理も兼ねている時、商品名(商品コード)のような形でメニューを組むことができるため便利です。

PR

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