テンプレートタグを強化。新機能を多数追加した PowerCMS X ver.2.5の提供を開始

公開日  :  2021-02-22 10:00

テンプレートタグを強化。バックグラウンド処理と再構築キューの実行速度を改善(最大3倍速)。新機能を多数追加した新バージョン ver.2.5の提供を開始します。

テンプレート・タグを強化。よりシンプルにより高度に書けるようになります。

  1. オブジェクトをループするブロックタグ属性にリレーションを指定可能になりました。

    以下は記事のフィルタリングの例です。従来のように「mt:setcontext」ブロックタグで囲む必要はなくなりました。

    <mt:entries categories="カテゴリ名1 OR カテゴリ名2" tags="タグ名1 AND タグ名2">
    </entries>

    * 指定はカラム名でもモデル名でも構いません(数値型カラムのリレーションの場合はカラム名限定)。entryモデルのタグ属性 categoriescategoryでもよく、tagstagでも構いません。
    * また、同じくオブジェクトをループするブロックタグにタグ属性「author」を利用できるようになりました。表示名ではなくログイン名を指定します。

    <mt:entries author="PowerCMSX-support">
    </mt:entries>
  2. ファンクションタグ「mt:unset」を追加しました。name属性を指定してテンプレート変数を未定義にします。配列変数のキーを指定することもできます。

    <mt:unset name="array[key]">
  3.  PowerCMS との互換性を確保するための機能と設定を追加しました。
    • ブロックタグ「mt:loop」の sort_by属性指定がスペース区切りに対応し、PowerCMSと互換性を保つようになりました。
    • 環境変数「sethashvar_compat」を追加しました。「false」を指定すると、ブロックタグ「mt:sethashvar」の中で「mt:setvarblock」もハッシュ変数の対象となり、PowerCMSと互換性を保つようになります。
    • ブロックタグ「mt:includeblock」を追加しました。テンプレート変数'contents'にブロックのコンテンツをセットして、mt:includeタグを呼び出します。
  4. プラグイン「AccessAnalytics」で提供されるランキング関連のタグが強化されました。
    • ブロックタグ「mt:rankedobjects」内で変数「object_id」をセットするようにしました。
    • ブロックタグ「mt:rankedobjects」にタグ属性「min_count」を追加しました。指定回数以上アクセスされた URLのみを出力します。
    • ブロックタグ「mt:rankedkeywords」にタグ属性「min_length」「min_count」を追加しました。指定文字数(長さ)以上のキーワード、指定回数以上検索されたキーワードのみを出力できます。
  5. ファンクションタグ「mt:include」およびブロックタグ「mt:cacheblock」に cache_ttl 属性と triggers 属性の指定のある時、再構築プロセス終了後もキャッシュを破棄せずに次回以降も再利用されるようにしました。
    cache_ttl 属性には有効期限の数値(秒)、triggers 属性にはモデル名の配列かカンマで区切りテキストを指定します。

  6. グローバルモディファイア「urldecode」を追加しました。

スタイルシートやJavaScriptで管理画面をカスタマイズ可能になりました。

管理画面にスタイルシートやJavaScriptを追加できる環境変数「user_css」「user_js」を追加しました。

        "user_css" : "/PowerCMSX/customized/assets/css/user.css",
        "user_js" : "/PowerCMSX/customized/assets/js/user.js",


URLもしくはルート相対パスを指定すると管理画面の HTMLの header内でそれらを読み込みます。

コンタクトの一覧画面が見やすく・情報を探しやすくなりました。

コンタクトの一覧画面がアイコンと色分けで見やすくなりました。ステータスによるフィルタ機能を追加しました。

新しくなったコンタクト一覧画面

新しいフィールド型「アセット」を追加しました。

フィールド(カスタムフィールド)型に選択タイアログ型の「アセット」「アセット(複数)」を追加しました。

  • 「アセット」については数値型・1対1のリレーションとなり、値にはアセットのIDが保存されます。
    「アセット(複数)」についてはリレーション型カラムと同じ UIとなり、値にはアセットのIDの配列が保存されます。

