2014.04.09
MTのカスタムフィールド「チェックボックス」では、1フィールドに対して1つのチェックボックスしか作れません。
「ラジオボタン」のように複数項目を用意したい場合は、「MoreCustomFields」プラグインを利用しています。
※ダウンロードリンクが切れているみたい?
こちらからは出来ます。
・・で、複数チェックボックス(checkbox Group)でチェックした項目を書き出す場合なのですが、最初の項目がチェックされていないと出力の先頭にカンマが挿入されてしまうようです。
それについて、こちらのページのコメントで壱さんが対処法を書かれていました。
http://www.h-fj.com/blog/archives/2011/05/04-180314.php
テンプレートタグに「regex_replace="/^,\s*/",""」を追加して、
<$mt:hogehoge regex_replace="/^,\s*/",""$>
とすると解決できます。
「ラジオボタン」のように複数項目を用意したい場合は、「MoreCustomFields」プラグインを利用しています。
※ダウンロードリンクが切れているみたい?
こちらからは出来ます。
・・で、複数チェックボックス(checkbox Group)でチェックした項目を書き出す場合なのですが、最初の項目がチェックされていないと出力の先頭にカンマが挿入されてしまうようです。
それについて、こちらのページのコメントで壱さんが対処法を書かれていました。
http://www.h-fj.com/blog/archives/2011/05/04-180314.php
テンプレートタグに「regex_replace="/^,\s*/",""」を追加して、
<$mt:hogehoge regex_replace="/^,\s*/",""$>
とすると解決できます。
2014.03.31
あるブログAを更新したとき、別のブログBも再構築するマルチブログ系のプラグインはたくさんありますが、記事削除をトリガーにできるものは案外見つからなかったりします。
そんな中、こちらの「RebuildAnyTemplate」プラグインがとても良い感じでした。MT5対応。
使い方は簡単で、上記の例の場合はブログAのメインページテンプレートに
<$mt:RebuildAnyTemplate archive_type="Category" template_id="10" category_id="20"$>
を仕込むだけ。
template_id は再構築したいテンプレートのID、
category_id はカテゴリーも指定したいときにカテゴリーのIDを入れます。
記事を編集・保存してメインページが再構築されると、
このタグが実行されてブログBに再構築がかかるという仕組み。
・メインページを出力する必要がある
・テンプレート単位で指定する必要がある(元々そういう用途を想定しているため)
と多少不便な点はあるものの、
基本的にどんな操作をしても再構築されるメインページがトリガーになっているため
確実性はとても高いです。
記事一覧からの公開・非公開でも、記事削除でも実行されます。
未確認ですが指定日公開でもいけるんじゃないでしょうか。
そんな中、こちらの「RebuildAnyTemplate」プラグインがとても良い感じでした。MT5対応。
使い方は簡単で、上記の例の場合はブログAのメインページテンプレートに
<$mt:RebuildAnyTemplate archive_type="Category" template_id="10" category_id="20"$>
を仕込むだけ。
template_id は再構築したいテンプレートのID、
category_id はカテゴリーも指定したいときにカテゴリーのIDを入れます。
記事を編集・保存してメインページが再構築されると、
このタグが実行されてブログBに再構築がかかるという仕組み。
・メインページを出力する必要がある
・テンプレート単位で指定する必要がある(元々そういう用途を想定しているため)
と多少不便な点はあるものの、
基本的にどんな操作をしても再構築されるメインページがトリガーになっているため
確実性はとても高いです。
記事一覧からの公開・非公開でも、記事削除でも実行されます。
未確認ですが指定日公開でもいけるんじゃないでしょうか。
2014.01.20
エントリー同士を関連付けるプラグインです。
エントリーを作成する際に関連エントリーを設定しておくと、
記事テンプレートでその一覧を扱うことができます。
少し躓いた箇所があったのでメモ。
ダウンロードはこちらのサイトから。
エントリーの関連付けを行うプラグイン(MT4専用版・その1)
■使い方
その2
その3
MT4となっていますがMT5でも使用できます。
ただしすべての動作は確認していないのでご注意。
また作者様もMT5に対応させる予定はないとのことなので、
動作する範囲で利用しましょう。
■注意点
プラグインのパーミッションを変える必要があるようです。
アップロードする際、「mt-related-entries.cgi」のパーミッションを変えておきましょう。
MTのCGIファイルと同様にすれば動くと思います。
エントリーを作成する際に関連エントリーを設定しておくと、
記事テンプレートでその一覧を扱うことができます。
少し躓いた箇所があったのでメモ。
ダウンロードはこちらのサイトから。
エントリーの関連付けを行うプラグイン(MT4専用版・その1)
■使い方
その2
その3
MT4となっていますがMT5でも使用できます。
ただしすべての動作は確認していないのでご注意。
また作者様もMT5に対応させる予定はないとのことなので、
動作する範囲で利用しましょう。
■注意点
プラグインのパーミッションを変える必要があるようです。
アップロードする際、「mt-related-entries.cgi」のパーミッションを変えておきましょう。
MTのCGIファイルと同様にすれば動くと思います。
2014.01.15
1つのブログで、複数の検索結果テンプレートを出し分ける方法。
例えばレイアウトが違う2種類のブログ記事リストがあって、
検索フォームから検索したらそれぞれのレイアウトにあった検索結果を
表示させたいときなどに便利です。
検索フォームAで検索 → 検索結果テンプレートAで表示
検索フォームBで検索 → 検索結果テンプレートBで表示
という感じ。
■代替テンプレートを作成
まずは出し分けするもう1種類の検索結果テンプレートを作成します。
MTディレクトリの中に「search_templates」フォルダがあるので、
その中にある「default.tmpl」を複製します。
ここでは「test.tmpl」というファイル名にします。
■mt-config.cgi に記述
mt-config.cgi に、このテンプレートを使うための記述をします。
一番下に次のように追記してください。
SearchAltTemplate test test.tmpl
■検索フォームにタグを追加
代替テンプレートを使用したい検索フォームに、次の1行を追加します。
<input type="hidden" name="Template" value="test" />
<form>タグの真下あたりでOKです。
これでこの検索フォームからの結果は代替テンプレートで表示されるようになります!
例えばレイアウトが違う2種類のブログ記事リストがあって、
検索フォームから検索したらそれぞれのレイアウトにあった検索結果を
表示させたいときなどに便利です。
検索フォームAで検索 → 検索結果テンプレートAで表示
検索フォームBで検索 → 検索結果テンプレートBで表示
という感じ。
■代替テンプレートを作成
まずは出し分けするもう1種類の検索結果テンプレートを作成します。
MTディレクトリの中に「search_templates」フォルダがあるので、
その中にある「default.tmpl」を複製します。
ここでは「test.tmpl」というファイル名にします。
■mt-config.cgi に記述
mt-config.cgi に、このテンプレートを使うための記述をします。
一番下に次のように追記してください。
SearchAltTemplate test test.tmpl
■検索フォームにタグを追加
代替テンプレートを使用したい検索フォームに、次の1行を追加します。
<input type="hidden" name="Template" value="test" />
<form>タグの真下あたりでOKです。
これでこの検索フォームからの結果は代替テンプレートで表示されるようになります!
2013.12.18
MTで生成するページの文字エンコーディングを変更するCharsetEncoderプラグインですが、
ほぼ毎回といっていいほど実装するPageButeプラグイン(ページ分割プラグイン)と
合わせると上手く動きません。
それについては小粋空間さんのページで対処法を紹介されています。
PageButeプラグインにコードを1行追加するという簡単なものなのですが、
PageButeのバージョン3.4.2向けだったため最新のバージョン3.5.7(おそらく3.5.6以降)ではコードの追記場所が変わっているようでした。
で、プラグインが書けないなりに動く場所を探してみたのでメモしておきます。
■PageBute 3.5.7
580行目、
if($page_count == 1) {
の直前に
MT->run_callbacks('page_bute', \$output, %opt);
を追記。
$output =~ s/\Q$garbage{IFPAGENOEMPTY}\E|\Q$garbage{IFPAGENOEMPTY_END}\E//g;
の下なら大丈夫なんだろうと思います。
上述の通りだいぶ手探りなので、
もし、どこどこのほうが良いだとか、こうしないと上手く動かないよ、などがありましたら是非お知らせください。
ほぼ毎回といっていいほど実装するPageButeプラグイン(ページ分割プラグイン)と
合わせると上手く動きません。
それについては小粋空間さんのページで対処法を紹介されています。
PageButeプラグインにコードを1行追加するという簡単なものなのですが、
PageButeのバージョン3.4.2向けだったため最新のバージョン3.5.7(おそらく3.5.6以降)ではコードの追記場所が変わっているようでした。
で、プラグインが書けないなりに動く場所を探してみたのでメモしておきます。
■PageBute 3.5.7
580行目、
if($page_count == 1) {
の直前に
MT->run_callbacks('page_bute', \$output, %opt);
を追記。
$output =~ s/\Q$garbage{IFPAGENOEMPTY}\E|\Q$garbage{IFPAGENOEMPTY_END}\E//g;
の下なら大丈夫なんだろうと思います。
上述の通りだいぶ手探りなので、
もし、どこどこのほうが良いだとか、こうしないと上手く動かないよ、などがありましたら是非お知らせください。