PowerCMS X ver.3.2 / 2.72リリースノート

公開日  :  2023-03-15 15:00

version 3.2

新機能

  • リッチテキストエディタ「TinyMCE」のバージョン6に対応しました。環境変数「tinymce_version」に「6」を指定すると利用できるようになります。
  • プラグイン「TinyMCE」に表に関する複数の設定を追加しました。セルのドラッグの許可、border属性値、均等幅スタイルの適用などが設定できます。
  • プラグイン「TinyMCE」にプラグイン設定「ベースURL」を追加しました。
  • プラグイン「TinyMCE」にカスタムメニューバーボタン「pt-dl」を追加しました。説明(定義)リストの挿入と編集ができるようになります。
  • モデルの編集画面から、スキーマのドキュメントを CSVでエクスポートできるようになりました。
  • 環境変数「dynamic_ignore_scope」を追加しました。ダイナミック・パブリッシングで pt-view.phpの workspace_idを考慮せずにルート相対パスから URLを解決します。
  • グローバルモディファイア「nowrap」を追加しました。改行を空白文字に置換します。属性値に2を指定すると改行を削除します。
  • プラグイン「URLRedirect」でタイプ「正規表現」の時コンディションにルート相対 URLを設定できるようにしました。
  • モデルの設定変更時、数値型/真偽値形のカラムを「NOT NULL」指定した時、値がNULLのカラム値を「0」にセットするようにしました。
  • 環境変数「compile_check」が falseの時、ビューの編集画面にインクルードモジュールのへのリンクが正しく表示されるようにしました。
  • 環境変数「compile_check」の初期値を trueから数値「2」に変更しました。「1」指定の時従来と同様の振る舞いとなり、「0」を指定するとこれまでの falseと同様になり、「2」を指定するとビューの表示前のチェックをスキップします。
  • プラグイン「SearchEstraier」にプラグイン設定画面から検索インデックスの状態を確認する機能を追加しました。
  • クラス「template」にメソッド「map」を追加しました。関連づいている URLMappingオブジェクトを返します。
  • プラグイン「VideoCaptions」にプラグイン設定「相対パス」を追加しました。管理画面と公開 URLのドメインが異なるときに HLSが表示できないケースで指定します(サーバー側でエイリアス指定が必要です)。
  • プラグイン「FileUploader」にプラグイン設定「アップロード・パス」を追加しました。
  • PADOBaseModelに「__」から始まるコールバックを登録することで、オブジェクトのカスタムメソッドを登録できるようになりました。
  • コンパイルチェック結果の開始タグのない閉じタグの行数を表示できるようになりました。
  • PTUtil::yaml_parse、PTUtil::yaml_dumpを追加しました。
  • プラグイン「HTMLImporter」の取り込み設定を YAML形式のファイルにエクスポートできるようになしました。
  • プラグイン「HTMLImporter」が Digest認証をサポートしました。
  • プラグイン「HTMLImporter」に「前処理」(削除するポイント指定)を追加しました。削除する部分を他のカラムにセットすることもできます。
  • プラグイン「HTMLImporter」が「srcset」属性に指定されている画像をアセットに登録できるようになりました。
  • PTUtil::loadHTML、PTUtil::saveHTML、PTUtil::innerHTML、PTUtil::outerHTML、PTUtil::afterHTMLを追加しました。
  • PTUtil::formatLF、PTUtil::to_utf8、PTUtil::sec_to_hms を追加しました。
  • 環境変数「htmlimporter_settings_paths」を追加しました。YAMLファイルを設置して「HTMLImporter」プラグインを有効化したときに、取り込み設定をインポートします。
  • 環境変数「db_can_reconnect」を追加しました。データベース処理に失敗した時、データベースに再接続して処理をリトライします。初期値は「true」です。オブジェクトの保存失敗時にトランザクションをロールバックしたいケースでは「false」を指定してください。
  • 環境変数「auto_upgrade_schemes(スキーマアップグレードをスケジュールタスクで自動実行する)」「auto_upgrade_backup(スケジュールタスクでのスキーマアップグレード前に DBのバックアップを行う)」「auto_upgrade_plugins(プラグインアップグレードをスケジュールタスクで自動実行する)」を追加しました。バックアップについては適切に設定されている必要があります。
  • 環境変数「disallow_pwd_login」を追加しました。login, start_recover, recover_passwordメソッドに対してエラーを返します。
  • 環境変数「compile_cols」を追加しました。モデル名をキー、カラム名を値に追加することで保存時にテンプレート・タグのコンパイルチェックを追加することができます。
  • PTUtil::asset_from_fileメソッドを追加しました。ファイルパス、ディレクトリ、スコープの IDを引数に渡してアセットを登録します。
  • ログイン画面にテンプレート変数を指定できるようになりました。add_login_action_bar(「ログイン」ボタンの並びに追加するデータ)、alternative_login_screen(disallow_pwd_login指定のある時に表示するデータ)の2つです。
  • クラス「PADO」の「count_group_by」メソッドの第4引数にプレースホルダの配列を指定できるようになりました。
  • ブロックタグ「mt:countgroupby」に join属性(連結するモデル、モデルのカラム、連結先のカラム、フィルタ対象のカラム、フィルタ条件の配列)を指定できるようになりました。

