Movable Type 7 r.5404 リリースノート(パッケージ版)
Movable Type 7 r.5404 パッケージ版のリリースノートです。このリリースには、クラウド版の r.5404 (r.5404-01) と r.5403 の機能改善、不具合修正の他、Movable Type 8 のリリースに向けた変更や改善が含まれています。
新機能・改善された機能
内部処理の最適化
内部処理の一部について最適化を行いました。再構築が 10% 程度高速になっています。変更の詳細は、Movable Type 8 に向けた新機能、改善の項目を参照してください
検索/置換
検索/置換画面で置換するときに明示的に更新メモを入力できるようにしました (MTC-27696)
mt-search.cgi や mt-cdsearch.cgi、Data API の検索で日付をソートキーに指定したときに同一日時の順番が一定になるようにしました (MTC-28689)
Data API
Data API のバージョン 6 を新設しました。バージョン 5 からの変更点は、Stats の Limit パラメータのデフォルト値が 10 から 50 になったことです (MTC-28721)
Data API 内部の正常系のエラー処理を改善しました (MTC-28707)
ライブラリの追加、変更
TinyMCE5 プラグインに同梱している TinyMCE のライブラリをバージョン 5.10.7 に更新しました (MTC-28691)
TinyMCE6 プラグインに同梱している TinyMCE のライブラリをバージョン 6.3.1 に更新しました (MTC-28691)
Email::Date::Format をバージョン 1.005 にしました (MTC-28708)
jQuery Migrate を v3.4.1 にしました (MTC-28808)
Image::ExifTool モジュールをバージョン 12.50 にしました (MTC-28703)
画像
アセットの対象としてサポートする拡張子に .webp を追加しました (MTC-28705)
- webp ファイルの Exif 情報を他の画像と同様に削除できるようにしました (MTC-28703)
その他
IDが重複するプラグインが複数存在するときでも正常に起動するようにしました。すべてのプラグインの読み込みが完了してからプラグインの初期化処理を行うように変更しました (MTC-28633)
MT::Stats::readied_provider
から呼び出すsnipet
メソッドをsnippet
に変更しました。GoogleAnalytics プラグインのsnipet
メソッドを利用するとログに警告を出力するようにしました (MTC-28748)カスタムフィールドのテンプレートタグ名が重複している場合のメッセージに含まれている「ブログ」の文言を「サイト」に変更しました (SUPPORT-205)
AMI 版
- POSIX::AtFork モジュールのバージョン 0.04 を追加しました (CLOUD-270)
r5403で新しく追加・改善された機能
[MTC-26373] スケジュールタスク(run-periodic-tasks)にコールバックを追加しました
- pre_run_task 各タスクの開始時に呼ばれます
- post_run_task 各タスクの終了時に呼ばれます
- PeriodicTaskEnd run-periodic-tasks 終了時に呼ばれます
[MTC-25504] ファイルのアップロード画面でファイル名の横にアップロードされたファイルのURLをリンクとするパーマリンクアイコン追加しました
[MTC-27017] システムメニューでしか作成できなかったサイト・子サイトのカスタムフィールドを、サイトメニューからも作れるようにしました
[MTC-27088] [システム] > [設定] > [Webサービス] の「Data API の設定」に「DataAPI を利用しない」の設定を追加しました。有効にすると、DataAPI にアクセスしたとき
404 Not Found
になります。また「システム全般での Data API の利用を許可する。」という文言を「システム領域の設定やデータを Data API の出力結果に含める」に変更しました[MTC-27238] 「記事の共有」で送信されるメールの件名を、送信時に設定できるようにしました
[MTC-27517] 管理画面のコンテンツデータ一覧でソート順を保存するようにしました
[MTC-27518] 管理画面のコンテンツデータ一覧で更新日のカラムをデフォルトで表示するようにしました
[MTC-28407] 環境変数 TrimFilePath を追加しました。1を設定すると、MTFileTemplate タグの出力や各種アーカイブのパスを出力するときに不適切な空白を除去するようにしました
[MTC-28590] ADOdb を 5.22.4 に更新しました
[MTC-28591] Smarty を 4.2.1 に更新しました
[MTC-28620] extlib にバンドルしているモジュールを更新しました
- AutoLoader 5.74
- CGI::Fast 2.16
- Digest::SHA::PurePerl 6.03
- Email::Date::Format 1.006
- File::Temp 0.2311
- HTTP::Message 6.44
- Image::ExifTool 12.42
- JSON 4.10
- JSON::PP 4.12
- libwww-perl 6.67
- Locale::Maketext 1.32
- Math::BigInt 1.999837
- MIME::Charset 1.013001
- URI::Fetch 0.15
- XML::XPath 1.48
- version 0.9929
[MTC-28631] SQLite バージョン2 をサポートの対象外にしました。環境変数
UseSQLite2
を削除しました[MTC-28643] 「システム管理者」のシステム権限または「すべてのコンテンツデータの管理」のシステム権限を持つユーザ以外はシステムのコンテンツデータ検索/置換機能を利用できないようにしました
[MTC-28675] テンプレート編集画面でのコードハイライトの切り替えと、タグ編集画面でのタグ名の保存処理を非同期に行うようにしました
[MTC-28335] 環境変数
BuilderModule
を追加し、MT::Builder モジュールを変更できるようにしました[MTC-28336] MT::Builder のコンパイル部分を高速化した新しいモジュール MT::Builder::Fast を追加しました
[MTC-28320] MT::Util::Encode モジュールを新設しエンコーディング関連の処理をまとめました
[MTC-28640] MT::Blog::archive_url の内部で不必要なデータベースからの読み込みを行わないようにしました
[MTC-28641] MT::Util::format_ts の内部で実際に使われている記号の値のみ計算するようにしました
[MTC-28642] MT::Template モジュールと MT::Template::Node モジュールの内部で不必要なメソッド呼び出しや条件分岐を行わないようにしました
[MTC-28636] metaを持たないオブジェクトに対して MT::Meta::Proxy->bulk_load_meta_objects() を実行したときに不必要なデータベースからの読み込みを行わないようにしました
[MTC-26921] mt-check.cgi や mt-wizard.cgi で行っていたシステムチェックの機能を MT::Util::SystemCheck モジュールと MT::Util::Dependency モジュールに集約しました。また、システム情報画面で表示する情報の取得を mt-check.cgi 経由ではなく、内部的に処理するように変更しました。システム情報でインストール済みモジュールと未インストールモジュールをわけて表示するようにしました
修正された問題
Data API
Data API v5 で サイトを更新するときに発生する listOfIndex のエラーを修正しました (MTC-28704)
Data API v5 で relatedAssets パラメータに 1 を指定してサイトに紐付くアセットを取得したとき、親画像を持つ画像の parent フィールドが整数となっていたのを、従来の { "id": "1" } といった形式で返すように修正しました (MTC-28711)
MT::DataAPI::Callback::Log 及び MT::DataAPI::Callback::Tag の
can_save
の引数を修正しました (MTC-28724)Data API で認証なしに未承認のコメントを取得できないように修正しました (MTC-28733)
Data API でコンテンツフィールドを削除したあとにコンテンツタイプのフィールド情報が更新されない不具合を修正しました (MTC-28782)
MT タグ
MTContentCalendar タグで
date_field
モディファイアの指定が効かない問題を修正しました (MTC-27032)MTEntryCategories タグのソート順がスタティックとプレビュー、ダイナミックで異なっていました。スタティックに合わせてラベル順でソートするようにしました (MTC-28718)
管理画面
記事、ウェブページ、コンテンツデータの一覧画面で、下書きの記事、ウェブページ、コンテンツデータに公開日が表示されている問題を修正しました (MTC-27799)
コンテンツタイプの編集画面でデータを未保存の状態でコンテンツフィールドの並び替えをした場合、データの保存時にその並び順が保存されない問題を修正しました (MTC-28344)
記事作成画面で入力項目の並べ替えが保存されない場合がある問題を修正しました (MTC-28684)
複数の管理画面のテンプレートに
<mt:if name="use_jquery_json">
が<mt:if name-"use_jquery_json">
と誤って記述されているのを修正しました (MTC-28706)記事のインポート完了画面で以前のエラー内容が表示されてしまう問題を修正しました (MTC-28714)
環境変数 PreviewInNewWindow が 1 のとき、コンテンツデータの編集画面でプレビューすると、自動保存が正常に動作しなくなる問題を修正しました (MTC-28803)
記事作成/編集画面で、リッチテキストモードで本文に入力した style タグが削除される問題を修正しました (MTC-28832)
検索結果などにデフォルトテンプレートを利用していた場合に r.5401 以降へのアップデートで空のシステムテンプレートが追加され、表示ができなくなってしまう問題を修正しました (MTC-28783)
デフォルトの検索結果のテンプレートの内部に使われている「ブログ」を「サイト」に変更しました (MTC-28785)
検索
mt-cdsearch.cgi もしくは Data API でコンテンツデータを検索したとき、同一データが重複する場合がある問題を修正しました (MTC-28540)
検索/置換画面の日付範囲指定で未使用となっている古いパラメータの実装を削除しました (MTC-28550)
検索/置換処理の中で、不要となった複数のイテレータの処理結果を日付順にマージする処理を削除し整理しました (MTC-28804)
インストール・アップグレード
- モジュール不足などの理由で読み込みが失敗する .pl 形式のプラグインが存在すると、アップグレードができない問題を修正しました (MTC-28719)
プレビュー
コンテンツタイプアーカイブテンプレートで MTArchiveTitle タグを使用するとプレビュー時にエラーが発生する問題を修正しました (SUPPORT-231)
環境変数 PreviewInNewWindow が 0 のときにブロックエディタを含むコンテンツデータのプレビュー画面から保存するとデータが破損する問題を修正しました (SUPPORT-236)
公開権限のないユーザーがプレビューしたとき MTEntrybasename タグの値がプレビューファイル名になってしまう問題を修正しました (SUPPORT-225)
その他
コンテンツデータ編集画面のチェックボックスで選択できる最小値/最大値表示の右括弧がないので追加しました (MTC-28713)
テンプレートコンテキストの中で誤ったキーを設定している箇所を修正しました (MTC-28757)
サイトを保存するときの
remote_auth_token
の空白除去処理を削除しました (MTC-28773)環境変数 AssetFileTypes を指定しているときに未定義値の警告が出ることがある問題を修正しました (MTC-28796)
システム管理者がサイトの [ツール] - [検索/置換] 画面で検索したとき、管理権限をもたない子サイトが結果に出てこない問題を修正しました (MTC-28813)
Google Analytics V4プラグインの OAuth2 で refresh_token が発行されない場合がある問題を修正しました (MTC-28815)
プラグインなどのテンプレートに <__trans phrase="_external_link_target"> の記述があると、エラーとなる問題を修正しました (MTC-28810)
コンテンツタイプの数が多いときにロールの新規作成画面が開けなくなる場合がある問題を解決しました (CLOUD-246)
記事内の画像と記事アセットを削除したあと、画像を挿入し更新すると「不正な要求です」とエラーが発生する問題を修正しました (SUPPORT-212)
r5403で修正された問題
[MTC-25996] すでに存在しているコンテンツタイプに表示オプションを「既定値」と設定したコンテンツフィールドを追加したとき、一覧表示にコンテンツデータが表示されない不具合を修正しました
[MTC-26073] Yearly アーカイブタイプ及び ContentType-Yearly アーカイブタイプから廃止された template_params である "module_yearly_archives" を削除しました
[MTC-26074] ContentType-Category-Daily、ContentType-Category-Weekly、ContentType-Category-Monthly、ContentType-Category-Yearly の各アーカイブタイプから存在しない template_params である "content_type_archive_listing" を削除しました
[MTC-26075] Page アーカイブタイプから不必要な template_params である "entry_archive" を削除しました
[MTC-26214] MTCategorySets タグ内に MTCategories タグを記述してもカテゴリ一覧が出力できない不具合を修正しました
[MTC-26396] コンテンツタイプ別アーカイブマッピングに MTIfCategory タグを記述した場合、再構築時に正常に動作しない不具合を修正しました
[MTC-26474] 記事およびコンテンツデータをプレビューしたとき、無用なディレクトリが作成され削除されない場合がある不具合を修正しました
[MTC-26903] MTContents タグで sort_by の値としてコンテンツフィールドを指定すると、ダイナミックパブリッシング時に動作しない不具合を修正しました
[MTC-26959] アーカイブマッピングにMTタグを指定しテキストフォーマットにTextileを選択すると管理画面から応答がなくなる場合がある不具合を修正しました
[MTC-27228] プラグイン設定画面でプラグインを有効にした状態と無効にした状態で表示名が異なる不具合を修正しました
[MTC-27380] 優先アーカイブタイプに記事以外を指定すると記事編集画面のタイトル下や MTEntryPermalink タグでパーマリンクが出力されない不具合を修正しました
[MTC-27495] カテゴリが存在しない状態でテンプレートのカテゴリ別記事リストをプレビューしたときにエラーとなる場合がある不具合を修正しました
[MTC-27528] Windows環境で、日本語を含むファイル名でインデックステンプレートを作成すると、テンプレート編集画面のショートカットの「公開されたテンプレートを確認」や、インデックステンプレート一覧の「公開されたテンプレートを確認」アイコンが表示されない不具合を修正しました
[MTC-28487] ユーザーにシステム管理者権限があるとき、そのユーザー以外が作成したサイトで記事編集画面で表示オプションの設定が保存されない不具合を修正しました
[MTC-28533] ロールの編集画面で、ショートカットの関連付けのカウントが、グループが関連付け対象の場合に正常に表示されない不具合を修正しました
[MTC-28617] IIS環境で動作しているとき MT::Util::Log::Stderr への出力を無効にしました。標準エラーへの出力によって発生するエラーを回避します
[MTC-28618] Data API のメールアドレスとユーザー名を用いたパスワードリセットで、メールで送信されるリセット用の URL を正しく修正しました
[MTC-28627] GoogleAnalyticsV4 プラグインを無効にするとサイトダッシュボード移動時にエラーとなる不具合を修正しました
[MTC-28629] 管理画面内のリンクタグの target属性の値を、言語設定によらず
\_blank
にしました[MTC-28630] テーマエクスポート時のテンプレートセット選択ダイアログでインデックステンプレートの公開ファイルへのリンクアイコンが正しく表示されるようにしました
[MTC-28635] アセット一覧および検索置換画面でアセットを検索したときに実ファイルが存在しないと表示が崩れてしまう不具合を修正しました
[MTC-28639] DataAPI にて OpenAPI JSON スキーマ出力時に Description の
entry\_status
にUnpublish
を追加しました。また、ContentData のcontent\_status
を追加しました Data APIのドキュメントにも修正を反映しています[MTC-28656] ログイン画面のエラーメッセージの「ブログ」表記を「サイト」に修正しました
[MTC-28659] 複数のコンテンツタイプが存在している場合に MTArchivePrevious タグ及び MTArchiveNext タグでコンテンツタイプリストアーカイブが正しく出力されない不具合を修正しました
[MTC-28660] スタティックパブリッシングで MTCategoryPrevious タグ及び MTCategoryNext タグのカテゴリに紐付く記事、コンテンツデータの件数判定が間違っている不具合を修正しました
[MTC-28661] スタティックパブリッシングで MTCategoryPrevious タグ及び MTCategoryNext タグの記事内・コンテンツ内の判定条件が不足していた不具合を修正しました
[MTC-28662] スタティックパブリッシングで MTCategoryPrevious タグ及び MTCategoryNext タグが カテゴリ系のアーカイブにおいてもそのカテゴリを無視していた不具合を修正しました
[MTC-28663] mt-check.cgi でモジュールのバージョンを取得する際に JSON 関係のモジュールが同じ関数を再定義しているという警告が出ていた不具合を修正しました
[MTC-28665] サイトを削除するときに紐付くログの一部が削除されない不具合を修正しました
[MTC-28685] PSGI を利用していて PSGIStreaming が有効かつカテゴリ一覧画面でセッションが無効になったときに、再ログインダイアログが正常に表示されないことがある不具合を修正しました。
[MTC-28687] コメントプラグインのエラーメッセージの日本語訳を修正しました
[SUPPORT-12] コンテンツタイプリストアーカイブテンプレートでカテゴリ別アーカイブを出力する際、MTContents タグで limit モディファイアが動作しない不具合を修正しました
[SUPPORT-193] コンテンツデータ作成画面で保存ボタンを連打すると保存が複数回実行され同じデータが複数作成されてしまう不具合を修正しました
[SUPPORT-200] コンテンツデータ編集画面のタイトル下に正しいパーマリンクが表示されない場合がある不具合を修正しました
[MTC-28632] 記事編集画面でのコメント許可、システムWebサービス設定画面で URL から blog_id=0 を手動で削ったときに、Use of uninitialized value 警告が発生することがあった不具合を修正しました
[CLOUD-229] データベースが空の状態で PSGI サーバーで Movable Type を起動したときに発生していたデータベース関連のエラー出力を抑制しました
Movable Type 8 に向けた新機能、改善
Bootstrap v5.x
- Bootstrap v5.x (v5.1.3) に対応した管理画面のテーマを実装しました。環境変数 AdminThemeId に bootstrap5 を指定することで従来のテーマから切り替えることができます。この機能は Movable Type 8 に向けた確認や開発、検証のために実装されたもので、現時点では実運用での利用は推奨しません。制限事項、既知の問題も参照してください (MTC-27266)
内部処理の最適化、改善
内部処理の最適化や改善を行っています。Movable Type の動作仕様には影響しませんが、動作速度やメモリ使用量の改善、エラーや警告の発生頻度の低減などが期待されます
Data API で不要な
from_object
/to_object
を実行しないようにしました (MTC-28715)MT::Template::Tag::Misc::_hdlr_widget_manager のキャッシュの扱いを改善しました (MTC-28725)
MTLink で利用するテンプレートをキャッシュするようにしました (MTC-28735)
MT::PublishOption::get_throttle で利用されるテンプレート(マップ)をキャッシュするようにしました (MTC-28736)
is_superuser の値をキャッシュするようにしました (MTC-28742)
has_archive_type のキャッシュの仕方を改善しました (MTC-28743)
MT::Util::strip_index 内部で使われる IndexBasename の値をキャッシュするようにしました (MTC-28744)
DisableObjectCache
が有効になっている場合に発生する不具合を修正しました (MTC-28745)MTStatsSnippet タグを利用する際に繰り返し呼ばれる readied_provider の値をキャッシュするようにしました(MTC-28747)
SQL の where 句などの構成要素を可能な範囲でソートするようにしました (MTC-28749)
MT::Template::Context::set_blog_load_context 内部で子サイトの情報を繰り返し取得しているのでキャッシュするようにしました (MTC-28750)
TopLevelCategories/SubCategories タグ内部で利用するサイトに紐付く最上位カテゴリの情報をキャッシュするようにしました (MTC-28751)
随所で使われている環境変数 PublishCharset の値をキャッシュするようにしました (MTC-28752)
MT::Builder::build 内部の tag メソッドの呼び出しを減らしました (MTC-28753)
MT::Builder::Fast 内部のフィルタのソートを改善しました (MTC-28754)
MT::(Content|Weblog)Publisher::rebuild_file 内部で利用するテンプレートもキャッシュするようにしました (MTC-28755)
MT::Template::Context::set_tag_filter_context 内部で取得するタグを、タグ名とサイトID以外に制約がない場合はキャッシュするようにしました (MTC-28758)
MT::Entry の category data を MT::Request にキャッシュするように変更しました (MTC-28759)
MT::Archive の種別判定結果をオブジェクトに保存するようにしました (MTC-28765)
オブジェクトを保存・更新する際に Data::ObjectDriver の
__is_stored
を適切に更新するようにしました (MTC-28764)MTEntries タグや MTPages タグに特定の属性がついていたとき、内部で利用するカテゴリやフォルダを可能ならキャッシュするようにしました (MTC-28774)
リスティングフレームワークの表示時、ユーザーをキャッシュするようにしました (MTC-28775)
Publisher はリクエストキャッシュではなく変数に保存するようにして、リクエストごとに Publisher 初期化時に行われるアーカイブタイプの初期化や不要なリクエストキャッシュへのアクセスなどを省略できるようにしました (MTC-28776)
MTWebsiteHasBlog タグの結果をサイトオブジェクトにキャッシュするようにしました (MTC-28777)
サイトのオブジェクトを必要に応じてキャッシュするようにしました (MTC-28784)
一覧画面の内部処理でプロパティのキャッシュを改善しました (MTC-28835)
謝辞
リリースにあたり不具合の報告や機能要望をしていただいた皆様すべてに感謝します。また特に次の皆様には、個別に感謝します。
- エムロジック株式会社 田島 誠 氏 (MTC-28815)
制限事項、既知の問題
Bootstrap 5 を適用した時に .form-control[readonly] が効かない (MTC-28884)
Bootstrap 5 で各種モーダルを閉じると JavaScript エラーが発生する (MTC-28870)