かたつむりくんのWWW

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 のカスタムフィールド一覧、テンプレートタグが表示されるようになったのは嬉しいんですけど、人間欲深いもので、今度はまとめてコピーしたくなったりします。

cflist

そんなときは、次のコードを 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,'&lt;')
.replace(/>/g,'&gt;');
}
$('#actions-bar-top').before('<div class="msg msg-success" style="line-height:1.5;"><pre>'+ code.join("\n") +'</pre></div>');
})(jQuery);

cflist_tags

あとは 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 です。

参考サイトは「mysqldumpとcronでMySQLを自動バックアップする | Linuxで自宅サーバ構築」です。

続きを読む

Git でローカルに作ったブランチをリモートに反映させる

すごく基本的なことですが、どうしてもド忘れしてしまうのでメモしておきます。

まず、ローカルリポジトリに hoge という名前のブランチを追加するときは、

git checkout -b hoge

で、このブランチをリモートリポジトリにも追加する場合は、

git push origin hoge

となります。

これ以降は、master ブランチにチェックアウトしている状態で、

git push

すれば、master ブランチも、hoge ブランチも、すべてのブランチの変更が push されます。

ここに書いたから、もう忘れないな。っていうか、こんな単純なことをどうして覚えられないんだろう…

はじめての DynamicMTML #08 - MTSearchEntries (4) MTSplitVars を組み合わせて複数ワードのAND検索

前回は MTSearchEntries タグと MTSplitVars タグを使って複数のキーワードを OR 検索する方法を紹介しました。

今回は、AND 検索をする方法を紹介します。なお、前回の OR 検索の記事をお読みいただいている前提で進めます。

今回のテンプレートの仕様

AND 検索以外は、前回の記事と同様です。

  • 検索ワードはキーワード欄にカンマ区切りで指定する
  • 複数のキーワードは AND 検索
  • 現在のブログ内のブログ記事から検索する
  • 最新5件を表示する
  • 現在のブログ記事を除く

続きを読む

2012年 今年もよろしくお願いいたします - をDynamicMTMLで期間限定で表示する

1年間ってあっという間ですね。

昨年は日本が一変してしまった年でした。今年も引き続き、多くの方々にとって、色々なことで大変な1年だと思いますが、まわりの人と協力しあい、この厳しい時代を乗り越えて行ければいいなと思います。皆様のもとに、少しでも多くの幸せが訪れますように、切に願います。

2012年も、かたつむりくんのWWW をよろしくお願いいたします!

さて、2011年は、あいかわらず Movable Type にどっぷりつかった年でした。そして『Movable Type 5.1 プロの現場の仕事術』の執筆に参加させていただけたことは、この上ない喜びでした。

今年も引き続き、Movable Type にどっぷりつかっていこうと思います。Love MT、Love 再構築、Love DynamicMTML、Love PowerCMS といった感じです。

また、2011年は 57 本のブログ記事を書いていました。だいたい1週間に1本ちょっとといったペースということになります。ちょっと少ないかな…

まだまだ勉強したいことは山ほどあります。今年は 100 本くらいの記事をアウトプットできるようにがんばりたいと思います。

では、新年1本目のこの記事は、今年も MT でいくぞ、という意思表示も含めて、「DynamicMTMLで期間限定でメッセージを表示する方法」を紹介します。

続きを読む

はじめての DynamicMTML #07 - MTSearchEntries (3) MTSplitVars を組み合わせて複数ワードのOR検索

今回は、前回に引き続き MTSeachEntries についてと、MTSplitVars タグの使い方です。

MTSearchEntries は基本的には1つの検索ワードで検索する仕様になっています。前回のサンプルでも、キーワード欄に入力した1つのキーワードを、動的に検索する方法を紹介しました。

今回は、MTSearchEntries に「 MTSplitVars 」というブロックタグを組み合わせて複数の検索ワードで検索してみます。複数のキーワードは、キーワード欄にカンマ区切りで設定します。

今回のテンプレートの仕様

  • 検索ワードはキーワード欄にカンマ区切りで指定する
  • 複数のキーワードは OR 検索とする(AND 検索は次回)
  • 現在のブログ内のブログ記事から検索する
  • 最新5件を表示する
  • 現在のブログ記事を除く

続きを読む

ローカルで自分がcommitしたのにアイコンが表示されなかった件

どうでもいいといえばどうでもいいんですけど、Tower とか Bitbacket とかのコミット履歴の画面で、ローカルの Git で自分が commit したのに、アイコンが表示されないのがずっと気になってたんです、というか、アイコンどうやって設定するのかなーって。

今まで色々とググってみても情報が出てこなかったんですけど、やっと見つけました。

続きを読む

MTAppjQuery 0.25.1 リリース - バグフィックス

Movable Type 5 の管理画面をjQueryでカスタマイズしやすくするプラグイン「MTAppjQuery」の ver.0.25.1 をリリースしました。バグフィックスです。

変更点は以下の通りです(詳細はこちら)。

  • mtappVarsなどに「encode_js="1"」を追記しました。

スカイアークシステム方川さんにコメントで教えていただきました。ありがとうございました!

アップデートが必要なファイルは、以下の2つです。

  • plugins/MTAppjQuery/MTAppjQuery.pl
  • plugins/MTAppjQuery/lib/MTAppjQuery/Callbacks.pm

これらの差分ファイルも置いておきますので、こちらだけ差し替えていただければOKです。

プラグイン全体のダウンロードは以下からお願いします。

はじめての DynamicMTML #06 - MTSearchEntries (2) 基本的な使い方

前回は、ブログ記事を動的に検索する MTSearchEntries タグの説明をしました。

今回は、MTSearchEntries の基本的な使い方を紹介します。なお、以下の記事のテンプレートは「ブログ記事アーカイブ」テンプレートでの利用を想定しています。

続きを読む

はじめての DynamicMTML #05 - MTSearchEntries (1) 動的にブログ記事を検索する

今回は、DynamicMTML を利用して、動的にブログ記事を検索する MTSearchEntries の使い方を紹介します。

MTSearchEntries

MTSearchEntries は、target モディファイアで指定したカラムに query モディファイアで指定した文字列を含むエントリーを出力するブロックタグです。MTSearchEntries タグ内では、MTEntry系のファンクションタグが使えます。

MTSearchEntries タグで利用できるモディファイアは以下の通りです(詳細は後述します)。

query : 検索文字列
blog_id : ブログID
include_blogs : 対象とするブログIDを列記(カンマ区切り)または
"all" "children" "siblings"が指定可能です。
exclude_blogs : 対象外とするブログIDを列記(カンマ区切り)します。
target : 検索対象とするカラムを指定します。
operator : SQLの条件式を記載します。デフォルトはLIKEです。
class : entry(デフォルト)もしくはpage
category : カテゴリ名
category_id : カテゴリID
tag : タグ
status : 数字もしくは'*'(すべて)
sort_by : 表示順に指定するカラム名
sort_order : 表示順(descendもしくはascend)
lastn : 表示数
offset : オフセット値(何件目から読み込むか)
unique : 同じテンプレート内で使用したMTSearchEntries
ブロックで出力したエントリーを除いて出力します。
not_entry_id : IDを指定した単一のエントリーを除いて出力します。

README.ja.md at master from alfasado/DynamicMTML - GitHub

詳細に入る前に、まずはサンプルを見てみましょう。

続きを読む

MTAppjQuery 0.25 リリース - MTAppKeyboardShortcut を追加

Movable Type 5 の管理画面をjQueryでカスタマイズしやすくするプラグイン「MTAppjQuery」の ver.0.25 をリリースしました。内容は以下の通りです。

  • ブログ記事やウェブページ、コメントなどの一覧画面で、キーボードショートカットの「j, k, x」が使えるようになりました。Gmail のキーボードショートカットの j, k, x とほぼ同様の動きをします。
  • mt-static/MTAppjQuery/lib 内にあった jQselectable ディレクトリを削除しました。ご利用される場合は作者のサイトからダウンロードしてください。

アップデートが必要なファイルは、

  • plugins/MTAppjQuery ディレクトリ
  • mt-static/plugins/MTAppjQuery/js/MTAppjQuery.js
  • mt-static/plugins/MTAppjQuery/css/MTAppjQuery.css

となります。

ダウンロードは以下からお願いします。

続きを読む

はじめての DynamicMTML #04 - ログイン状態で分岐する MTIfLogin

今回は、DynamicMTML を利用して、ユーザーのログイン状態によって表示を変える方法を紹介します。

この方法を利用すれば、会員専用サイトを構築したり、会員のみに見せる特別なコンテンツを設置したりすることができます。

続きを読む

はじめての DynamicMTML #03 - スタティックパブリッシングで DynamicMTML を使う書き方

今回は、いよいよ DynamicMTML を Movable Type のテンプレートで使う方法を紹介します。

利用するテーマは、デフォルトテーマの「クラシックウェブサイト」と「クラシックブログ」です。また、特に説明がない限り、テンプレートの [公開] は「スタティック」に設定してあるものとします。

DynamicMTML をスタティックパブリッシングで利用する

DynamicMTML は、ページにアクセスがあったときに、そのファイルに含まれている MT タグを動的に展開してその結果をユーザーに返すものです。

したがって、スタティックパブリッシングのテンプレートで DynamicMTML を利用するには、テンプレートを再構築する際に、部分的に MT タグを展開しないで MT タグを残したままの状態でページを生成する必要があります。

DynamicMTML には、これを実現するために、主に次の2つの正式な方法と、1つの裏技的な方法があります。

  1. MTDynamicMTML というブロックタグでテンプレートを囲む方法
  2. MTML というファンクションタグで MT タグ自体を出力する方法
  3. replaec する裏技的な方法

続きを読む

はじめての DynamicMTML #02 - .htaccess と .mtview.php の役割

前回の記事で、DynamicMTML のインストールまで完了しました。

DynamicMTML を有効にすると、ウェブサイト/ブログのサイト・パス直下に「.htaccess」と「.mtview.php」という2つのファイルが生成されます。今回は、このファイルの役割を見てたいと思います。

続きを読む

はじめての DynamicMTML #01 - 準備とインストール

僕は Movable Type の「再構築」が好きです。「Love 再構築」という名前の Xtalk 動かしているくらいですw サイトに来てくれたユーザーにスタティックなファイルを返すだけ、というのは、サイト運営側のおもてなしの一つだと思っています。

しかし、運営側にとって「再構築」という作業に何分も時間がかかるというのはデメリットであることも事実です。この気持ちもよく分かります。この再構築時間をできるだけ短くするというのは、Movable Type を使ってサイトを構築するWeb制作者の腕の見せ所でもあるのかもしれません。

また、スタティックなファイルだと、デバイスやユーザーごとに表示を変えにくいこともあるかもしれません。

そんな Movable Type の弱点(?)を克服するかのように現れたのが、Alfasado Inc. が公開している DynamicMTML というプラグインです。

今日から、自分の勉強も兼ねて、この DynamicMTML について記事を書いていきたいと思います。なお、DynamicMTML の詳しいドキュメントは以下のページに載っています。

続きを読む