改善された機能

  • プラグイン「HTMLImporter」でアセットを取り込む時「href」属性値に「#」が付いている時も正しく取り込めるようになりました。
  • 日付を処理するいくつかのメソッドで、「0日」を「1日」に設定するようにしました。
  • 「tools/orphanRecords.php」で、バイナリカラムを外部ファイル化しているときに実ファイルが存在しないのにカラムに値が含まれるとき、カラムを空にする処理を追加しました。
  • プラグイン「Minifier」で JavaScriptの圧縮に JShrinkを利用するようになりました。従来との互換性を保つときには環境変数「minifier_use_jshrink」を「false」としてください。初期値は「true」です。
  • 再構築のポップアップウィンドウに、URLマップに対応するビューのステータスがすべて無効なモデルを表示しないようにしました。 -「relation」テーブルの load時に関連オブジェクトを JOINして「status」「rev_type」を指定した読み込みができるようになりました。これによりリビジョンや下書きのオブジェクトの多いオブジェクトをループタグで取得する速度が向上しました。
  • gif形式の画像について、exif情報に関する処理をスキップするようにしました。
  • プラグイン「AWS_S3」で一時ディレクトリに書き込まれたファイルの検索をスキップするようにしました。
  • 一覧画面の作成者(created_by)、更新者(modified_by)がユーザーのログインIDで表示されるものについて、ログインIDから表示名に変更しました。
  • プラグイン「Abs2Rel」で動的生成を無効に設定している時、Formへのポストや検索など、静的URLに対する動的リクエストが置換対象にならないようにしました。
  • 「設問タイプ」「設問」「フィールド型」「フィールド」及び設定画面の保存時にテンプレート・タグのコンパイルチェックを行うようにしました。
  • 一覧画面からのアクション適用後の再構築単位を少なくしました(規定値の半分)。
  • 一覧画面からのアクション適用後の再構築で、最後のリクエスト時に実行される再構築トリガーをバックグラウンドで実行するようにしました。
  • 一覧画面からのアクション適用後の再構築時に、「max_execution_time」を環境変数「max_exec_time」の指定値に延長するようにしました。
  • debug_backtraceメソッドに 3(DEBUG_BACKTRACE_DUMP)を指定した時、コマンドラインからの実行でないとき preタグを出力するようにしました。
  • ビューの編集画面を開く時のコンパイルチェックで URLマップからコンテキストをセットするようにしました。
  • 「cache_driver」が「File」以外の時、システム標準のロケールをファイルキャッシュとして扱うように変更しました。
  • モデル「ビュー」「URLマップ」のデフォルトリストカラムを設定しました。
  • プラグイン「MachineTranslator」の翻訳ボタンのアイコンを変更しました。
  • ファンクションタグ「mt:var」に opモディファイアを指定して valueモディファイアを省略した時の結果を PowerCMSと同様になるようにしました(PAML4のみ)。
  • 階層型のリレーション指定しているとき、リレーション元の作成・編集画面から階層を編集した後に適用する際のテンプレートをプラグインでカスタマイズ可能にしました。
  • 一覧画面のカラム「表示順」のセルの幅を小さくしました。
  • 階層付きモデルの階層の管理画面の「変更を保存」ボタンを下部に固定できるようにしました。
  • クラス「PADO」を stdClassを継承したクラスに変更しました。
  • プラグイン「DocumentSearch」のドキュメントを更新しました。Xpdfは非推奨となりました。popplerの pdftotextコマンドをインストールしてそれを利用するようにしてください。

