MT > プレビュー用テンプレートの切り替え

「MT/プレビュー用テンプレートの切り替え」の編集履歴(バックアップ)一覧はこちら

MT/プレビュー用テンプレートの切り替え」(2013/03/07 (木) 15:13:34) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

[[トップページ]] > [[MT]] > プレビュー用テンプレートの切り替え  ブログの個別記事テンプレートが、PC用とスマフォ用で2つある場合など、複数のプレビューが必要な場合 への対応方法です。  スカイアーク社さんのAltTemplatePreviewプラグインを使います。 http://www.skyarc.co.jp/engineerblog/entry/alttemplatepreview.html  これを利用すると、エントリーの編集画面で下の方に #image(WS000002.JPG,center) といったセレクトボックスが表示されるので、これでプレビューしたいテンプレートを選ぶことが出来ます。 非常に便利!です。  ただ、このプラグイン、そのままでは自分の環境(MT5.14 + Perl 5.10.0)ではうまく動作しませんでした。 以下のような修正をしたところ、うまく動作しました。 116行目 $_->is_preferred ($_->template_id == $preview_alt_tmpl); を $_->is_preferred( ($_->template_id == $preview_alt_tmpl)? 1:0 ); に変更 128行目 $_->is_preferred ($_->id == $orig_tmpl_map_id); を $_->is_preferred( ($_->id == $orig_tmpl_map_id) ? 1:0 ); に変更  これはperlのバージョンの問題なのでしょうか? ただ括弧をつけるだけでも大丈夫な気がしますが、、。よくわかりません。  また、このプラグインは、一時的にパーマネントリンク対象のテンプレートを切り替えているので、再構築処理とプレビューでのテンプレート切り替え処理が重なると、再構築された記事のパーマネントリンクが別のテンプレートのものになってしまう危険性があるような、、、気がします。  しかしながら、データベースをInnoDBにして、トランザクションをかければ、安全にプレビューを行うことが出来るようになるはず、です。トランザクションをかけるには、AltTemplatePreview.plファイルの # Change temporally の前に MT::Object->begin_work; を追加  最後の $html; の前に MT::Object->commit; を追加すれば出来ます。(もちろん、テーブルのスキーマがMyISAMでは出来ないので注意。InnoDBでないとダメです。最新のMySQL 5.5などはデフォルトスキーマがInnoDBなので、MTが作り出すテーブルは最初からInnoDBなので大丈夫です)  上記の修正を全部加えたものを用意したいのですが、このプラグインはスカイアーク社さんの著作権があり改修版の二次配布は出来ないみたいなので、差分ファイルのみあげておきます。[[差分ファイル>http://www19.atwiki.jp/knight_9999?cmd=upload&act=open&pageid=27&file=patch_file.patch]]  使い方はオリジナルのAltTemplatePreview.plファイルと、パッチファイルpatch_file.patchを同じ ディレクトリにおいておいて、 patch AltTemplatePreview.pl < patch_file.patch とすればOKです。 ※ちなみに、ですが、PowerCMSでは独自のプレビュー処理がオーバーライドしているので、このプラグインは動作しません。(PowerCMS 3.13ではそうでした) とはいえ、PowerCMSの中のExtFieldsプラグインだけ無効にしておけば、正しく動作するようです。
[[トップページ]] > [[MT]] > プレビュー用テンプレートの切り替え  ブログの個別記事テンプレートが、PC用とスマフォ用で2つある場合など、複数のプレビューが必要な場合 への対応方法です。  スカイアーク社さんのAltTemplatePreviewプラグインを使います。 http://www.skyarc.co.jp/engineerblog/entry/alttemplatepreview.html  これを利用すると、エントリーの編集画面で下の方に #image(WS000002.JPG,center) といったセレクトボックスが表示されるので、これでプレビューしたいテンプレートを選ぶことが出来ます。 非常に便利!です。  ただ、このプラグイン、そのままでは自分の環境(MT5.14 + Perl 5.10.0)ではうまく動作しませんでした。 以下のような修正をしたところ、うまく動作しました。 116行目 $_->is_preferred ($_->template_id == $preview_alt_tmpl); を $_->is_preferred( ($_->template_id == $preview_alt_tmpl)? 1:0 ); に変更 128行目 $_->is_preferred ($_->id == $orig_tmpl_map_id); を $_->is_preferred( ($_->id == $orig_tmpl_map_id) ? 1:0 ); に変更  これはperlのバージョンの問題なのでしょうか? ただ括弧をつけるだけでも大丈夫な気がしますが、、。よくわかりません。  また、このプラグインは、一時的にパーマネントリンク対象のテンプレートを切り替えているので、再構築処理とプレビューでのテンプレート切り替え処理が重なると、再構築された記事のパーマネントリンクが別のテンプレートのものになってしまう危険性があるような、、、気がします。  しかしながら、データベースをInnoDBにして、トランザクションをかければ、安全にプレビューを行うことが出来るようになるはず、です。トランザクションをかけるには、AltTemplatePreview.plファイルの # Change temporally の前に MT::Object->begin_work; を追加  最後の $html; の前に MT::Object->commit; を追加すれば出来ます。(もちろん、テーブルのスキーマがMyISAMでは出来ないので注意。InnoDBでないとダメです。最新のMySQL 5.5などはデフォルトスキーマがInnoDBなので、MTが作り出すテーブルは最初からInnoDBなので大丈夫です)  上記の修正を全部加えたものを用意したいのですが、このプラグインはスカイアーク社さんの著作権があり改修版の二次配布は出来ないみたいなので、差分ファイルのみあげておきます。[[差分ファイル>http://www19.atwiki.jp/knight_9999?cmd=upload&act=open&pageid=27&file=patch_file.patch]]  使い方はオリジナルのAltTemplatePreview.plファイルと、パッチファイルpatch_file.patchを同じ ディレクトリにおいておいて、 patch AltTemplatePreview.pl < patch_file.patch とすればOKです。 ※ちなみに、ですが、PowerCMSでは独自のプレビュー処理がオーバーライドしているので、このプラグインは動作しません。(PowerCMS 3.13ではそうでした) とはいえ、PowerCMSの中のExtFieldsプラグインだけ無効にしておけば、正しく動作するようです。 2013/3/7

表示オプション

横に並べて表示:
変化行の前後のみ表示: