複数サイトが存在するとき <MTInclude identifier="styles"> を利用するとテンプレート編集画面のインクルードテンプレートが他サイトからインクルードしてきたかのような表示になる
Description
Checklists
Attachments
- 21 Aug 2023, 12:52 AM
relates to
Activity
Kenichi IshigakiAugust 21, 2023 at 2:44 AM
@Reiko Sato ありがとうございます。マージしました。表側にゴミが出るのはテストのためということで無視してください。
Reiko SatoAugust 21, 2023 at 12:52 AM
@Kenichi Ishigaki <head>
タグ直下に<styles><mt:Include identifier="styles" / blog_id="(別サイトのID)"></styles>
を埋め込みました。
添付画像のように、表側にタグの中身が出てきてしまっているのですが、内容自体は問題ないように見えます。(添付画像はblog_id="(別サイトのID)"
のもの)
Kenichi IshigakiAugust 18, 2023 at 7:44 AM
@Keita Sugama ありがとうございます。
@Reiko Sato https://github.com/movabletype/movabletype/pull/2731 で修正しました。以下の手順でご確認おねがいします。
適当なサイトを複数、それぞれ異なるテーマで作成する(クラシックウェブサイトと eiger など)
それぞれメインページのテンプレートを編集して、
<styles><mt:Include identifier="styles"></styles>
というタグを<head>
タグの下に埋め込むそれぞれのメインページのテンプレートを保存と再構築する
再構築されたメインページを開き、ブラウザでHTMLのソースを見て、埋め込んだタグの内容がそのサイトの「スタイルシート」テンプレートの内容に置き換わっている(別のサイトの「スタイルシート」テンプレートの中身が埋め込まれていない)ことを確認する
メインページのテンプレート編集画面の右側にあるインクルードテンプレートに styles という項目があること、また、その項目の横に別サイトの名前が表示されていないことを確認する
メインページのテンプレートの編集画面に戻り、
<mt:Include identifier="styles">
タグの中にblog_id="(別サイトのID)"
を追加する同じようにメインページのテンプレートを保存・再構築後、ブラウザで再構築したメインページの HTML ソースを見て、埋め込んだタグの内容が指定したサイトIDのスタイルシートテンプレートの内容に置き換わっていることを確認する
メインページのテンプレート編集画面の右側のインクルードテンプレートの欄の styles の横に指定したサイトの名前が表示されるようになったことを確認する
Keita SugamaAugust 18, 2023 at 4:29 AM
@Kenichi Ishigaki
確認しました。良さそうです。
Kenichi IshigakiAugust 18, 2023 at 4:16 AM
@Keita Sugama https://github.com/movabletype/movabletype/pull/2731 で対応しました。念のためレビューおねがいします。
https://movabletype.atlassian.net/browse/FEEDBACK-2456 より。
MTInclude を identifier 付きで呼び出すと、テンプレート自体は https://github.com/movabletype/movabletype/blob/ac149ec4bb24c47ee928d75e6dfcdf4932354c0f/lib/MT/Template/ContextHandlers.pm#L4657-L4667 にあるように blog_id を尊重した形で呼び出されるが、インクルードテンプレートウィジェットの方では https://github.com/movabletype/movabletype/blob/ac149ec4bb24c47ee928d75e6dfcdf4932354c0f/lib/MT/CMS/Template.pm#L255-L262 のように identifier 指定時に blog_id を無視してしまっているのが原因。