はじめての DynamicMTML #10 - クエリを処理する4つのテンプレートタグ
DynamicMTML には、クエリを処理するテンプレートタグがいくつか用意されています。今日は、そのうちの4つ、MTQueryLoop、MTQueryVars、MTSetQueryVars、MTQuery を紹介します。
なお、検索サイトやサイト内検索からの流入の際に、検索されたキーワードを処理する MTReferralKeywords というタグもあります。これについては、前回の記事を参照してください。
JavaScript で連番の文字列を簡単に作る
すごく基本的な内容ですが、たった今自分が必要だったので。
例えば、次のような5つの項目があったとします。
expensedtlname_1,expensedtlcount_1,expensedtlunitmoney_1,expensedtlmoney_1,expensedtlremarks_1
これらは枝番が _1 となっていますが、これを 1 〜 10 まで一気に作りたいという場面に出くわしました(まあ、10個くらいなら手作業でも…)。
そんなときは、次のコードを Firebug や Chrome の JavaScript コンソールにコピペして実行すれば一瞬で終わります。
var str = 'expensedtlname_*,expensedtlcount_*,expensedtlunitmoney_*,expensedtlmoney_*,expensedtlremarks_*';
var snippet = [], from = 1, to = 10, glue = ",";
for (var n = to + 1; from < n; from ++) {
snippet.push(str.replace(/\*/g, from));
}
console.log(snippet.join(glue));
Movable Type のカスタムフィールド一覧ですべてのテンプレートタグをまとめてコピーしたい
Movable Type のカスタムフィールド一覧、テンプレートタグが表示されるようになったのは嬉しいんですけど、人間欲深いもので、今度はまとめてコピーしたくなったりします。

そんなときは、次のコードを Firebug や Chrome の JavaScript コンソールにコピペして実行すればOK。一覧の上に表示されます。
(function($){
var code = [];
$('pre.code').each(function(){
code.push($(this).text());
});
for (var i=0,n=code.length;i<n;i++){
code[i]=code[i].replace(/^[^<]+/m,'')
.replace(/\n/g,'')
.replace(/<([^\/>]+)\s\/>/,'<$$$1$>')
.replace(/</g,'<')
.replace(/>/g,'>');
}
$('#actions-bar-top').before('<div class="msg msg-success" style="line-height:1.5;"><pre>'+ code.join("\n") +'</pre></div>');
})(jQuery);

あとは zen-coding とがでマークアップよろしくということで。あぁ、ラクダ。
AND 検索のテンプレートを修正しました
「はじめての DynamicMTML #08 - MTSearchEntries (4) MTSplitVars を組み合わせて複数ワードのAND検索」の記事で紹介している AND 検索のテンプレートですが、別のところに流用したらうまく動きませんでした。
そのため、最後の出力の前に、一度 MTLoop を回してすべてのキーワードにマッチするものだけを、最終的な出力用のハッシュ変数 result にセットする方法に変更しました。
なお、このブログ記事の修正の際には、PowerCMSのワークフローリビジョンの機能を使いました。便利すぎてヤバいですw
はじめての DynamicMTML #09 - MTSearchEntries (5) MTReferralKeywords で検索サイトからの流入に対する関連記事を表示する
今回は、MTReferralKeywords というブロックタグを使い、Google、Yahoo!、bing、MSN、goo で検索してサイトに訪れたユーザーに対して、そのキーワードに関連する記事をリストアップする方法を紹介します。
今回のテンプレートの仕様
- 検索サイトで検索されたキーワードを含むブログ記事一覧を表示する
- 検索サイトからの流入のときだけ表示する
- 現在のブログ内のブログ記事から検索する
- 最新5件を表示する
- 現在のブログ記事を除く
Custom Field GUI Utility の conf.ini ジェネレーターを作ってみた
Custom Field GUI Utility の設定ファイルを書き出す「conf.ini ジェネレーター(BETA)」というのを作ってみました。少しは設定ファイルを作るのが楽になるでしょうか。
あまり動作検証してないので適当に使ってみてください!
明日からまた、MT に戻ります。
Custom Field GUI Utility 3.2 リリース - WordPress 3.3 に対応
WordPress のカスタムフィールドを使いやすくするプラグイン「Custom Field GUI Utility 3.2」をリリースしました。 主な変更点は以下の通りです。
- 投稿タイプごとに設定ファイルを変えられるようにしました。
- カスタムフィールドのボックス名(「カスタムフィールド」というタイトルバーです)も変更できるようにしました。
- オリジナルの必須チェックを廃止し、「exValidation」を同梱しました。must オプションで簡単に必須項目にすることもできますし、validation オプションで細かく設定することもできます。
いつも大変お世話になっている 5509 さんに深くお礼申し上げます。 - textfield、imagefield、filefield に placeholder を追加できるようにしました。
- 細かい話ですが、imagefield のアップローダーの「×」をクリックしなくてもカスタムフィールドに値が入るようにしました。
- PHP ファイルを1つにまとめました、すいません。
詳細は以下のページをご確認ください。がんばって書き換えました。
なお、今後は一部有料化を検討しています。たぶん 3,000円くらいですが、「有料化すると会社の手続き的に使いにくくなるな−」という声もあるので、それも含めて検討したいと思います(って前にも書いたような…)。
さて、また MT の人に戻りたいと思います。不具合がないことを祈ります…
シェルスクリプトで自動的にデータベースをバックアップ
シェルスクリプトと cron で自動的にデータベースをバックアップする方法を勉強しました。サーバー初心者です。
サーバーは、CentOS 5.7 です。
Git でローカルに作ったブランチをリモートに反映させる
すごく基本的なことですが、どうしてもド忘れしてしまうのでメモしておきます。
まず、ローカルリポジトリに hoge という名前のブランチを追加するときは、
git checkout -b hoge
で、このブランチをリモートリポジトリにも追加する場合は、
git push origin hoge
となります。
これ以降は、master ブランチにチェックアウトしている状態で、
git push
すれば、master ブランチも、hoge ブランチも、すべてのブランチの変更が push されます。
ここに書いたから、もう忘れないな。っていうか、こんな単純なことをどうして覚えられないんだろう…