修正・変更された機能

  • PHP8.2でスケジュールタスク実行時に「Creation of dynamic property PTWorker::$delayed_dependencies is deprecated」エラーが出る問題を修正しました。
  • プラグイン「SearchEstraier」でタイトルや本文を Xpathや CSSから取得するように設定した時「Attempt to read property "length" on bool (2) occured」が出るケースを修正しました。
  • アップロード済みのアセットを違うファイル名にリネームまたは差し替えた後、同じパスのアセットをアップロードした時にファイル名に連番が付く問題を修正しました。
  • 「mt:archivetitle」を含むビューの編集画面を開いた時に「preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated」エラーが出るのを修正しました。
  • プレビュー対象のオブジェクトが 1件もない時、ビューのコンテキストでプレビューが実行されるケースを修正しました。
  • 環境変数「validate_url」が trueの時に別スコープのマルチバイトファイル名を含む URLが表示されないことがある問題を修正しました。
  • 一度送信したワークフローのメッセージが残り続けて、同一オブジェクトの複数ワークフロー実行時に複数回送信される問題を修正しました。
  • プラグイン「DocumentSearch」でタイトル以外のメタデータがタイトルにセットされる問題を修正しました。filters/estfxpdftohtml2 を利用している場合は /usr/local/share/hyperestraier/filter/estfxpdftohtml2 を差し替えてください。
  • システムの設定画面とスペースの設定画面の一部のタイムゾーンの表記が間違っていたのを修正しました。
  • コンパイルチェックの結果のエラーの行数が 1行ずれていたのを修正しました。
  • ログインした状態でプラグイン「ExternalPreview」によるプレビュー時の不具合を修正しました。
  • オブジェクトの編集画面でテキストエリアの先頭の改行が失われる問題を修正しました。
  • フレーズの翻訳で第二引数を省略した時に落ちるケースを修正しました。
  • オブジェクトの作成・編集画面でフィールドを読み込む時に「order(表示順)」が無視されていたのを考慮するようにしました。
  • PHP8.1以降で PTTags / PTListActionsクラスで「preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in」が出る問題を修正しました。
  • プラグイン「TinyMCE」が有効な時、JavaScriptエラーになるケースの対策をしました。
  • ワークフローの設定が直列の時、直前のユーザーへの差し戻しができない問題を修正しました。
  • PADO_DB_BLOB2FILEを指定しているとき、すでに削除されたバイナリカラムにデータがあると誤判別されて、編集画面に「ビュー」「ダウンロード」ボタンが出るケースを修正しました。
  • プラグイン「HTMLImporter」で Undefined variable $origURL, Undefined variable $tagName がエラーーログに出力されるケースを修正しました。
  • 画面に非表示になっているフィールドがある時、プラグイン「BannedWords」がエラーとなりオブジェクトの保存ができない問題を修正しました。
  • 環境変数「keep_published_on」指定のあるとき、オブジェクトの Dateタグに format属性を指定すると正しい日付が取得できない問題を修正しました。
  • 階層付きモデルのインポート時に親オブジェクトをラベルで指定している時、別のスコープのオブジェクトに紐づいてしまうケースを修正しました。
  • 設問タイプ「テキストエリア」で行の高さが反映されない問題を修正しました。
  • 「ファイル」を単一選択のリレーションで関連づけたモデルの作成・編集画面で選択時にアイコンがセットされない問題を修正しました。
  • プラグイン「AWS_S3」でシステム設定を利用するを選択していない時、設定が取得できず同期に失敗する問題を修正しました。
  • プラグイン「AWS_S3」でシステムスコープのファイルを同期できない問題を修正しました。
  • 「tools/backupSQL.php」実行時に環境によって「Undefined array key 0 (2) occured」エラーが出る問題を修正しました。
  • 「HTMLImporter」で設定によって日本語・英語以外のコンテンツが文字化けするケースを修正しました。
  • 「mt:entries」などのオブジェクトをループするブロックタグでリレーション型のカラムの「NOT」指定をしている時、その関連付けされたオブジェクトが 0件の時、ループが出力されない問題を修正しました。
  • プラグイン「AppProperties」で設定した環境変数「file_perms」の設定が反映されない問題を修正しました。
  • テーマの管理画面で翻訳漏れがあったのを修正しました。
  • テーマを GitHubで管理している時、pullしたテーマの翻訳ファイルが適用されない問題を修正しました。
  • プラグイン「Theme_GitHub」でテーマ管理画面からテーマフォルダを開けない問題を修正しました。

