PowerCMS X ver.3.0リリースノート

公開日  :  2021-11-08 10:00

version 3.0

新機能

  • JSON RESTful APIを追加しました。
  • 新テーマ「Media」を追加しました。Bootstrapベースのシンプルな情報サイトテーマです。
  • 新テーマ「Skeleton」を追加しました。ダイナミック・パブリッシング設定とトップページのみのミニマルなテーマです。
  • プラグイン「MachineTranslator」を追加しました。Microsoft Translator APIを利用して管理画面上でコンテンツを機械翻訳でき、公開側のウェブページ翻訳にも対応します。
  • プラグイン「AWS_S3」を追加しました。静的ファイルを Amazon Simple Storage Service(S3)に同期します。
  • プラグイン「AWS_CloudFront」を追加しました。静的ファイルのパブリッシュと連動して AWS CloudFront のキャッシュをパージします。
  • プラグイン「QuickEdit」を追加しました。公開ページから編集画面へのクイック編集リンク用ブックマークレットを提供します。
  • プラグイン「CSSPreprocessor」を追加しました。CSS PreprocessorのコードをCSSにコンパイルします。
  • GitHubのリポジトリURLを「theme.json」の「repository」に指定できるようになりました。管理画面から最新版を適用できるようになります。
  • ビューの「ファイルへのリンク」機能をサポートしました。環境変数「linked_file」に「2」指定で PowerCMS と同じ振る舞いに、「1」を指定すると保存時の書き込みのみ行います。「0」指定では何もしません(初期値は2)。
  • テーマのバージョンを管理画面から変更できるようになりました。
  • テーマディレクトリに「models」「plugins」ディレクトリを追加できるようになりました。
  • プラグイン「Theme_GitHub」を追加しました。管理画面からテーマを GitHubにコミットします。
  • 環境変数「composer_autoload」を追加しました。「phpoffice/phpword」「twilio/sdk」をパッケージから削除し、composerからインストールするように変更しました。
  • テンプレートエンジン「PAML」をバージョンアップしました。利用できるタグが増え、記述方法がより柔軟になり、パフォーマンスが向上しました。
  • ファンクションタグ「mt:objecttoresource」を追加しました。RESTful APIのリソースと同形式の配列を返します。
  • ファンクションタグ「mt:objecttojson」が返す JSONのフォーマットをRESTful APIのリソースと同形式となるようになりました。環境変数「objecttojson_compat」を指定すると従来のフォーマットで返却します。
  • ファンクションタグ「mt:archivetitle」が日付アーカイブ以外のときも現在のアーカイブのタイトルを出力するようにしました。
  • ファンクションタグ「mt:archivedescription」「mt:archivogimage」を追加しました。現在のアーカイブの概要と「og:image」を追加します。
  • 環境変数「tag_delimiter」を追加しました。ビューの作成に PHPのテンプレートエンジン「Smarty」「Twig」「Mustache」ライクな記述方法を利用できるようにします。初期値は nullです。
  • ファンクションタグ「mt:fetch」に「to_encoding」「method」「content_type」「access_token」「headers」「content」属性を指定可能にしました。
  • 「pt-recommend-api.php」にパラメタ mt(MachineTranslatorを利用して翻訳するフィールドのカンマ区切り)、lang(MachineTranslatorを利用して翻訳する言語)を指定可能になりました。langパラメタがない時もクッキーがセットされている場合は翻訳を行います。
  • スコープの設定に「リンクを併記」を指定できるようになりました。リンクURLを別に指定している時、管理画面でサイトURLとリンクURLへのリンクを両方表示します。
  • ファンクションタグ「mt:constant」を追加しました。name属性に PHPの定数を渡すことで値を取得します。
  • ログの一覧で、エラー及びセキュリティ関連の行に色を付けるようにしました。
  • プラグイン「Minifier」でスコープごとのプラグイン設定でパブリッシュ時に自動で行う圧縮対象を設定できるようになりました。
  • プラグイン「LinkChecker」のリンクチェックを別ウィンドウで開くようにし、進捗をリアルタイムに都度表示するようにしました。
  • プラグイン「LinkChecker」の外部リンクチェックを並列処理によって高速化しました。並列数は環境変数「linkchecker_parallel」で指定し、初期値は15です。
  • プラグイン「LinkChecker」に環境変数「linkchecker_worker_async」を追加しました。スケジュールタスクでのリンクチェックを worker.php とは別プロセスで行います。初期値は trueです。
  • プラグイン「LinkChecker」に環境変数「linkchecker_max_exec_time」を追加しました。リンクチェックの最大実行時間を秒で指定します。初期値は 36000(10時間)です。
  • 環境変数「fileuploader_backup」を追加しました。プラグイン「FileUploader」でアップロードされたファイルを supportディレクトリ配下にバックアップします。
  • Websiteテーマでウィジェットのイメージの URLをルート相対パスとし、リンクURL設定のあるとき、og:urlと og:imageの URLを置換するように変更しました。
  • ブロックタグ「mt:convert2linkurl」およびグローバルモディファイア「convert2linkurl」を追加しました。サイトURLをリンクURLに置換します。
  • グローバルモディファイア「add_mtime」を追加しました。URLのパラメタにファイルのタイムスタンプを追加します。
  • グローバルモディファイア「date_modify」を追加しました。タイムスタンプを変更します。
  • 環境変数「work_dir」を追加しました。スケジュールタスクが利用する一時ディレクトリを指定します。初期値は「/tmp」です。
  • 環境変数「import_detach_binary」を追加しました。指定することで CSVからのインポートでバイナリ型のカラムを空にセットすることでファイルを削除します。
  • 1対1のリレーションでアセットモデルを定義している時、CSVのインポート&エクスポートに対応しました。
  • 添付ファイルの編集画面に添付ファイルが利用されているオブジェクト名とリンクを追加しました。
  • objectpath タグで basenameのないモデルではプライマリカラムの値を separatorで繋げて出すようにしました。
  • プラグイン「Keywords」のブロックタグ「mt:autokeywords」で、キーワードモデル以外のモデルを利用できるようになりました。
  • プラグイン「Keywords」のブロックタグに指定できる属性が増えました。詳細はプラグイン「Keywords」のドキュメントを参照ください。
  • プラグイン「MTMLReference」が生成するタグリファレンスにタグを提供する PHPクラス名と追加されたタグのバージョンを表示するようにしました。
  • 環境変数「pt_check_url」を追加しました。pt-check.phpの URLを指定します。
  • 日付に関するテンプレート・タグが属性「format_name」をサポートしました。「rfc822」「iso8601」「RSS」「ATOM」「W3C」などを渡すことができます。
  • 環境変数「clean_up_published_url」を追加しました。削除フラグのない URLをスケジュールタスクで整理対象にします。初期値は falseです。
  • ファンクション・タグ「mt:extends」を追加しました。インクルードしたビューを親テンプレートとして継承します。
  • 「PTMembers」クラスの runメソッドで、return_argsパラメタをセットするようにしました。
  • プラグイン「TinyMCE」のボタンの初期値にフルスクリーンボタンを追加しました。

