MODX Evolution 1.0.5J-r11をリリースしました
2012年2月13日 19時00分 shortlink:http://modx.jp/?id=805
今回より日本語URLを扱えます。エラー発生時の通知メール自動送信・詳細なログの生成など、運用監視に関係する改善も行ないました。全体の動作を少し軽量化。また、しばらく同梱をとりやめていたBreadcrumbsスニペットに代わって、TopicPathスニペットを新しく同梱しました。
▲ログイン画面カスタマイズ例
手軽にログイン画面をカスタマイズできるように、カスタマイズコードをチャンクとして同梱しました。
MODX Evolution 1.0.5J Revision11 ダウンロード
http://code.google.com/p/modx-ja/downloads/detail?name=modx-1.0.5J-r11.zip
アップデートの手順
https://modx.jp/docs/update.html
上記を参照してください。
※今回はmanagerフォルダのみのアップデートはできません。必ずインストーラを用いてconfig.inc.phpを更新してください。
注意事項
アップデート時に一時的にサイトの表示がエラーになる可能性があります
サイトの稼働を止めずにアップデートできるのがMODXの利点のひとつですが、今回はアップデート作業時に一時的にエラー状態になる可能性があります。速やかにinstall/ディレクトリにアクセスし、アップデートを行なってください。今回はインストーラを使ってconfig.inc.phpを更新する必要があるため、managerフォルダの上書きのみによるアップデートはできません。
AjaxSearch・Jotが使えない可能性があります
処理の流れが変わった影響で、AjaxSearch・Jotが使えなくなる可能性があります。両スニペットの対応を近日中に行ないますので、必要な場合はしばらくお待ちください。ファイルをひとつ差し替えるだけの対応になると思います。
※2月14日追記
http://code.google.com/p/modx-ja/downloads/detail?name=index-ajax.zip
AjaxSearch・Jot用のパッチ用意できました。上記ファイルをMODX設置ディレクトリにコピーしてください。次回からは同梱します。
ManagerManagerのmm_set_clear_cacheルールについて
mm_set_clear_cacheルールは今回のバージョンより削除されました。代替として、より汎用的に利用することができる mm_ddSetFieldValueルールを使うことができます。
.htaccessの更新について
今回より.htaccessの記述内容が変わりましたが、従来の.htaccessのままでも使えます。.htaccessを更新するとパフォーマンスを多少改善できる可能性がありますが、すでに細かいカスタマイズを加えている場合はそのまま使用することをおすすめします。
Etomite_dbFunctionsを整理
Etomite用スニペットをMODXで使うために必要なEtomite_dbFunctions関数一式を整理(削除)しました。国内のほとんどのMODXユーザには影響ありません。MODXはEtomiteの代替CMSとして開発が始まった経緯があるためこれらの関数が残されていましたが、現在では動作確認を行なうこともほとんどなくなっています。
http://code.google.com/p/modx-ja/downloads/detail?name=Etomite_dbFunctions.zip
Etomiteのスニペットを使う必要がある場合は、関数群を上記から入手してdocumentParser.inc.php内に組み込んでください。実際には、これらの関数群がなくても動作するスニペットもあり、逆に、あっても動作しないものもあります。MODXネイティブの処理に置き換えるほうが簡単なこともありますので、必要な場合はご相談ください。
ウェブリンクの作成・更新ができない(※リリース後の追記)
管理画面内では更新できていますが、ページにウェブリンクが表示されません。キャッシュ更新時のバグで、管理画面の「サイトをリフレッシュ」を実行すると正常に反映されます。近日中にパッチを配布します。
QuickManagerの「サブリソースを追加する」でページを追加するとNot foundになる(※リリース後の追記)
追加したリソースのエイリアス情報を更新しないため、その場ではNot foundになります。実際にはページは正常に追加されていますので、そのまま何もする必要はありません。近日中にパッチを配布します。
変更内容
不具合修正
- eform - &subjectを指定しない時のタイトルが「0」になるため修正
- $modx->config['suffix_mode']の指定が効かないことがあるため修正
- プラグイン実行順変更画面のアクションバー修正(divタグのtypo修正)
- スニペット編集画面のアクションバー画像のリンク切れを修正
- 通常のリソースをウェブリンクに変更した場合に、コンテンツにhtmlタグがあると投稿画面の表示が乱れるため修正
- $modx->config['auto_template_logic'] の値を「sibling」に設定できない件を修正・初期値を「system」に変更
- モジュール関連付けがエラーで開かないため修正
新機能・新仕様
- OnMakeUrlイベントを追加(システムで生成したURLを出力する直前に処理を加えることができます)
- システムエラーをメールで通知する
- ForgotManagerPassword - 送信メールをプレーンテキスト化・アクセス先のURLを短く変更
- TopicPathスニペット追加(Breadcrumbsスニペット互換・一部パラメータ名違い)
- URL変換をdocumentparser内で行なう(mod_rewritreを使わない・日本語URL対応)
- エラー出力にバックトレースを追加
- managerディレクトリ内のPHPファイルを間接的に実行するaction.phpを追加。basic認証をmanagerディレクトリにかけている場合などに便利です。eformで用いるCaptcha機能はaction.phpを経由するようにしました。
- TinyMCE - スキン設定オプションを追加
- TinyMCE - 改行モードのオプションを追加
- ベンチマークタグ [ ^m^ ] を追加
- $modx->documentObject['content_dispo']が1の場合のファイル処理をマルチバイト対応(日本語ファイル名でリソースをダウンロードできます)
- ダッシュボード・ログイン画面のカスタマイズコードをチャンクとして同梱(プラグイン対応)
- セーフモードを実装(全てのプラグインを無効にして起動)
- グローバル設定に$modx->config['site_url']を追加(空白可)
- eform - &tpl・&formid・&report の初期値をプリセット(パラメータなしでとりあえず使えるようにする)
- config.inc.phpの内容を整理
- ManagerManagerに新ルール mm_ddSetFieldValue・mm_ddmaxlengthを追加
改善
- Administratorと同等の権限を持つロールの場合はAdministratorに戻れるように・ロール設定の権限がない場合は自分で自分を昇格できないようにする
- Etomite_dbFunctionsを整理
- プリセットのウェブマスターロールのsave_parser・edit_parserを1にする(将来使うかもしれないため)
- プリセットのロールを変更
- $_SESSION['mgrUsrConfigSet']をunsetしない(自分の設定を変更するとは限らないため)
- Administratorロールの注釈文を修正
- ユーザのconfigを読み込まないことがあるため修正
- インストーラ消し忘れをエラー扱いにする
- ダッシュボードカスタマイズまわりの修正
- ログを軽くするために不要なスペース文字などを整理
- PHP4で対応していないmemory_get_peak_usage関数の代替処理
- インストール時のファイル生成処理を改善
- fopen/fread/fcloseをfile_get_contentsに置き換え
- ログイン画面用のチャンクを削除またはリネームするとログインできなくなるため改善
- $modx->sendmail()を追加
- $modx->parsePlaceholder() プレースホルダがセットされていない場合は何もせず返す
- synccacheクラス - 初期化時にcachepathをセット
- 不要なメンバ変数を整理
- カスタム入力タイプまわり修正
- 投稿画面 - メニューオーダーまわりのデザインを微調整
- typo修正 captha→captcha
- サーバによってはbase_urlの取得に失敗することがあるため修正
- キャッシュを更新できない時に表示するエラーに対象ディレクトリの実際のパスを含める
- set_include_pathで追加するパスの末尾にスラッシュがついているため修正
- $modx->config['emailsubject']を汎用的な表現に変更
- datefunctions.inc.php 使われていないため削除
- .htaccessの記述を整理
- アップデート時にスタイルシートの更新を反映
- mod_rewriteまわりの記述を整理
- URL解釈まわりの重要なtypoを修正
- 未定義の変数まわりのエラーが内部的に出ていることがあるため修正
- 一部の環境でインストール時にTinyMCE関係のエラーが出るため修正
- ユーザ設定変更時にキャッシュを初期化(メンバー名などを記事中に出力することもあるため)
- サンプルデータ中の不自然な半角スペースを削除
- QuickManager - フレンドリーURLを設定していない場合にウィンドウを閉じることができない
- MODx→MODX
- wayfinder - チャンクからconfigを読み込む時は@CHUNKを記述する
- $modx->config['etomite_charset']を$modx->config['modx_charset']に
- エレメント設定のプロパティのtextarea大きさ調整
- 編集保存後の遷移を修正
- rss.inc.php 値をreturnで受け渡しするように修正
- Ditto - 深刻なtypoを修正
- Ditto内蔵のPHxを2.1.5にアップデート
- リソース一覧 - カテゴリー削除時に確認ダイアログを表示
- ユーザ設定画面 - ラジオボタン・チェックボックスをlabelで囲む
- Ditto configをチャンクから読み込む時は@CHUNKで明示する
- TinyMCEバージョン更新(3.4.8)
- QuickManager - ボタンのスタイルが既存サイトの影響を受けることがあるため修正
- デフォルトでインストールされるリソースのテンプレートIDが誤っているため修正
- config追加(非公式・試験的) $modx->config['imanager_url'] $modx->config['fmanager_url']
- トップページの編集でpublishedが編集不可になっていないため修正
- 古いバージョンからのアップデートができないことがあるため修正
- TinyMCEアップデート(3.4.8)
- ログをパージする際のoptimize tableをしない(delete時に自動的にoptimize tableされるらしいので)
- typo修正(変数名の大文字小文字)
- eform 本体コードをダイエット
- リソース検索画面のタイトル文字列の文字数省略を修正
- リソース投稿時にリソース変数の入れ子記述を無害化(本文内に[*content*]と記述する、など)
- 投稿画面を開く時にaliasをurldecode
- 変数がそのまま表示されるため修正
- エレメント一覧 - プラグインのカテゴリー表示が重複することがあるため修正
- ウェブリンク編集時に不要なフィールドを表示しない
- リソースの詳細 - JavaScriptの読み出しタイミングを修正
- テンプレート変数設定画面 - 割当対象のリソースグループがない場合はpublicのチェックを外せないようにする
- リソースの詳細 - タブにならないことがあるため修正
- xrayテンプレートのパン屑リストをTopicPathに差し替え
- ログイン画面でのveriword(Captcha)読み込み修正
- 管理画面デザイン微調整
- カスタムウィジェットまわり微調整(現時点では隠し仕様)
- PHP4環境ではmemory_get_peak_usage()を使わない
- Merge branch 'develop' of github.com:modxcms-jp/evolution-jp into develop
- セッションを一時的に閉じる際、headerがすでに送信されていないか確認する
- カテゴリーの指定を省略できないため修正
- trタグが閉じられてないため修正
- アクセスパーミッション設定のセクションをタブ化
- エレメントの説明入力欄を調整
- $this->documentObjectセット漏れを修正
- $_REQUEST['q']修正
- Date Formatウィジェットのデフォルトの書式を修正
- キャッシュ制御を修正
- 管理画面デザイン調整
- テンプレート変数編集画面デザイン修正
- 各エレメントの編集画面デザイン調整
- チェックボックスタイプのテンプレート変数の問題を修正
- リソース新規作成時のリッチエディタ初期値を修正
- ダッシュボードのテンプレートファイルの読み込みまわりのバグ修正
- RSSフィードの設定値が空の場合はfetchしない
- makeurlに対象IDが渡ってこなかった時・半角スペースが渡ってきた時の区別がログで確認できないため修正
- 非推奨の関数$modx->insideManager()の使用を回避
- 開いたタブを記憶しない設定の時のリソース更新直後の遷移を修正
- リダイレクト後にexit
- ヘルプへの参照リンクを削除
- リソース情報取得系のメソッドの処理を修正
- リソース保存後、$header変数を操作することで、任意のURLへリダイレクトできるようにした。
- pluginからグローバル変数を操作できるメソッドを追加。
- $_REQUEST['q'] 処理のタイミングを前方に移動
- モジュール編集画面 - カテゴリー選択リストの配置を変更
- 管理画面リンク文字色調整
- テンプレート編集画面からテンプレート変数を作成する場合は選択テンプレートを既定値とする
- モジュール管理画面デザイン修正
- テンプレート変数編集画面のデザインを修正
- テンプレート編集画面内のテンプレート変数一覧を「テンプレート変数名 (description)」の形式に変更
- エレメントごとのカテゴリー選択リストの配置を揃える
- ManagerManager - プラグイン編集画面に情報表示タブが表示されないため修正
- ManagerManager - 対象アクションを追加
- RSS取得中だけ一時的にセッションを閉じる修正
- 外部RSSを取得中は一時的にセッションを閉じるようにする(外部RSSに問題がある際に管理画面が固まる問題を回避)。
- 投稿画面のリッチテキストエディタ判定を修正
- ManagerManager - mm_set_clear_cacheを削除(mm_ddSetFieldValueが使えるため)
- ManagerManager - mm_ddSetFieldValueでセットされる日付の書式が誤っているため修正
- ManagerManager デフォルトテンプレートの取得を修正
- ManagerManager - mm_defaultルールでリッチテキストを無効にした時は、実際に無効にする
- リッチテキストまわりの不具合(72はウェブリンク)
- 末尾の不要なスペースを削除
- ManagerManager - $e->outputのタイミングを修正
- ManagerManager - mm_moveFieldsToTab()修正
- 新しいウィジェットを追加
- ManagerManager - $e->output()のタイミングを修正
- ManagerManger - mm_defaultルールで全フィールドを対象にする
- ManagerManager - $e->name == 'OnDocFormRender'を追加
- ManagerManager - インストールコードを更新
- ManagerManager - OnBeforeDocFormSaveの処理を追加
- エレメント一覧のプラグインの並び順を修正
- テンプレート変数の名前をつけずに保存すると名前がない状態で保存されるため修正
- ManagerManager - ソースコード中のヘッダブロック及びバージョンを更新
- mod_rewriteによるエイリアス変換を行なわない
- ドキュメントの詳細にリソースIDを表示
- TinyMCE - スタイルセレクターのデフォルト値を日本語化
- QuickManager - ウィンドウを閉じる時の遷移処理を調整(URLの正規化を行なうプラグインとの相性が悪いため)
- action.phpの読み込み対象をmanagerディレクトリ以下の拡張子phpのファイルのみに制限
- jqueryのパスを固定
- TinyMCE - デフォルト値の設定の問題を修正
- 使われていないsave_user_quoted_printable()関数を削除
- $_SESSION["mgrUsrConfigSet"]の更新に失敗することが多いため修正
- ユーザ設定更新時に$_SESSION['mgrUsrConfigSet']をunset
- typo修正 (<p />)
- TinyMCE 言語ファイル更新
- htmlコード整形
- テーブル名を確実にバッククォートで囲む
- webloginスニペット バージョン更新
- webloginまわりを整理
- MySQL3.x対応のコードを削除
- インストーラのデータベースアクセスをDBAPI経由に変更
- 古いPHP環境に対する警告メッセージを英語にする(ここで言語ファイルを読ませるほどではないため)
- mysql_set_charsetの実行タイミングを変更
- データベース接続・データベース選択・tableプレフィックスの検査処理は前の段階で済んでいるため削除
- このタイミングでのデータベース作成処理は不要のため削除(前の画面の段階で実行される)
- インストール状態のチェックを簡素化
- インストール時のプロパティセット
- インストーラのデータベース処理をDBAPIに置き換える
- strpos()の引数ミスを修正
- 非推奨のAPI $modx->insideManager()を$modx->isBackend()に変更
- $modx->db->delete() $limitパラメータを追加
- $modx->getPageInfo() getRowのエラーをトラッキングする
- $modx->getPageInfo() $idの初期値を0に変更
- $dumpSnippetsの出力タイミングを修正(htmlの先頭で出力するとCSS表現が崩れるため)
- $modx->get_backtrace() を追加
- エラー出力のtableタグ構成が正しくないため修正
- イベントログの出力を整形
- グローバル設定 - $modx->config['rb_base_url']の表示を分かりやすくする
- veriword.php アクセス方法を修正
- mutate_settings.dynamic.php - getResourceBaseUrl()関数を削除(使われていないため)
- action.php - 任意のphpファイルを$_GET指定でinclude
- $modxオブジェクトの生成をシンプル化
- getjs.php経由でjqueryを呼び出すように改善
- 変数の初期化タイミングの誤りなどを修正
- veriword.php - $modxオブジェクトが存在する場合の出し分けを行なう(プラグインなどから利用できるようにするため)
- readをscandir()に変更
- ログイン画面 - captha機能利用時のデザインを調整
- readdir()関数をscandir関数に変更
- upgrade.php - scandir()関数を追加
- config_check.inc.php checkSiteCache()の処理を削除(使われていないため)
- crypt.class.inc.php 現在使われていないため削除
- $modx->evalPlugin() ログの出力を詳細化
- $modx->evalPlugin() returnで値を出力
- $modx->db->delete() 不要なパラメータ($fields)を削除
- capthaの単語を変更
- tinymce ファイル整理
- global宣言記述ミス修正
- captcha機能の背景画像を変更
- captcha_wordsのデフォルト値を変更
- DBAPI 全面的にコード整理
- mysql関数をDBAPIに差し替え
- QuickManager コード整理
- カスタムウィジェット - [+value+][+tvname+]の処理タイミングを調整(2)
- カスタムウィジェット - [+value+][+tvname+]の処理タイミングを変更
- mysql_query()→$modx->db->query()
- $modx->getSettings() 厳密な判定を行なうよう修正
- ログインしていなくてもファイルブラウザにアクセスできるため修正
- mysql_query()→$modx->db->query()
- サンプルコンテンツの編集者IDが誤っているため修正
- ob_start()関数の実行タイミングを調整
- ht.accessをsample.htaccessにリネーム
- 管理画面内のnicesize()処理を$modx->nicesize()に差し替え
- $modx->nicesize() を追加
- QuickManager - インストール時に既定値として入るテンプレートID「3」を削除
- Ditto同梱のPHxのlimitモディファイアをマルチバイト対応
- 行末の不要な空白を削除
- 投稿画面 - 幅を調整
- ManagerManager - プラグイン設定画面内のID一覧の項目の順番を整理(IDを先頭にする)
- QuickManager - テンプレート選択ルールとしてsibling,system,configを追加。初期値はconfig
- $modx->config['auto_template_logic']の初期値をsystemにする
- is_installed()関数のエラー修正
- $modx->getLoginUserID/$modx->getLoginUserName 値が得られなかった時はfalseを返す
- manager/index.php - 処理の流れを整理
- デベロッパーがセキュリティ面に配慮できるようにautoload.phpの読み込みタイミングをIN_MANAGER_MODE定義後に移動
- PHPのバージョンチェック処理は先にinitialize.inc.phpで行なわれるため削除
- APIモードが有効な時はob_start()を実行しない
- インストール状態のチェック処理を整理
- パーサモードのセットのタイミングを整理
- 無意味な判定を修正
- 不要なコメントを削除
- $modx->checkSession() 誤判定が起きる可能性があるため修正
- パーサモードの初期値セットのタイミングを整理
- $modx->documentObject['contentType']のセットが正しく行なわれないため修正
- $modx->documentObject['content_dispo'] 不要な判定を削除
- パースエラー時の一般ユーザ向けエラー出力を簡素化(MODXが出力しているエラーであることを推測しづらくするため)
- パースエラー時のログ出力を詳細化
- getenv関数でREQUEST_URIの値を取得できないことがあるため修正
- イベントログ - 時刻の書式指定が誤っているため修正
- bkmanager.static.php selectコマンドを実行した場合は結果を出力する
- bkmanager.static.php リストア時のモードを記憶し連続操作しやすいようにする
- bkmanager.static.php 文言を調整
- import_site.static.php トップページ・コンテナ・一般リソースの順に並ぶように調整
- import_site.static.php 処理終了後は通常のリソースツリー操作を有効にする
- import_site.static.php 「閉じる」をクリックした時のツリー更新は不要
- import_site.static.php 不要なsmallタグを削除
- 接続失敗時のログ出力を詳細化
- 接続失敗時の試行待ち時間を3秒に変更
- config.inc.php 値の記述と処理の記述を分離
- チャンク名変更時にリソース中・テンプレート中のチャンクコールも置換する
- チャンク名変更時の重複チャンク名チェック処理を追加
- 不要なglobal宣言を削除
- SQL文をDBAPIに置き換え
- アップデート対象のエレメントが存在しない場合にエラーになることがあるため修正
- ManagerManager - mm_widget_googlemapウィジェットを多言語対応
- ManagerManager - 各ウィジェットにおけるカレントテンプレートの取得ロジックを改善
- Modified : assets/plugins/managermanager/widgets/!template/!template.php
- jquery ColorBox を v1.3.19 にアップデート
- QuickManager - テンプレート変数名にクォート「'」「"」を含む時にHTML出力がイレギュラーになるため修正
- QuickManager - 日本語のテンプレート変数名を正しく処理できるよう修正
- QuickManager - インライン編集ボタンでテンプレート変数名が日本語のテンプレート変数を処理できないため修正
- QuickManager CSS修正
- html構成を調整(プラグイン経由でのPluploadの組み込みを想定)
- QuickManager - qm.inc.php where句の記述漏れを修正
- リソースをルートに移動しようとするとエラー
- 投稿画面デザイン微調整
- 英語ファイルをデフォルトの言語ファイルとして読み込まない(無駄な処理のため)
- resources.static.php typo修正
- resources.static.php コード整理(DBAPI)
- テンプレート変数名を変更した時にコンテンツ内のタグ記述も置換
- manager/index.php DBAPIで接続
- 管理画面ナビゲーションのレスポンスを改善
- イベントログ - 日時の書式を改善(AM/PMではなく24時間表記・秒単位まで出力)
- バックアップマネージャー - コンソールモードを追加
- QuickManager 管理画面言語ファイルの読み込みタイミングを修正(数回重ねて無駄に読み込んでいるため)
不具合報告・改善要望について
主な改善内容
▲管理画面カスタマイズコードを読み込むための簡単なプラグインを追加しました。上記画像はカスタマイズ例です。
▲プラグインを無効にしてページ及び管理画面にアクセスするためのセーフモードを実装しました。管理画面に関しては、manager/index.php内に上記のような記述があるので、行頭のコメントマーク(スラッシュ2つ)を外します。
( // $modx->safeMode = true;)
▲セーフモードを有効にすると、システムデフォルトのログイン画面が表示されます。
manager/media/style/MODxCarbon/manager/
システムデフォルトのログイン画面のひな型コードは上記ディレクトリに配置されています。HTMLとプレースホルダだけで記述されているので、これを参考に独自のログイン画面を作るとよいでしょう。
▲TinyMCEプラグインにオプションを2つ追加しました。
▲スキンを変更できます。
サードパーティ製スキンを利用することもできます。
http://www.cirkuit.net/projects/tinymce/cirkuitSkin/
上記から「Cirkuit TinyMCE Skin」をダウンロードします。
▲アーカイブを解凍し、TinyMCEのskinsディレクトリにコピーします。
(assets/plugins/tinymce/jscripts/tiny_mce/themes/advanced/skins/ )
▲グローバル設定でフォルダが検出されるので、選択します。
▲スキンを変更しました。
▲WordPress用のスキンを利用することもできます(※画像のパスなどCSSを一部書き換える必要があります)
▲日本語URLを使えるようになりました。
▲日本語URLでアクセスできます。URL文字列はURLエンコード処理されるため、日本語以外にも、「 + 」などURLとしては特別な意味を持つ文字を扱うことができます。
▲イベントエラー発生時にメールで自動通知できるようになりました。
▲[(site_url)]をグローバル設定で固定できるようになりました。複数のホスト名でアクセスできる場合、従来の仕様ではURLが揃わない状態でキャッシュが生成される問題がありました。
▲ログイン画面のCaptcha画像まわりのデザインを改善しました。
▲SQL文を直接記述してリストアを実行できるようになりました。上記画像のように、リストア目的以外に利用することもできます。
▲SELECT文を処理することもできます。
WebMatrix版について
すでにパッケージ登録申請済みですので、近日中に公開されます。
その他
気付いた点があればフォーラムまたは問い合わせフォームからフィードバックをお願いします。フォーラムやブログ、Twitterなどで寄せられた要望はこまめに拾って対応しておりますので、気軽に要望いただければ反映に努めたいと思います。
継続的にスポンサーを募集しており、ご支援に応じて、活動が安定します。近年の活動の充実も、各方面からのご支援によるものです。具体的な条件については個別に相談させてください。