version 2.72

  • リッチテキストエディタ「TinyMCE」のバージョン6に対応しました。環境変数「tinymce_version」に「6」を指定すると利用できるようになります。
  • プラグイン「TinyMCE」に表に関する複数の設定を追加しました。セルのドラッグの許可、border属性値、均等幅スタイルの適用などが設定できます。
  • プラグイン「TinyMCE」にプラグイン設定「ベースURL」を追加しました。
  • プラグイン「TinyMCE」にカスタムメニューバーボタン「pt-dl」を追加しました。説明(定義)リストの挿入と編集ができるようになります。
  • モデルの編集画面から、スキーマのドキュメントを CSVでエクスポートできるようになりました。
  • 環境変数「dynamic_ignore_scope」を追加しました。ダイナミック・パブリッシングで pt-view.phpの workspace_idを考慮せずにルート相対パスから URLを解決します。
  • グローバルモディファイア「nowrap」を追加しました。改行を空白文字に置換します。属性値に2を指定すると改行を削除します。
  • モデルの設定変更時、数値型/真偽値形のカラムを「NOT NULL」指定した時、値がNULLのカラム値を「0」にセットするようにしました。
  • 環境変数「compile_check」が falseの時、ビューの編集画面にインクルードモジュールのへのリンクが正しく表示されるようにしました。
  • 環境変数「compile_check」の初期値を trueから数値「2」に変更しました。「1」指定の時従来と同様の振る舞いとなり、「0」を指定するとこれまでの falseと同様になり、「2」を指定するとビューの表示前のチェックをスキップします。
  • プラグイン「SearchEstraier」にプラグイン設定画面から検索インデックスの状態を確認する機能を追加しました。
  • クラス「template」にメソッド「map」を追加しました。関連づいている URLMappingオブジェクトを返します。
  • プラグイン「FileUploader」にプラグイン設定「アップロード・パス」を追加しました。
  • PADOBaseModelに「__」から始まるコールバックを登録することで、オブジェクトのカスタムメソッドを登録できるようになりました。
  • コンパイルチェック結果の開始タグのない閉じタグの行数を表示できるようになりました。
  • PTUtil::yaml_parse、PTUtil::yaml_dumpを追加しました。
  • プラグイン「HTMLImporter」の取り込み設定を YAML形式のファイルにエクスポートできるようになしました。
  • プラグイン「HTMLImporter」が Digest認証をサポートしました。
  • プラグイン「HTMLImporter」に「前処理」(削除するポイント指定)を追加しました。削除する部分を他のカラムにセットすることもできます。
  • プラグイン「HTMLImporter」が「srcset」属性に指定されている画像をアセットに登録できるようになりました。
  • PTUtil::loadHTML、PTUtil::saveHTML、PTUtil::innerHTML、PTUtil::outerHTML、PTUtil::afterHTMLを追加しました。
  • PTUtil::formatLF、PTUtil::to_utf8、PTUtil::sec_to_hms を追加しました。
  • 環境変数「htmlimporter_settings_paths」を追加しました。YAMLファイルを設置して「HTMLImporter」プラグインを有効化したときに、取り込み設定をインポートします。
  • 環境変数「db_can_reconnect」を追加しました。データベース処理に失敗した時、データベースに再接続して処理をリトライします。初期値は「true」です。オブジェクトの保存失敗時にトランザクションをロールバックしたいケースでは「false」を指定してください。
  • 環境変数「auto_upgrade_schemes(スキーマアップグレードをスケジュールタスクで自動実行する)」「auto_upgrade_backup(スケジュールタスクでのスキーマアップグレード前に DBのバックアップを行う)」「auto_upgrade_plugins(プラグインアップグレードをスケジュールタスクで自動実行する)」を追加しました。バックアップについては適切に設定されている必要があります。
  • 環境変数「disallow_pwd_login」を追加しました。login, start_recover, recover_passwordメソッドに対してエラーを返します。
  • 環境変数「compile_cols」を追加しました。モデル名をキー、カラム名を値に追加することで保存時にテンプレート・タグのコンパイルチェックを追加することができます。
  • PTUtil::asset_from_fileメソッドを追加しました。ファイルパス、ディレクトリ、スコープの IDを引数に渡してアセットを登録します。
  • ログイン画面にテンプレート変数を指定できるようになりました。add_login_action_bar(「ログイン」ボタンの並びに追加するデータ)、alternative_login_screen(disallow_pwd_login指定のある時に表示するデータ)の2つです。
  • クラス「PADO」の「count_group_by」メソッドの第4引数にプレースホルダの配列を指定できるようになりました。
  • ブロックタグ「mt:countgroupby」に join属性(連結するモデル、モデルのカラム、連結先のカラム、フィルタ対象のカラム、フィルタ条件の配列)を指定できるようになりました。