改善された機能

  • すべてを再構築ボタンの前処理の速度を向上しました。
  • プレビュー・外部プレビュー・非公開コンテンツではプラグイン「AccessAnalytics」のアクティビティを保存しないようにしました。
  • 環境変数「system_info_url」が nullの時、pt-check.phpで外部通信を試さないようにしました。
  • グローバルモディファイア「assign」を追加しました。「setvar」モディファイアのエイリアスです。
  • テーマの「.htaccess」のパス指定をファンクションタグ「mt:constant」を使うことにより Windowsプラットフォームにも対応しました。
  • スマートフォンなど画面幅の狭い状態でも一覧画面のヘッダを表示するようにしてカラムをキーにした表示順の変更をできるようにしました。
  • プラグイン「Minifier」で HTMLのコード圧縮に利用するライブラリを Smartyのフィルタから TinyHtmlMinifierに変更しました。
  • プラグイン「LinkChecker」で「User-Agent」によってエラーを返すページへの対策用に、HTTPヘッダを追加しました。
  • プラグイン「Mirroring」の「現在の設定を確認する」をモーダルダイアログに変更し、テキストエリアに表示するようにしました。
  • スケジュールされたタスクで残りメモリが不足している時や実行時間が一定時間より長い時に以降のタスクをスキップして処理を次回以降に回すようにしました。
  • PHPの「max_execution_time」を「600」としました。特定の処理(スケジュールタスクやインポートなど)では環境変数「max_exec_time」の指定値に延長されます。処理機は 9000です。
  • テンプレート・タグを有効化しているモデル数、カラム数が多い時、コンパイルキャッシュが生成されていない時に一覧画面・編集画面のコンパイルに時間がかかる問題を修正しました。
  • コンパイルキャッシュをクリアした時に、一覧、編集、ダッシュボード、階層の管理画面テンプレートを再コンパイルして次回アクセス時の管理画面レスポンスを改善しました。
  • アップグレード処理でフィールドのカラム「value」の値を現在のバージョンでの保存時の値と同一にセットする処理を追加しました。
  • Websiteテーマの「prism.css」のコードのコントラスト比を改善しました。
  • モデルの「UUID」にチェックを入れてモデルを保存した時にオブジェクトの UUIDを自動でチェックするようにしました。
  • CSVからオブジェクトを新規インポートした時に uuidカラムの値を振り直すようにしました。
  • スキーマ管理画面のアップグレード処理時に JSONのデコードに失敗した時エラーを表示して処理を継続しないようにしました。
  • モデル定義の JSONファイルがデコードできなかった時に処理をストップしてエラーを返すようにしました。
  • 一部のブラウザ向けに公開日・非公開日入力欄の高さを調整しました。
  • オブジェクトの新規作成ボタンの「+」アイコンを常に出すようにしました。
  • 画像、アセット型のフィールドのスタイルを調整しました。
  • 可変長フィールドのスタイルを調整しました。
  • 選択できるフィールドが存在しない時、フィールド選択のドロップダウンメニューを非表示にしました。
  • テーマの jsファイル、cssファイルから sourceMappingURLを削除しました。
  • 予約モデル名に「archive」を追加しました。
  • 「theme.json」のエクスポート時に「JSON_UNESCAPED_SLASHES」オプションを追加しました。

