MODX Evolution 1.0.13J をリリースしました
2014年4月26日 23時30分 shortlink:http://modx.jp/?id=947
日本語版1.0.13Jをリリースします。
ダウンロード
https://modx.jp/download/download_evo.html
上記からダウンロードしてください。
アップデートの手順
https://modx.jp/docs/update.html
上記を参照してください。
変更内容
新しいAPI(関数)
- $modx->mergeConditionalTagsContent() テンプレート・リソース内などでIF分岐を使えるようにする
- $modx->getMgrDocgroups()
- $modx->snapshot() 実行するとスナップショットを生成
- $modx->getMessageCount()
- $modx->SystemAlertMsgQueque() ($modx->webAlert()を改善した関数)
- $modx->loadLexicon() 言語ファイルを$_lang配列としてロード
- $modx->getPreviewObject(); リアルプレビューに必要なリソース情報を収集
- $modx->getMimeType() getimagesize関数よりも軽い負荷で画像のサイズを取得
- $modx->tvProcessor() tmplvars.format.inc.phpのgetTVDisplayFormat関数をAPI化
- $modx->checkPermissions() user_documents_permissions.class.phpの$udperms->checkPermissions関数の処理をAPI化
http://forum.modx.jp/viewtopic.php?p=7363#p7363 - $modx->db->importSql() テキストファイルに記述されたSQLクエリ文を実行。{PREFIX}という文字列をTableプレフィックスに変換
- $modx->manager->getNewDocID()
- $modx->manager->getCategories categories.inc.phpの処理をAPI化
- $modx->manager->checkCategory categories.inc.phpの処理をAPI化
- $modx->manager->newCategory categories.inc.phpの処理をAPI化
- $modx->manager->deleteCategory categories.inc.phpの処理をAPI化
- $modx->manager->sysAlert() sysalert.display.inc.phpの処理をAPI化
- $modx->manager->setWebDocsAsPrivate() secure_web_documents.inc.phpのsecureWebDocument関数の処理をAPI化
- $modx->manager->setMgrDocsAsPrivate() secure_mgr_documents.inc.phpのsecureMgrDocument関数の処理をAPI化
新機能
- リアルプレビュー機能 - 投稿保存せずにプレビュー可能
- ドキュメントオブジェクトを書き換えるシステムイベントOnLoadDocumentObjectを追加
- OnExportPreExec・OnExportExec - エクスポート機能にシステムイベントを追加
※利用できる変数はprint_r($modx->event->params)で確認できます。 - MODXのバージョンが異なるスナップショットデータをインポートしない(スニペットやプラグインが先祖返りしてしまうため)
- テンプレートのネスト機能のUIを分かりやすく整備
- 存在しないリソースをリンクタグでコールした時にログを残す(リンク切れ対策)
不具合修正
- SELECT bindingsのバグを修正
http://forum.modx.jp/viewtopic.php?f=32&t=1315 - フレンドリーURL設定を使わない場合にリンクタグが機能しないため修正
http://forum.modx.jp/viewtopic.php?f=32&t=1314 - $modx->sendmail() fromnameを指定できないため修正
- $modx->sendmail() ccとbccの指定が動作しないため修正
- [*pagetitle:id=8*]などの記述で問題があるため修正
- 数字文字列としてエイリアスを設定した場合 404 not foundになることがある
https://github.com/modxcms-jp/evolution-jp/issues/87 - ルート直下のリソースをプレビュー表示できないため修正
http://forum.modx.jp/viewtopic.php?f=32&t=1341 - データグリッド - 値がない時は何も出力しないように修正(不完全なtableタグが出力されるため修正)
http://forum.modx.jp/viewtopic.php?f=32&t=1352 - テンプレート変数 - 値がない時の処理を整理
- $modx->sendRedirect() リダイレクト処理を修正
http://forum.modx.jp/viewtopic.php?p=7280#p7280 - $modx->sendRedirect() $responseCodeパラメータ抜けを修正
- $modx->sendForward() エラー時に簡単なメッセージを表示
- Critical Fix - Fixes Access Permissions error
https://github.com/modxcms/evolution/pull/239 - MariaDB. POSIX collating elements are not supported
https://github.com/modxcms/evolution/pull/229 - Fix possible SQL injection vulnerability in manager
https://github.com/modxcms/evolution/commit/f466faf - Fix possible XSS vulnerability in manager
https://github.com/modxcms/evolution/commit/45f47c6 - Fix SQL injection vulnerability in manager
https://github.com/modxcms/evolution/commit/b875144 - テンプレート変数まわりの関数を本体パーサに移動
- 2013 を 2014 に書き換え
- テンプレート変数編集画面 - 入力タイプとウィジェットのオプションの順序を整理
名称変更など
- テンプレート変数 - 入力タイプ→入力フォーム
- 「ウィジェット」を「プロセッサ」に名称変更
- 管理画面リソースツリーの「プレビュー」→「リソースを表示」
- 管理画面トップメニューの「プレビュー」→「サイトを表示」
- $modx->parsePlaceholder()を $modx->parseText()に名称変更(本家版ではparseTextという関数名になったため)
- キャッシュファイル sitePublishing.idx.php を basicConfig.idx.phpに変更
非推奨・消極的な扱いとするための変更
- messageCount.inc.phpを削除
- ロール設定画面 - disabled項目を非表示(今後も実装する予定がないため)
- ロール設定画面 - metaタグ機能の設定を非表示
- 投稿画面 - キャッシュが存在しない場合はsourceタブを表示しない
- jquery maskedinputプラグインを廃止
- 投稿画面 - 実際の機能が実装されないままになっていたrefresh_previewアクションを廃止
- $modx->makeList()関数を非推奨扱いに変更
- Dittoのタギングエクステンダーのみで使われている$modx->makeList()の処理をエクステンダー本体に移動
- 管理画面ユーザが一人しかいない時はメッセージ機能を非表示にする
- $modx->webAlert()を非推奨扱いの関数とする
- deprecated.functionsをマジックメソッドで呼び出す
- RichTextウィジェットを廃止
- HTML Entitiesウィジェットを廃止(同じ機能がString formatterに含まれるため)
- 「Widgets」「Formats」の区分けを廃止。全て一律にプロセッサと見なすことにする
- アップデート時の管理画面ナビゲーション構成の書き換えを廃止
同梱ライブラリのアップデート
- QucikManager - Coloboxアップデート v1.4.37 -> v1.5.8
- jQuery - 1.11.0
- TinyMCEを3.5.10にアップデート(IE11対応など)
改善
- インストーラを使わずにDB構造を確実にアップデート
- インストール完了時にsession_destroy()
- インストール時の初期ユーザのロールIDを2にセット
- 投稿画面 - エイリアス末尾にスラッシュをつけた時の処理を改善
- $modx->makeUrl() トップページのURLとして$modx->config['site_url']を返す
- エラー通知メールの内容を改善
- xRayテンプレート・スタイル調整
- カスタムcontentTypeにapplication/jsonを追加
- 管理画面の遷移ごとにmgrDocgroupsを読み直す(ログイン時のみのローディングでは実用上不便なため)
- テンプレート変数編集画面を整理(ウィジェットの順番の整理など)
- グローバル設定の項目の順番を整理
- xRayテンプレート - ナビゲーションを改善
- ファイルブラウザをIE11対応
- HTTPS判定を改善・nginx・さくらインターネットのSSL判定に対応
http://forum.modx.jp/viewtopic.php?f=32&t=1348 - グローバル設定 - SMTP送信設定にSMTPセキュアを追加
- グローバル設定 - SMTP使用時のSMTPセキュア設定項目追加
- $modx->changeWebUserPassword()の処理をWebLoginスニペットと同等の内容にする
- ユーザ設定・ウェブユーザ設定画面の構成を調整
- リソース更新後の分岐処理(主に画面遷移)を整理
- $modx->db->getColumn()の結果が空でも必ず結果を返すように改善
- ユーザプロファイル変更のアクションナンバーを変更(もともと想定されていたアクションナンバーが存在したため)
- $modx->getVersionData() 改善
http://tracker.modx.com/issues/9682
https://github.com/modxcms/evolution/commit/9b4cc6f - $e->dumpErrorを改善
- Stop the unnecessary call recursive functions
https://github.com/modxcms/evolution/commit/e74aee6 - file_exists関数をis_file関数・is_dir関数に書き換え
- cache_sync.class.processor.phpをincludesディレクトリに移動(コア扱いとする)
- $modx->clearCache()の引数の一部を本家と合わせる(full)
- イベントログ削除時、イベントログが一件もなければtruncateしてIDを初期化する
- テンプレート変数の配列構成を改善
- 内蔵 PHx エラーレベルを変更
- テンプレート変数 - custom_tvフォームの初期値をシンプルに変更
- 管理操作ログの画面をシンプルに整理
内蔵PHx
- PHx - googlemap・shorttitle・titleモディファイアを追加
- ダミーのプレースホルダを追加 [+documentObject+]
TopicPath
- 出力するパスの形式を揃える
http://forum.modx.jp/viewtopic.php?f=32&t=1349 - 新パラメータ - &tplReferenceTopic
<li>[+title+]</li>
https://github.com/modxcms-jp/evolution-jp/pull/85
Wayfinder
- 新パラメータ &where
- 新パラメータ &entityEncode
- 新パラメータ &hereId
- 新パラメータ指定 [[Wayfinder?startId=indexDocument]] を追加
(最初の1文字だけを見るので [[Wayfinder?startId=i]] や [[Wayfinder?startId=index.html]]でも可)
※xRayテンプレートに実装しているので参考にしてください
Ditto
- &orderByパラメータでasc/descを省略した時の処理を改善
WebLogin
- パスワードリマインダーまわりのパラメータを整理。新パラメータを追加し、リマインダーメールのタイトルや送信元・メッセージ内容などを自由にカスタマイズできるようにした
- &reminder_message ・・・リソースIDで指定
- &reminder_subject
- &reminder_from
- &reminder_fromname
- リマインダー機能で該当ユーザが見つからなかった時の処理を追加
- アクセストークンの有効期限を24時間に限定
- トークンが不正な場合の処理を追加
- ユーザ名表示まわりを改善
- 使用できるプレースホルダを追加・整理
- [(site_name)] - サイトの名前
- [+manager_email+] - サイト管理者のメールアドレス
- [(site_url)] - サイトのURL
- [+username+] - ログイン名
- [+password+] - パスワード
- [+fullname+] - フルネーム
eForm
- デフォルトテンプレートのformidが食い違うため修正
http://forum.modx.jp/viewtopic.php?f=32&t=1287
ManagerManager - mm_widget_googlemapウィジェット
- Google Maps API v3対応
http://forum.modx.jp/viewtopic.php?f=32&t=1278 - 複数設置した場合に誤動作を起こすため修正
QuickManager
- &logoutの初期設定をfront-endに変更(新規インストールのみ)
トピックス
新システムイベント OnLoadDocumentObject
新しいシステムイベント OnLoadDocumentObject を追加しました。ドキュメントオブジェクト(リソース変数)を書き換え及び新規追加できます。書き換えに関しては現時点ではリソース変数のみが対象ですが、次のリリースではテンプレート変数の書き換えもできるようになる予定です。
if(strpos($_SERVER['HTTP_USER_AGENT'],'iPhone')!==false)
$modx->documentObject['template'] = 2;
User AgentにiPhoneという文字列が含まれる場合、スマートフォン専用のテンプレートに切り替えます。
$modx->documentObject['url'] = $modx->makeUrl($modx->documentObject['id']);
リソース変数 [*url*] を新規追加します。テンプレート変数でも同じようなことができますが、システム的にはこちらのほうが処理がシンプルです。ひとつのプラグインで新しいリソース変数をいくつでも論理的に管理できるというメリットもあり、必要に応じて使い分けるとよいでしょう。
新システムイベント OnExportPreExec・OnExportExec
HTMLエクスポート時に利用できるシステムイベントを2つ追加しました。
OnExportPreExec では $_POST['ignore_ids'] を書き換えて、出力しないリソースを動的に制御したり、 $_POST['repl_before'] や $_POST['repl_after'] を配列として書き換えて、複数の文字列を置換対象としたりすることができます。
OnExportExec では、エクスポート直後にファイルを任意のディレクトリにコピーしたり、FTPで一括アップロードすることができます。
リアルプレビュー対応
投稿を保存せずにリソースをプレビューできるようになりました。用語で混乱しないように、今まで「プレビュー」としていたものは「ページの表示」「サイトの表示」「プレビュー」と呼び分けています。
テンプレートやリソースでIF文を記述
テンプレートやリソースでIF文を記述できるようになりました。現在のところ、任意のリソース変数またはテンプレート変数の値が空かどうかだけを判定材料とできます。
<!--@IF [*tv*]-->空でなければ出力<!--@ENDIF-->
<!--@IF ![*tv*]-->空であれば出力<!--@ENDIF-->
<!--@IF [*tv*]-->
空でなければ出力
<!--@ELSE-->
空であれば出力
<!--@ENDIF-->
需要がありそうであれば値の比較やswitch文・ループ文などの実装を検討します。
@IGNORE文の別書式を提供
<!--@IGNORE-->
ここに記述されている内容は出力しない
<!--@ENDIGNORE-->
従来の<!--@IGNORE:BEGIN--><!--@IGNORE:END-->に加え、上記のような記述ができるようになりました。
テンプレート編集画面を改善
ネストのイメージをテンプレート編集画面で確認できるようにしました。ネスト機能は昨年10月リリースの1.0.12Jより実装されています。
その他
複雑な機能である承認ワークフロー及び世代管理機能の実装に着手するために、今回はシステムの整理を重点的に行ないました。最新版で見つかった不具合は最優先で対応しますので、何か気付いた点があれば問い合わせフォームやフォーラムなどを通じてご連絡ください。
気付いた点があればフォーラムまたは問い合わせフォームからフィードバックをお願いします。開発に参加して自ら機能追加・改善などを行なってみたい方もお気軽にご連絡ください。