MODX Evolution 1.0.15J をリリースしました
2015年12月30日 09時00分 shortlink:http://modx.jp/?id=1053
MODX Evolution 1.0.15Jをリリースしました。ベータ機能扱いで下書き機能が実装されています。この機能は将来的にリビジョン管理機能・承認ワークフロー機能の実装につながります。
ダウンロード
https://modx.jp/download/download_evo.html
上記からダウンロードしてください。
アップデートの手順
https://modx.jp/docs/update.html
上記を参照してください。
変更内容
新仕様
- 下書き機能(※デフォルトではグローバル設定で無効にしてあります)
- [[$_xxx['name']] ] プリセットのスニペットコール
http://forum.modx.jp/viewtopic.php?f=34&t=1543
例) [[$_SERVER['REQUEST_TIME']:date(Y年m月d日 H時i分)]]
2024年12月05日 04時07分 ← 現在日時を表示します。 - MySQLi対応。新規インストール時またはアップデート時にMySQLiに変更します。MySQLiが無効な環境では従来どおりMySQLで動作します。
- ドキュメント(リソース)が編集できるDocument API
- プラグインとMODXの間でデータのやり取りを補助するConfigModication(cm) API
- OnCallChunkイベントの追加(Chunkを読み込んだ時に実行される)
- PHxエクステンダーをmodifiersに改名
- タイムマシン機能(※現在のところ基本的な機能のみ)
管理画面にログイン状態で下記のようなQUERY_STRINGを付けて該当URLにアクセスする事で、その日時に「表示されているべき」表示を確認できます。
[(site_url)]/index.html?baseTime=2015/11/29
現時点はチャンクの「公開日」「公開終了日」のみに機能しています。 - OnBeforeDocFormUnDelete/OnDocFormUnDeleteイベントを追加。
削除されたリソースの復活処理に呼び出されます。
またOnBeforeDocFormUnDeleteイベント内で下記の記述を行うことで復活を中断させることができます。
$modx->event->cm->setParam('enableProcess',false); - グローバル設定に「テーブルの自動最適化」を追加。
ログのローテート時に自動で最適化(OPTIMIZE TABLE)が実行されていたところを設定でON/OFFできるように変更。 - $modx->isLoggedin() ($modx->checkSession()の別名。checkSessionという関数名では分かりにくいため)
- [Wayfinder] &startId=parent (&startId='[*parent*]' と違い、ルート直下では「0」ではなく自身のリソースIDを返す)
- ログイン画面のスパム対策
- $modx->property_nameアクセサ追加
「$modx->site_name」でサイト名を取得することができる。 - チャンクにパラメータを与えてプレースホルダ展開できるようにする
- New - $modx->db->host_info()
- New - $modx->db->server_info()
- New - $modx->setRequestQ()
- New - $modx->setRequestUri()
- New - $modx->genQsHash()
- New - $modx->setUaType()
- New - $modx->sanitizeVars()
- New modifire - ***:imageinfo
[*画像のパス:imageinfo(width)*] 画像の横幅を出力
[*画像のパス:imageinfo(aspect)*] 横長か縦長か
[*画像のパス:imageinfo(width):lte(600):show*]
画像の横幅が600px以下なら出力 - New modifire - ***:file_get_contents
- New modifire - ***:is_writable
- New modifire - ***:is_readable
- New modifire - ***:file_exists
- New modifire - ***:is_dir
- New modifire - ***:is_file
- New modifire - ***:wildcard_match
http://php.net/manual/ja/function.fnmatch.php
[*画像:wildcard_match(*.jpg):show*] - New modifire - ***:is_image
- New modifire - ***:in
[+変数:in(aaa,bbb,ccc)+]
変数の値がaaa,bbb,cccのうちのどれかであれば真 - New modifire - ***:getfield
変数の値が整数として、これをリソースIDと見なして任意のリソース変数またはテンプレート変数の値を返す
[*parent:getfield(キーワード)*]
(親リソースの「キーワード」テンプレート変数の値を返す) - New modifire - ***:abs
http://php.net/manual/ja/function.abs.php
絶対値を返す
変数の値が「-4.3」だった場合
[*変数:abs*]
4.3を返す - New modifire - max / min
http://php.net/manual/ja/function.max.php
http://php.net/manual/ja/function.min.php
カンマで区切られた複数の数値のうちから、最大値または最小値を返す
変数の値が「20,30,40」だった場合、
[*変数:max*]
40を返す - New modifire - round / floor / ceil
http://php.net/manual/ja/function.round.php
round - 数値を四捨五入(浮動小数点数を丸める)
http://php.net/manual/ja/function.floor.php
floor - 端数の切り捨て
http://php.net/manual/ja/function.ceil.php
ceil - 端数の切り上げ
[*年齢:round*]
[*年齢:floor*]
[*年齢:ceil*] - New modifire - ***:number_format
[*商品価格:number_format*]
http://php.net/manual/ja/function.number-format.php - New modifire - ***:strpos
[*pagetitle:strpos(3)*]
[*pagetitle:strpos(3,7)*]
[*pagetitle:strpos(-2)*] - New modifire ***:substr
[+var:substr(2,7)+] 2文字目から7文字目までを出力
[+var:substr(3)+] 3文字目から最後まで出力
[+var:substr(-8)+] 最後の4文字を出力 - New modifire - ***:money_format
[*変数:money_format(フォーマット)*]
http://php.net/manual/ja/function.money-format.php
直前にconfig.inc.phpで設定されている時間ロケール(LC_TIME)を通貨数値ロケール(LC_MONETARY)に設定する。
フォーマットを「%!.0n」とすれば、カンマ区切り数値として表示できる。 - New modifire - ***:count
カンマで区切られた文字列を配列として、その要素数を返す
ex) [*id:children:count*] - サブリソース数を返す - New modifire - getImageモディファイア
http://mblo.info/matome/modifiers/special_functions/getimage.html
[*content@parent:getimage*]
[+content:getimage(width="250")+] - New modifire -childrenモディファイア
http://mblo.info/matome/modifiers/resource_fields/children.html - New modifire - nicesizeモディファイア
http://mblo.info/matome/modifiers/special_functions/nicesize.html - New modifire - filesizeモディファイア
http://mblo.info/matome/modifiers/file_system/filesize.html - New modifire - rotateモディファイア
http://mblo.info/matome/modifiers/special_functions/rotate.html - New modifire - Youtubeモディファイア
http://mblo.info/matome/modifiers/special_functions/youtube.html - New modifire - templatenameモディファイア
[*id:templatename*]
で、IDに設定されているテンプレートの名称(templatename)を出力
テンプレート未設定(blank)なら「(blank)」を出力 - 7000件以上のエイリアス情報はキャッシュしないように変更
- リソースツリー - 「リソースを完全削除」を追加
- テンプレート変数の入力フォームに DocID を追加。
DocIDを選択し、ドキュメントID(リソースID)を設定する事でMODXのリンクタグに展開されるようになる。 - OnGetConfig システムイベント
$modx->config[xxx]の各値をオーバーライドできる
フロントパーサの処理では最も早いタイミングで呼び出される
(OnWebPageInitよりも早い) - MODXとプラグイン間でデータのやり取りを補助するConfigModicationクラスの追加。
プラグイン内で次のメソッドを使うことでMODXから渡されたデータを確認する事ができます。
$a = $modx->event->cm->getParams(); //全てのデータを配列で取得
$a = $modx->event->cm->getParam('hoge'); //特定のデータを取得
次のメソッドで変更をMODX側に渡せます。
(まだ対応しているイベントはありません…これから充実していければと)
$modx->event->cm->setParam('hoge','abc');
また、プラグインを二重に呼び出した際の$modx->event->output()データが壊れる問題も合わせて修正しています。 - $modx->atBindUrl()
- New $modx->manager->getTplModule()
- New - $modx->db->field_exists()
- New - $modx->db->table_exists()
- New - $modx->mergeInlineFilter()
- $modx->currentSnippetCall
- [*pagetitle@site_start*]
- リストア機能 - コンテンツのみスナップショットをとるオプション
- カスタムプロセッサ - 変数を追加
$modx->tvfilter->vars['docid']を追加 - $modx->event->vars追加
- $modx->mergeDocumentContent() にconvertDateオプション
- [*editedon*]などの値をUNIXTIME形式で返すかどうか。通常はケースバイケースで適切な形式で値を返す。
不具合修正
- $modx->setAliasListing()をコンストラクタで実行(まだ検証が不十分なため)
- キャッシュの問題を修正
- バイパスモードキャッシュ時の404ページにphpタグが混入していたため修正
- InnoDBストレージでoptimizeできないため修正
- 特定環境でエクスポートエラーが発生するため修正
- aliasListing.siteCache.idx.phpはプロセス内で複数回読み込まれる可能性があるため修正(直接生成モードでエクスポートする場合など)
- ダイレクトパース時はリダイレクトを回避する
- QuickManagerのInline template variable buttonsオプション
[*#変数:modifer*]
モディファイア付きのテンプレート変数記述だと編集ボタンが表示されないため修正 - ManagerManager - mm_widget_tagsの$display_countパラメータの問題を修正
http://forum.modx.jp/viewtopic.php?p=8757#p8757 - ManagerManager - mm_hideTabs('access')
mm_hideTabs('access');で「管理グループ」が非表示にならないため修正 - モジュール保存時、PHPの開始タグ・終了タグが含まれているとエラーになるため修正
- ManagerManager - mm_ddMultipleFieldsでdateを指定したときにデートピッカーで入力した値が保存されないため修正
http://forum.modx.jp/viewtopic.php?p=8757#p8757 - nl2brモディファイア - PHP5.3よりも古い環境でエラーになるため修正
- チャンクで作ったモディファイアが動作しないため修正
- 一部モディファイアで[+value+]が使えないため修正
replace_toモディファイア・googlemapsモディファイアで[+value+]プレースホルダが使えない - モジュール保存時にエラーになっていた問題を修正
- TVで入力フォームがURLの時、リソース編集画面でテンプレートを編集した際にprefixが抜け落ちる問題を修正
- 修正 - TinyMCE 「このページを離れる」の確認ウィンドウ
http://forum.modx.jp/viewtopic.php?p=8580#p8580
TinyMCEのHTMLソースコード表示で直接ソースを修正した後に更新ボタンを押すと「このページを離れる」の確認ウィンドウが表示される - 修正 - TopicPath
http://forum.modx.jp/viewtopic.php?f=32&t=1578 - $modx->getIdFromAlias() にてaliasが空の子リソースがある場合にコンテナ
ではなく、子リソースのidを返す問題を修正。 - カスタムモディファイア内で変数名$btを使えないため修正
- Fix - count_attempts
- Fix - 権限割り当ての間違い
- Fix OnLoadDocumentObject
https://github.com/modxcms-jp/evolution-jp/commit/361b7b11d2a8eda6c32c920172ae953b8f56d874
http://forum.modx.jp/viewtopic.php?f=32&t=1531 - モディファイアを使用した場合に子テンプレートを使用できないため修正
http://forum.modx.jp/viewtopic.php?f=32&t=1534 - Fix - $modx->changeWebUserPassword()
http://forum.modx.jp/viewtopic.php?f=32&t=1561 - Fix - $modx->rotate_log()
http://forum.modx.jp/viewtopic.php?f=32&t=1560
「ハイフン入りのDB名を使用すると、エラーが起きる」 - Fix - カスタムモディファイア内で変数名を取得できない
- Fix - $modx->clearCache()
http://forum.modx.jp/viewtopic.php?f=32&t=1549 - Fix use_udperms
- Fix - nl2brモディファイア
- PHPのmax_execution_timeでタイムアウトした時にキャッシュファイルを壊す問題を修正
- Fix - リソース更新権限がないとコンテキストメニューが表示されない
- Fix - $modx->clearCache()
http://forum.modx.jp/viewtopic.php?f=32&t=1529 - ManagerManager - mm_hideFieldsエラー
http://forum.modx.jp/viewtopic.php?f=32&t=1544
http://forum.modx.jp/viewtopic.php?f=34&t=1543 - 管理画面内でウィジェットを展開できない
http://forum.modx.jp/viewtopic.php?f=32&t=1547 - datagrid - tab区切りにカンマが混入すると機能しないため修正
廃止
- METAタグ管理機能を廃止
- jquery-migrate.jsを削除。IE6・IE7・IE8をサポート対象外とする(実際は特に問題なく動作するはず)
- inroleモディファイアを廃止。代わりにisinroleを使う
- ログイン時の改竄チェックを廃止
- $modx->config['output_filter']を廃止
- Etomiteとの互換性を廃止
改善・変更
- TopicPath - タグ構成をシンプルに整理(過剰なSEO対策となる可能性があるtitle属性を削除)
- 画像ファイル軽量化
- キャッシュクリア後にOnDocFormSaveイベントを呼ぶように変更(プラグイン内で古いキャッシュを参照した場合、意図せぬ動作になるため)
- セッション保持リクエストのヘッダ出力位置調整(エラーの時にjsonのMIME定義になってなかった)
- セッション保持リクエストからリソースが公開された場合にイベントが動作しない問題を修正(プラグイン情報を含む設定情報が呼ばれていなかったため)
- OnDocPublished/OnDocUnPublishedイベントの適用範囲拡大(これまでは管理画面のリソースツリー右クリックメニューからの操作で発動するのみでした。今回の改修により、公開設定でリソース保存時、スケジュール公開時にもOnDocPublished/OnDocUnPublishedを実行するように変更)
- OnDocPublished/OnDocUnPublishedイベントのパラメータにtypeを追加
どの処理時にイベントが呼ばれたかは下記の$typeの値で確認できます。
$type==manual ・・・ 手動公開/非公開
$type==scheduled ・・・ 自動公開/非公開
$type==draftManual ・・・ 下書きの手動公開
$type==draftScheduled ・・・ 下書きの自動公開 - キャッシュクリア後にOnDocPublishedイベントを呼ぶように変更(プラグイン内で古いキャッシュを参照した場合、意図せぬ動作になるため)
- 未定義の変数参照によるPHPの警告ログ対策
- ツリーメニュー非公開時に更新者([*editedby*])も更新
- リソースツリーでの公開時に更新時刻([*editedon*])を更新
- リソースツリーでの非公開時に更新時刻([*editedon*])を変更
- リファラチェックの処理を変更
HTTP_REFERER内に[(site_url)]が存在するかどうかをチェックし、サイト内からのPOST以外は受け付けないものとする。 - OnBeforeDocFormDeleteのパラメータを調整
プラグイン内で下記の記述を行うことで削除を中断させることができるようにした。
$modx->event->cm->setParam('enableProcess',false); - システム情報にDBエンジン情報も表示
- システム情報からのテーブル内容削除リンクを削除。元々機能していなかったうえ、ログの削除はイベントログ、管理操作ログで実施可能なため
- インストーラ文言調整
- エレメント(テンプレート・チャンク・スニペットなど)の編集がロックされている時の表示を分かりやすくする
- ロックをかけたエレメントの保存操作に制限をかける
- Not found(404)時のキャッシュ処理を改善。パースタイムが3分の1以下に高速化
- IE6などレガシーブラウザ対応の記述を整理
- 管理画面用ajaxエントリーポイントを追加(manager/ajax.php)
- Javascript関数名startrefresh()をreloadPane()に変更(分かりにくいため)
- jQueryで扱うオブジェクトデータでダブルクォートを使う
- リソース更新直後の遷移(この画面・閉じる・次の作成など)を記憶する(セッション単位)
- エレメント編集画面を整理。エレメントの説明文を「ヘルプ」タブに移動
- 投稿画面などフォーム保存時のエフェクトを変更
- reset_path関数を整理(グローバル設定画面でしか使わないため)
- $modx->makeUrl()でid=0を指定した時はsite_startとして処理する
- リソースツリーポップアップメニューの公開/非公開時に「[27] Editing resource」も登録する。
- 設定した「最大エクスポート時間」の秒数内に処理が終わらなかった場合は、生成ファイルを初期化せず継続して処理できるようにする。
たとえば処理に120秒かかる場合、60秒×2回に分けてエクスポートを行なうことができる。 - エクスポート時のfile_get_contents実行時にuser agentを設定。
- サブリソースで明示的にindex.htmlを作った場合は上書きする
- エクスポート処理で再帰処理を行なわないように変更。全ID対象に順番に処理する
- エクスポート機能 - 指定IDのリソースのみを出力するオプションを追加
http://forum.modx.jp/viewtopic.php?p=8788#p8788 - Fix - MODX_CORE_PATH
将来的にはmanagerディレクトリとは関係ない場所にコアを配置できるようにする - インストーラのjQuery記述・.attr() を .prop() に変更
- 特定ファイルのブラウザ直接参照を禁止
- 外部モディファイアファイルのファイル名検出の優先順位を調整
1. assets/modifiers/mdf_[name].inc
2. assets/plugins/phx/modifiers/[name].phx.php
3. manager/includes/extenders/modifiers/mdf_[name].inc - リソースを非公開に戻した時、現在日時よりもpub_dateが新しい場合はpub_dateの値を保持する。すでに過去の値となっている場合はこれまでどおりpub_dateの値を削除する。unpublish_dateの値は変更しない
47a58ce5ce45666980d4b9d3efc6435d4fe1e6ea@github - is_imageモディファイアの仕様変更
オプションが指定されている場合はオプションの値をパス文字列と見立てて判定する - is_file系モディファイアの仕様変更
オプションを指定しない場合は変数の値をパスと見立てて判定する
オプションが指定されている場合はオプションの値をパスと見立てて判定する - QuickManagerのcolorboxを v1.6.3にアップデート
- jQueryを v2.1.4 にアップデート。これによりIE6~IE8がサポート対象外となる(実際には特に問題なく動作するはず)
- スニペット編集画面 - <?php と ?> を表示しないように変更
- QuickManager - インライン編集ボタンのデザインを調整(コアと揃える)
- QuickManager - IE7向けの記述を削除
- QuickManager - リソース新規作成時のデフォルトテンプレート設定など
http://forum.modx.jp/viewtopic.php?p=8757#p8757
New document template typeの設定
Custom buttonsで追加したボタン
Inline new resource buttonsで設置したボタン - ManagerManager - mm_ddMultipleFields 同梱jquery-uiをアップデート
- ManagerManager - mm_ddMultipleFieldsデートピッカーのスタイル調整
- リソースツリー上のサイト名をクリックした時のアクションを「リソース一覧を表示」とする
- IEで管理画面のデザインが一部異なるため調整
- Chromeスリミングペイント対策
- CAPTCHA機能(veriword)の内部処理を整理(最近はほとんど効果がない機能と思われるため機能縮小方向で調整)
- $modx->getFullTableName()の処理を調整(SQLite対応に備える)
- プラグインのプロパティもキャッシュする。プロパティ情報を持たないプラグインの場合はクエリが発生して逆にわずかに負荷が高くなるため
- SQLダンプの生成を改善
文字としてのシングルクォートは \' ではなく2つ重ねの '' を使う
コメントは # ではなく -- を使う - parseText関数内でモディファイア処理を行なう
- PHP 5.5 ネイティブ対応
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
を
error_reporting(E_ALL & ~E_NOTICE);
に変更 - Wayfinder - MySQL 5.0.51のバグ対応の処理を削除
- $modx->checkPublishStatusを$modx->updatePublishStatusに変更
- 「システム情報」にシステム更新日時を表示
- $modx->functionCache でファイルにキャッシュするのはいったん廃止(プロセスあたりのreadwriteが増え過ぎることがあるため)
- $modx->config['upload_images'] - *.svgを追加
- ***:memberofモディファイアを改善。ウェブユーザごとにキャッシュを生成
- MODXMailerで一部エンティティ文字のサニタイズ回避
' 「'」 アポストロフィ
‘ 「‘」 左のシングルクォーテーション
’ 「’」 右のシングルクォーテーション
" 「"」 ダブルクォーテーション
“ 「“」 左のダブルクォーテーション
” 「”」 右のダブルクォーテーション - ファイル型のカスタムモディファイアの格納ディレクトリを変更
- childrenモディファイアの初期値をpageとする
- mathモディファイア - ?の代わりに[+value+]を使えるようにする
- mathモディファイア - インプット値が無効な場合は0とする
- mathモディファイア - インプット値をintする
- [[ $_XXX]]が空の場合は何も出力しない(array() という文字列を出力しない)
- 記法変更 [*pagetitle@ultimateParent(3)*]
旧 [*pagetitle@3/ultimateParent*]
新 [*pagetitle@ultimateParent(3)*]
旧記法でも動作するが新記法を推奨 - Move into sanitize_gpc logic(protect.inc.phpの処理を本体パーサ内に移動)
- $modx->makeUrl()
$idを指定してない場合はカレントIDを初期値とする - * Ditto - Paging の ?start=0
?start=0 の時は ?start=0 をunsetする - Ditto - 新プレースホルダ [+prev+]
[+previous+]のエイリアス - [+dummy+] - ダミーのプレースホルダを追加([+phx+]と同じ)
- $modx->getField()でfunctionCacheを使う
- モディファイアをコアの基本機能として採用
- ***:show モディファイアを改善。オプションに「src」を指定すると処理前の変数値を出力する
- spam_protectモディファイア
href属性などhtmlタグの値として用いるとイレギュラーになるため修正
※スパム対策としてはhtmlentitiesモディファイアを使うほうがよいはず - memberofモディファイア
メンバーIDごとにキャッシュを生成する - [*変数@alias(aaa/bbb)*]を使えるようにする
- [*変数@num/uparent*]は分かりにくいので[*変数@uparent(num)*]に変更
- zenhan / hanzenモディファイア
https://twitter.com/123_masco/status/586488804883566593 - QM - TinyMCE編集時のアラートを抑制
TinyMCEでhtml更新時の「ページを離れますか?」アラートを抑制 - 投稿画面 - キャンセル時の遷移先を整理
- リソース検索結果一覧のID左にサブリソース一覧へのフォルダリンクを追加
- TVのプロセッサで@EVALの出力が空の時に加工前のデータを出力せず空として扱うようにした。なお、@EVALがエラーになった時は加工前のデータを出力します。
- 不要なconfigを整理
- TVのカスタムフィールドを利用した際のMODXタグをパースするタイミングを変更。
以前のタイミングでは[+value+]内に書かれていたタグもパースされていた。 - インラインのJavascriptをjQueryに書き換え
html中に散在しているJavascriptを一か所にまとめて見通しを改善
※画面描写が重くなるかもしれないので、しばらく様子を見て問題がありそうなら元に戻します。 - OnMakeUrlイベントにて次のコマンドでURLを変更できるようになった。
$modx->event->cm->setParam('url',$newurl); - eFormのフォームテンプレートをパースする
- スニペットコールの展開を改善
http://forum.modx.jp/viewtopic.php?f=32&t=1562
スニペット名とパラメータの区切り文字「?」の判定精度を改善 - OnBeforeSaveWebPageCacheイベントに以下のパラメータを追加。
makeCache ... キャッシュ生成フラグ
この値をfalseにするとキャッシュ生成する設定になっているリソースもキャッシュを生成しない。
$modx->event->cm->setParam('makeCache',false); - 修正 - $modx->setCacheRefreshTime()
- replaceモディファイア改善
カンマ以外の区切り文字を使えるようにする
A,B
A|B
A/B
A=>B - 複数のモディファイアを改善
:ltrim
:rtrim
:trim
:nl2br
:base64_decode
引数を指定できるようにする
http://mblo.info/cheat-sheets/modifiers.html - モディファイア設定の文言調整
http://forum.modx.jp/viewtopic.php?p=8396#p8396 - $modx->toDateFormat() 値が0の場合は0を返す(1970/01/01などを返さない)
- $modx->evalSnippets() 不正なネスト防止のフラグを追加
- スニペットコールのパラメータで配列を扱えるようにする
[[test?p[]=value1&p[]=value2]]
[[test?p[k1]=value1&p[k2]=value2]]
パラメータが配列かどうかで処理を出し分けることができる
配列の要素数で処理を出し分けることができる - addBreakモディファイアの処理を改善
- 「権限のないリソースの表示」を見分けやすくする
グローバル設定で
・グループ管理機能を使用 [はい]
・権限のないリソースの表示 [はい]
の時、権限のないリソースのノードが管理画面内で普通に表示されるため、編集できるのかどうか、開いてみるまで分からない。
色で区別するようにした - リストア機能 - バージョンチェックを廃止し、古いバージョンのMODXから出力したSQLデータでもインポートできるようにした。スニペットやプラグインなどの先祖返りに注意する必要があるが、スニペットやプラグイン自体を先祖返り事故が起きにくいように作り変えることを推奨。
- $modx->setdocumentMap()の処理を調整
ファイルからキャッシュを読まずに必要な情報量だけプロセスごとに生成する
(情報が多くなるとキャッシュのほうが逆に重くなるため) - $modx->getCache() 関数名変更
https://twitter.com/123_masco/status/606240636610609152
http://forum.modx.jp/viewtopic.php?f=32&t=1557 - OnBeforeDocFormSaveイベントに以下のパラメータを追加。
doc_vars ... ドキュメントに関するデータ
tv_vars ... テンプレート変数に関するデータ
プラグイン中にこの値を変更してリソースを保存させることができます。
$new_vars = $modx->event->cm->getParam('doc_vars');
$new_vars['content'] = 'hoge';
$modx->event->cm->setParam('doc_vars',$new_vars); - OnLoadWebPageCacheイベントで以下のパラメータを追加。
useCache
プラグイン中でfalseに変更するとキャッシュを使わなくなります。
$modx->event->cm->setParam('useCache',false); - Fix - リソースツリー上のHomeアイコンのフォルダ開閉
http://forum.modx.jp/viewtopic.php?f=32&t=1554 - MGR_DIR定義時にリダイレクトしないように変更。
- 利用していないキャッシュファイルの削除。
- テンプレート変数タイプ追加に「入力フォーム」のtextareaを対応させる
- テンプレート変数タイプの追加時の入力フォームを@EVALに対応する
- 管理画面ページング微調整
- DBAPI - connectできなかった時の情報送信
connectできなかった時に送信する情報を詳細化 - テンプレート編集画面で@URL
- ファイル管理画面の編集・閲覧可能ファイルに「tpl」を追加
- プラグインによるテンプレート変数のタイプ追加は稼働中のプラグインのみとする
- プラグインでもテンプレート変数のタイプ追加を可能にする。
追加するテンプレート変数のタイプ名の各単語の最初の文字を大文字にする - グローバル設定更新時にパーミッションをFix
- リソースが削除されている時は公開非公開を表示しない
- Fix - リソースの複製
save_document権限がない場合はリソースの複製を表示しない - Fix - server_offset_timeを考慮
- プラグインでグループ管理の有効無効を変更できるようにする
- リストア機能 - ファイル名とリストア内容を指定できるようにする
- Ditto - &tplOuterパラメータ調整
リソースが1件もなければ何も表示しない - TopicPath - tplでモディファイアを使えるようにする
- TinyMCE - autosaveを削除
- スニペットコールの入れ子の問題を改善( [[スニペットA?param=[[スニペットB]]]]というふうに末尾に ] が4つ続くケース)
トピックス
下書き機能
ベータ機能扱いで下書き機能を実装しました。グローバル設定で「下書き機能を使う」を有効にすると、リソース投稿画面に「下書きを作成」ボタンが追加されます。
Document API
リソース(ドキュメント)を操作できる補助的なAPIです。下書き機能用に用意されたDoc APIと似ていますが、こちらはスニペットやプラグイン中でも利用できるような感じにしています。使い方は次の通りです。
//新規リソースの作成と保存
$rs = new Document();
$rs->set('pagetitle','新ページ');
$rs->save();
//既存リソース(1)のタイトルを修正
$rs = new Document(1);
$rs->set('pagetitle','新タイトル');
$rs->save();
//既存リソース(10)の公開
Document::chPublish(10);
//既存リソース(10)の削除
Document::chDelete(27);
//既存リソース(10)の完全削除
Document::erase(10);
ConfigModication(cm) API
このAPIを使ってMODX側からプラグインに渡されるデータの取得、逆にプラグインからMODX側のデータの提供が行えます。
//※OnMakeUrlイベント内での記述
//MODXから渡されるデータをすべて取得
$params = $modx->event->cm->getParams();
//MODXから渡されるURLデータを取得
$url = $modx->event->cm->getParam('url');
//プラグイン内で変更したURLをMODX側へ提供
$modx->event->cm->setParam('url',$url);
//※OnLoadWebPageCacheイベント内での記述
//キャッシュを利用しないようにMODX側へ指示する
$modx->event->cm->setParam('useCache',false);
このAPIはプラグインの中でのみ動作します。
また、以前のバージョンから利用できる $modx->event->vars についてもConfigMidication(cm) APIと同じようにMODXとプラグイン間でデータの受け渡しが可能ですが、プラグイン中に別のプラグインが実行されるような場合に予期しない動作を起こすことがあります。
チャンクでパラメータを指定
[+名前+]さん
上記のようなチャンクを作成して、
{{チャンク名?名前=鈴木}}
こう書くと、
鈴木さん
と表示されます。バナーなどをチャンクで管理する場合など、画像ファイルのファイル名などを自由に指定できるため便利です。
プリセットのスニペットコール
http://forum.modx.jp/viewtopic.php?f=34&t=1543
プリセットで使えるスニペットコールコマンドを追加しました。「スニペット」という言葉本来の意味とは異なるため、用語については今後検討します。
@copyright [[$_SERVER['REQUEST_TIME']:date(Y)]]
たとえば上記のように記述すると、フッタなどに用いる年号付きコピーライトを出力できます。これだけのために専用のスニペットを追加する必要がないため、シンプルに管理できるようになります。
<!--@IF:><@ENDIF-->文やモディファイアと組み合わせることで、テンプレート内・リソース内・チャンク内などに複雑な分岐処理をインラインで記述することができます。一度しか使わないなどの理由でスニペットを増やしたくない場合に、ワンポイントで使うと便利です。
これらの記述の濫用によってかえって管理が複雑にならないよう気をつける必要があります。基本的にはこういった分岐処理はスニペットを用いることを推奨します。
注意点
- IE6・IE7・IE8をサポート対象外としました。
- METAタグ管理機能は廃止しました。METAタグ管理機能はテンプレート変数が実装される前に作られた古い機能なので、今後はテンプレート変数を用いてください。
- ログイン時の改竄チェックを廃止しました。
- 管理画面内のネイティブJavascript記述のいくつかをjQueryにまとめた影響で、管理画面のタブ画面描写が多少重く感じられるかもしれません。気になる場合は次のバージョンで元に戻します。
次リリースの予定
次の1.0.16J(もしくは1.1J)では下記のような変更を予定しています。
- 内部的なデータ構造及びデータ処理の変更を伴う改善
- Revolutionのフィルターモディファイアをいくつか移植(cssToHeadなど)
- UNIX系コマンドのsort・uniq・grepなどのようなモディファイアを追加
- $modx->documentObjectの構成を本家版と合わせる(alias_visibleを追加する)
- 下書き機能
その他
気付いた点があればフォーラムまたは問い合わせフォームからフィードバックをお願いします。開発に参加して自ら機能追加・改善などを行なってみたい方もお気軽にご連絡ください。