修正・変更された機能

  • アセット編集画面のアセットの利用状況に数値型 1対1のリレーションカラムで関連付けられているオブジェクトが表示されていなかった問題を修正しました。
  • 削除したカラムが一覧画面の画面オプションに設定されている時、一覧画面で PADOBaseModelException: unknown column エラーが出る問題を修正しました。
  • 「cache_driver」が「File」の時、worker.php 実行時に「PHP Notice: Trying to get property '_driver' of non-object in」エラーが出る問題を修正しました。
  • ビューの編集画面に「mt:includeblock」で指定したモジュールのリンクが出ない問題を修正しました。
  • インストールされる前に管理画面へアクセスした時とスケジュールタスクが実行された時に一部のテーブルが作成される問題を修正しました。
  • プラグイン「SimplifiedJapanese」の「furigana」モディファイアでわかち書きを指定している時、「&」などの文字列が分解されてしまう問題を修正しました。
  • プラグイン「Keywords」のブロックタグ「mt:autokeywords」で、環境変数「keywords_use_mecab」指定のある時、キーワードが拾えない問題を修正しました。
  • 環境変数「keywords_use_mecab」を指定している時、プラグイン「keywords」のブロックタグ「mt:autokeyrowds」タグ内で連続した英単語の間の空白が消える問題を修正しました。
  • アセットのパス、ファイル名を変更した時、エディタへのファイル挿入時に古いパスが選択されるケースを修正しました。
  • フィールドが可変長もしくは複数の値を持つ時に値が最初のコントロールの値になってしまう問題を修正しました。
  • オブジェクトが保存された時にキャッシュがクリアされる前に再構築トリガーやコンテナの再構築が実行される問題を修正しました。
  • 環境変数「query_cache」が true の時、「mt:mixedobjects」タグが正しい結果を返さない問題を修正しました。
  • ログイン中のユーザーのプロフィール編集画面のページタイトルを「ユーザーの編集」から「プロフィールの編集」に変更しました。
  • ファンクションタグ「mt:vardump」で変数名に大文字を含む時に値が取得できない問題を修正しました。
  • システムの一覧表示権限がない時、プラグイン「AccessAnalytics」のすべてのページビュー、すべての検索ワードが閲覧できないケースを修正しました。
  • リバースプロキシを利用している時、外部プレビューのポスト先 URLが公開 URLにならないケースを修正しました。
  • モデル「question」のカラム名、グローバルモディファイア「normarize」を「normalize」に修正しました。グローバルモディファイア「normarize」は互換性のために残っています。
  • プラグインひな形のコールバック「post_import」を選択しても保存されない問題を修正しました。
  • チェックボックス、ラジオボタン型のフィールドの値が保存されない問題を修正しました。
  • PHP設定の「memory_limit」が「-1」の時タスクがスキップされる問題を修正しました。
  • 静的生成の時「mt:include」タグの「file属性」からサイト URL配下のファイルを取得できない問題を修正しました。
  • 数値型 1対1 のリレーションカラムの設定を変更した際に disp_edit カラム rel_model カラムが更新されない問題を修正しました。
  • プラグイン「AppProperties」で「fix_email_from」でメールアドレスを設定すると値がtrueになってしまう問題を修正しました。
  • プラグイン「ExternalPreview」で環境変数「external_preview_cookie_expires」に大きな値を指定している時、異なるモデルの外部プレビューがステータス 404になる問題を修正しました。
  • プラグイン「ExclusionControl」でスペースの排他制御が効かない問題を修正しました。
  • 「pt-check.php」のチェックで拡張モジュール「mbstring」のチェックを追加しました。
  • objectloopタグでソート順に field:フィールド名、あわせて limitを指定した時に意図したオブジェクトが取得できない問題を修正しました。
  • プラグイン「DisplayOptions」で、新規に画面オプションを作成した後の画面に「この画面を保存するまで設定は有効化されません。」メッセージを追加しました。
  • プラグイン「HTMLImporter」のタイトルのラジオボタン選択で Hintが切り替わらない問題を修正しました。
  • プラグイン「PluginStarter」でバリデーションエラーになった時、一部コールバックの設定済の値が引き継がれない問題を修正しました。
  • プラグイン「PluginStarter」で「pre_preview」「post_preview」コールバックをエクスポートした時にメソッドが PHPファイルに追加されない問題を修正しました。
  • リッチテキストエディタの全画面モードにしている時、ファイル選択・アップロードのダイアログがエディタの背面に隠れる問題を修正しました。
  • オブジェクトの編集画面におけるクロスサイト・スクリプティングの脆弱性を修正しました。
  • プラグイン「LivePreview」に同梱している「CMSのドメインとウェブサイトのドメインが異なる時に利用する HTMLのサンプルファイル」が期待した動作とならない問題を修正しました。
  • アセットと添付ファイルのパーマリンクがサムネイルの URLになるケースを修正しました。
  • 「mt:entries」などのオブジェクトをループするブロックタグにリレーションのカラムのフィルタを指定している時ライブプレビューによるフィルタが効かない問題を修正しました。
  • プラグイン「ImageWebP」で変換した画像が外部プレビューで表示されない問題を修正しました。
  • プラグイン「SyteSync」のルートディレクトリが「https:/」になるケースを修正しました。
  • メールマガジンの編集画面でメルマガ購読者を選択する画面での全件数が正しくない件を修正しました。
  • 再構築画面で main要素が重複していた問題を修正しました。
  • プラグイン有効化時に「locale」ディレクトリが存在しないと「upgrade_functions」が走らない問題を修正しました。
  • PADOの countメソッドで limitが効かない問題を修正しました。
  • スケジュールタスクで「URLの再パブリッシュ」が毎回ログに残るケースを修正しました。
  • スケジュールタスクの「テーブルの最適化」でSQLエラーが出るケースを修正しました。
  • 添付ファイルが存在しなかった時 non-object エラーが出る問題を修正しました。
  • インポート時に workspace_id が 0になる問題を修正を修正しました。
  • 外部プレビューを有効化している画面で JavaScriptエラーが出る問題を修正しました。
  • コンパイルキャッシュが生成されていない時、パーマリンクのあるモデルの一覧や編集画面の表示に時間がかかる問題を修正しました。
  • 一度に多くのプラグインを有効化・無効化・アップグレードするとレスポンスに時間がかかる問題を修正しました。
  • リレーションの設定のないモデルを一覧画面から全件選択してオブジェクトを一括削除する時に削除に失敗する問題を修正しました。
  • idが nullのオブジェクトをクラス Prototypeの remove_objectメソッドに渡すと全件が削除される問題を修正しました。
カテゴリ   :   リリースノート , 重要なお知らせ
最終更新 : 2021-11-08 10:22