アセットカスタムフィールド

最大2GBまでのファイルアップロードをサポートする「FileUploader」プラグインを追加。

プラグイン「FileUploader」を追加しました。Chunked file upload(ファイルを分割してアップロード)機能を利用してアップロードし、データベースのバイナリカラムにデータを格納しないため、PHPや MySQLの設定に依存せず最大 2GBまでのファイルアップロードを可能にします。
画像のサムネイルを作成することも可能です。name 属性には「file_path」を指定してください。

<mt:assetthumbnailurl name="file_path" height="250" square="1" />

全文検索の文書中の検索範囲を柔軟に指定できるようになりました。

これまでサポートされていた「文書全体」「自動」に加え、文書の抽出パターンに「開始点と終了点を指定」「正規表現」「XPath」を追加しました。
XPathを利用することで、「|」を使って複数の要素内容を対象にすることができます。また、「開始点と終了点を指定」「正規表現」「XPath」についてはテンプレート・タグを利用してアーカイブ種別により分岐が可能です。

<mt:if name="archive_type" eq="entry">//*[@id="main_module"]/section[1]/div/div[1]||//*[@id="sub_section"]/section[1]/div/div[1]<mt:else>//*[@id="main_contents"]</mt:if>

バックグラウンド処理と再構築キューの実行速度を改善する環境変数や設定を指定可能になりました。

管理画面と異なり、バッチ処理で大量のコンテンツを1つのプロセスで再構築を実行すると、再構築ファイル数が増えるごとに利用メモリが増えていき、速度低下を招くことがあります。
定期実行タスク tools/worker.php に指定できる引数が追加され、適切に設定することで高速に再構築キューを実行することができるようになります。

  • --sleep : 実行開始までの待ち時間(秒)
  • --publish_queue_limit : 再構築キューの実行単位(数値)
  • --publish_queue_offset : 再構築キューのスキップ数(数値)
  • --task_ids : 実行するタスクのID(カンマ区切り)

以下は、1分おきに10ファイルずつ3プロセスで再構築を行なう例です。

*/1 * * * cd /path/to/PowerCMSX; php tools/worker.php --task_ids publish_queue --publish_queue_limit 10
*/1 * * * cd /path/to/PowerCMSX; php tools/worker.php --task_ids publish_queue --sleep 15 --publish_queue_limit 10 --publish_queue_offset 10
*/1 * * * cd /path/to/PowerCMSX; php tools/worker.php --task_ids publish_queue --sleep 30 --publish_queue_limit 10 --publish_queue_offset 20

* 各々のタスクについては 実行時に.pidファイルが生成され、以前のタスクが完了していない場合はスキップされます。重複起動はしません。

並列処理・分割処理に関する環境変数の追加

追加された環境変数を指定することで、cronの設定を変更することなくほぼ同様のことが実現できます。

  • parallel_publish_queue : 再構築キューを並列処理で実行します。並列処理するプロセスの数を指定します。CPUのコア数と実際の負荷に応じて設定してください。
  • publish_queue_per : 再構築キューを分割処理します。再構築するファイル数を数値指定します。並列処理は行いませんが、1プロセスあたりの再構築数を少なくすることで、メモリ使用量を減らし、結果として高速化されます。
  • parallel_rebuild_trigger : 再構築トリガーを並列処理で実行します。並列処理するプロセスの数を指定します。CPUのコア数と実際の負荷に応じて設定してください。
  • rebuild_trigger_per : 再構築トリガーを分割処理します。再構築するファイル数を数値指定します。並列処理は行いませんが、1プロセスあたりの再構築数を少なくすることで、メモリ使用量を減らし、結果として高速化されます。

* これらの環境変数は Windows環境では未サポートとなります。

カテゴリ   :   プレスリリース
最終更新 : 2023-02-20 12:06