改善された機能

  • プラグイン「HTMLImporter」でアセットを取り込む時「href」属性値に「#」が付いている時も正しく取り込めるようになりました。
  • 日付を処理するいくつかのメソッドで、「0日」を「1日」に設定するようにしました。
  • 「tools/orphanRecords.php」で、バイナリカラムを外部ファイル化しているときに実ファイルが存在しないのにカラムに値が含まれるとき、カラムを空にする処理を追加しました。
  • プラグイン「Minifier」で JavaScriptの圧縮に JShrinkを利用するようになりました。従来との互換性を保つときには環境変数「minifier_use_jshrink」を「false」としてください。初期値は「true」です。
  • 再構築のポップアップウィンドウに、URLマップに対応するビューのステータスがすべて無効なモデルを表示しないようにしました。 -「relation」テーブルの load時に関連オブジェクトを JOINして「status」「rev_type」を指定した読み込みができるようになりました。これによりリビジョンや下書きのオブジェクトの多いオブジェクトをループタグで取得する速度が向上しました。
  • gif形式の画像について、exif情報に関する処理をスキップするようにしました。
  • 一覧画面の作成者(created_by)、更新者(modified_by)がユーザーのログインIDで表示されるものについて、ログインIDから表示名に変更しました。
  • プラグイン「Abs2Rel」で動的生成を無効に設定している時、Formへのポストや検索など、静的URLに対する動的リクエストが置換対象にならないようにしました。
  • 「設問タイプ」「設問」「フィールド型」「フィールド」及び設定画面の保存時にテンプレート・タグのコンパイルチェックを行うようにしました。
  • 一覧画面からのアクション適用後の再構築単位を少なくしました(規定値の半分)。
  • 一覧画面からのアクション適用後の再構築で、最後のリクエスト時に実行される再構築トリガーをバックグラウンドで実行するようにしました。
  • 一覧画面からのアクション適用後の再構築時に、「max_execution_time」を環境変数「max_exec_time」の指定値に延長するようにしました。
  • debug_backtraceメソッドに 3(DEBUG_BACKTRACE_DUMP)を指定した時、コマンドラインからの実行でないとき preタグを出力するようにしました。
  • ビューの編集画面を開く時のコンパイルチェックで URLマップからコンテキストをセットするようにしました。
  • 「cache_driver」が「File」以外の時、システム標準のロケールをファイルキャッシュとして扱うように変更しました。
  • モデル「ビュー」「URLマップ」のデフォルトリストカラムを設定しました。
  • ファンクションタグ「mt:var」に opモディファイアを指定して valueモディファイアを省略した時の結果を PowerCMSと同様になるようにしました(PAML4のみ)。
  • 階層型のリレーション指定しているとき、リレーション元の作成・編集画面から階層を編集した後に適用する際のテンプレートをプラグインでカスタマイズ可能にしました。
  • 一覧画面のカラム「表示順」のセルの幅を小さくしました。
  • 階層付きモデルの階層の管理画面の「変更を保存」ボタンを下部に固定できるようにしました。
  • クラス「PADO」を stdClassを継承したクラスに変更しました。
  • プラグイン「DocumentSearch」のドキュメントを更新しました。Xpdfは非推奨となりました。popplerの pdftotextコマンドをインストールしてそれを利用するようにしてください。

修正・変更された機能

  • PHP8.2でスケジュールタスク実行時に「Creation of dynamic property PTWorker::$delayed_dependencies is deprecated」エラーが出る問題を修正しました。
  • プラグイン「SearchEstraier」でタイトルや本文を Xpathや CSSから取得するように設定した時「Attempt to read property "length" on bool (2) occured」が出るケースを修正しました。
  • アップロード済みのアセットを違うファイル名にリネームまたは差し替えた後、同じパスのアセットをアップロードした時にファイル名に連番が付く問題を修正しました。
  • 「mt:archivetitle」を含むビューの編集画面を開いた時に「preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated」エラーが出るのを修正しました。
  • プレビュー対象のオブジェクトが 1件もない時、ビューのコンテキストでプレビューが実行されるケースを修正しました。
  • 環境変数「validate_url」が trueの時に別スコープのマルチバイトファイル名を含む URLが表示されないことがある問題を修正しました。
  • 一度送信したワークフローのメッセージが残り続けて、同一オブジェクトの複数ワークフロー実行時に複数回送信される問題を修正しました。
  • プラグイン「DocumentSearch」でタイトル以外のメタデータがタイトルにセットされる問題を修正しました。filters/estfxpdftohtml2 を利用している場合は /usr/local/share/hyperestraier/filter/estfxpdftohtml2 を差し替えてください。
  • システムの設定画面とスペースの設定画面の一部のタイムゾーンの表記が間違っていたのを修正しました。
  • コンパイルチェックの結果のエラーの行数が 1行ずれていたのを修正しました。
  • ログインした状態でプラグイン「ExternalPreview」によるプレビュー時の不具合を修正しました。
  • オブジェクトの編集画面でテキストエリアの先頭の改行が失われる問題を修正しました。
  • フレーズの翻訳で第二引数を省略した時に落ちるケースを修正しました。
  • オブジェクトの作成・編集画面でフィールドを読み込む時に「order(表示順)」が無視されていたのを考慮するようにしました。
  • PHP8.1以降で PTTags / PTListActionsクラスで「preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in」が出る問題を修正しました。
  • プラグイン「TinyMCE」が有効な時、JavaScriptエラーになるケースの対策をしました。
  • ワークフローの設定が直列の時、直前のユーザーへの差し戻しができない問題を修正しました。
  • PADO_DB_BLOB2FILEを指定しているとき、すでに削除されたバイナリカラムにデータがあると誤判別されて、編集画面に「ビュー」「ダウンロード」ボタンが出るケースを修正しました。
  • プラグイン「HTMLImporter」で Undefined variable $origURL, Undefined variable $tagName がエラーーログに出力されるケースを修正しました。
  • 画面に非表示になっているフィールドがある時、プラグイン「BannedWords」がエラーとなりオブジェクトの保存ができない問題を修正しました。
  • 環境変数「keep_published_on」指定のあるとき、オブジェクトの Dateタグに format属性を指定すると正しい日付が取得できない問題を修正しました。
  • 階層付きモデルのインポート時に親オブジェクトをラベルで指定している時、別のスコープのオブジェクトに紐づいてしまうケースを修正しました。
  • 設問タイプ「テキストエリア」で行の高さが反映されない問題を修正しました。
  • 「ファイル」を単一選択のリレーションで関連づけたモデルの作成・編集画面で選択時にアイコンがセットされない問題を修正しました。
  • 「tools/backupSQL.php」実行時に環境によって「Undefined array key 0 (2) occured」エラーが出る問題を修正しました。
  • 「HTMLImporter」で設定によって日本語・英語以外のコンテンツが文字化けするケースを修正しました。
  • 「mt:entries」などのオブジェクトをループするブロックタグでリレーション型のカラムの「NOT」指定をしている時、その関連付けされたオブジェクトが 0件の時、ループが出力されない問題を修正しました。
  • プラグイン「AppProperties」で設定した環境変数「file_perms」の設定が反映されない問題を修正しました。
  • テーマの管理画面で翻訳漏れがあったのを修正しました。
カテゴリ   :   リリースノート
最終更新 : 2024-04-19 10:42