かたつむりくんのWWW

EC CUBE で作ったサイトの copyright の年数を自動で更新する

Smarty を知っていれば簡単な話なんですが、自分はまったく分からないのでメモメモ・・・。

EC CUBE で作ったページのフッターのコピーライト(著作権表示)の年数が更新されてなかったので、自動で更新されるようにしました。

  • data/Smarty/templates/default/footer.tpl

このファイルの年数のところを、

<!--{$smarty.now|date_format:"%Y"}-->

とすればいいっぽい。

カテゴリの階層の深さを出力する Movable Type プラグイン - CategoryDepth

まーしーさんに言われたんで CategoryDepth というプラグインを作ってみました。

カテゴリコンテキストでは <$mt:CategoryDepth$> タグを、ブログ記事コンテキストでは <$mt:EntryCategoryDepth$> を使います。

ブログ記事がカテゴリに属していないときは空文字を返します。

ごめんなさい、今はスタティックの方しか対応してないです。あとでダイナミックにも対応させます。

【2012年9月6日午後2時33分追記】

藤本さんがダイナミックにも対応させてくれたので取り込みました!

【2012年9月6日午前12時05分追記】

CategoryDepth という名前のプラグインはすでに2008年に「エムロジック放課後プロジェクト」で公開されていました。名前がかぶってしまってすいません!(>_<)

以上です。

MTDDC Tokyo 2012 に参加しました & LT しました

2012年8月4日に開催された MTDDC Tokyo 2012 に参加しました。

今回の MTDDC も色々と参考になることが多くて勉強になりました。さらに、今回は LT(Lightning Talk)が15組もいました。それぞれが5分に凝縮されたおもしろい内容で、こちらも勉強になりました。

MTDDC の後のビアガーデンでの懇親会、さらにその後の2次会へも参加し、とても楽しい時間を過ごせました。みなさん、ありがとうございました。Six Apart の皆様、お疲れ様でした。

関係者以外のみなさん、MT のコミュニティ、いいですよ−。

さて、MTDDC で LT するのが趣味になりつつある僕ですが、今回ももれなくしゃべらせていただきました。

スライドは大したこと書いてないですが一応アップしておきます。

そして、肝心の mt-plug.in.cgi は Github に上げておきました。ざっとですが、README ファイルに説明書いたし、設定を編集するところにもコメント入れておいたので、少しは使えるかと思います。

こちらの CGI は、今後もう少し自分で使いやすいようにカスタマイズしていく予定です。

さてさて、次の MTDDC はどこで開催されるのでしょうか。できれば地方の MTDDC にも参加してみたいと思います。

ローカルでプラグインを開発してインストールとテストをするときはシンボリックリンクを使えば楽じゃん...

今まで気がつかなかった…

ローカル環境で Movable Type のプラグインを開発するとき、Dropbox にフォルダ作って開発し、テストするときにいちいち MAMP 内の MT にファイルをコピペしてやってました。更新する度に毎回…。

で、ふとさっき思いついたんだけど、ファイルをコピペしないで MT のフォルダ内にシンボリックリンクを作っちゃえば楽じゃん。

ln -s  /Users/tinybeans/Dropbox/plugins/MTAppjQuery /Applications/MAMP/htdocs/mt/plugins

これで更新する度にいちいちコピペしなくて良くなりました。感動!(何か弊害あるのかな?)

MT タグの拡張を簡単にする Movable Type プラグイン - EasyMTML

Movablet Type では、プラグインを作って自由に MT タグを拡張することができます。しかし、ちょっとした MT タグを追加するにしても、MT プラグインのお作法にのっとって、config.yaml を書き、決まったディレクトリ構造で色々なファイルを作り、と少々面倒です。

そんな時は、アルファサードさんの Github で公開されている EasyMTML というプラグインを使うと、新規の MT タグの登録が少し便利になります。

 

続きを読む

Path Finder で複数ファイルのファイル名を一括置換できることを知った

愛用しているつもりの Path Finder で、複数ファイルのファイル名を一括で置換できるのを初めて知りました。置換だけでは(ToT)、文字列の追加だとか、連番の追加だとかもできました。

pathfinder_replace

今までは複数ファイルの置換には shupapan を使っていましたが、ある程度のファイル名の操作は Path Finder で事足りそうです。正規表現の置換もできるので嬉しいですね。

使い方は、Path Finder で複数のファイルを選択して「command + return」です(ファイルを削除しようとして「Command + delete」しようとしたら打ち間違えて発見したのでした)。

便利で高機能な Path Finder、知らない機能がまだまだいっぱいあるんだろうな〜。

MT タグを MTML タグに変換する Coda 2 プラグイン - アップデート

先日「MT タグを MTML タグに変換する Coda 2 プラグイン」というのを公開してみましたが、あれから少し機能を追加したのでアップしておきます。

追加した機能は以下の通り。

  • 加工処理
    • MT を mt: に変換(選択した文字列中の MT を mt: に変換)
    • mt: を MT に変換(選択した文字列中の mt: を MT に変換)
    • MT タグを除去(選択した文字列中にあるMTタグを除去)
  • コメントアウト
    • MTIgnore(選択した文字列を MTIgnore タグで囲む)
    • MTTemplateNote(選択した文字列を MTTemplateNote でコメントアウト)

また、これまでのだと <mt:Loop name="hoge" glue="<br />"> のように、MT タグの中に <> があるとうまく動作しなかったのを修正しました。

続きを読む

Custom Field GUI Utility 3 の imagefield でアップロードした画像の各要素を取り出す方法

久しぶりに WordPress の記事です。ちょっと聞かれたので記事にしておきます。

Custom Field GUI Utility 3 で、imagefield でアップロードした画像の各要素(アップロード画面で入力できる要素)の取り出し方を紹介します。

なお、「imagefield・filefield の使い方(ver 3.1 以降)」を前提知識とさせていただきます。

続きを読む

ユーザーが自由に編集できる Movable Type のダッシュボードウィジェットを作ってみた

Movable Type の管理画面にログインしたときに最初に表示されるユーザーダッシュボード。そこに、ユーザーが自由に編集できるダッシュボードウィジェットを作ってみました。

ユーザーのタスクリストに、備忘録に、自分のエントリー一覧に、ご自由にお使いください!という感じです。

続きを読む

ちょっと知っておくといいかもしれないDynamicMTMLで実行するPHPのパス関係

例えば、DynamicMTML 適用ファイル内に書いてある PHP で file_get_contents() とかしようとしたときに、うまく取得できなくてハマったことありませんか?(無いか…)

これって、自分が思っていたのと実行されている PHP でのパスが違うのが原因だったりします。

続きを読む

MT タグを MTML タグに変換する Coda 2 プラグイン

ようやく、App Store の Coda 2 のアップデートが来ましたね。

日本語化もされましたし、クリップ機能周りにバグ(?)があったのか、新機能の複数設置のプレースホルダーが使えなかったり、クリップの新規作成のダイアログが画面の外側に出てしまったりしてすごく困っていましたが、これらは解決されていました。うれしい!

ということで、なんとなくですけど、MT タグを MTML タグに変換する Coda 2 のプラグインを書いてみました。

続きを読む

カンマ区切りの文字列をプラグインなしで配列のようにループで取り出すTips

Movable Type でテンプレートを書いているとき、カンマ区切りの文字列があって、これを配列にしてループさせたいってことは多々あるかと思います。

そんな時は、荒木さんの Split プラグイン(小粋空間)を使ったりしますが、プラグインを使えない環境もあるかもしれません。

そこで、今回はプラグインを使わないで、カンマ区切りの文字列を配列のようにループする方法を紹介します。

続きを読む

今年の目標:ブログ記事x本、現在y本、残りz本 をDynamicMTML を使ってリアルタイムに表現する方法

今年は、1年間で 100 本のブログ記事を書こうという密かな目標があるのですが、現在の状況をいちいち管理画面でカウントするのが面倒なので、DynamicMTML を使ってリアルタイムで状況を表示させてみます。

これには MTSearchEntries タグを利用します。

続きを読む

文字コード latin1 の MT4 を utf8 の MT5 に移行する方法

MySQL の文字コードが latin1 の MT4 を、文字コードを utf-8 に変換した上で MT5 に移行する方法です。うまくいくでしょうか(理解が足りない部分もあると思うので、ご指摘ください)。

今回は、MAMP のローカル環境で実験してみたいと思います。

続きを読む

MAMP の MySQL をコマンドで扱うには

Mac の代表的な開発環境と言えば MAMP ですね。

MAMP をインストールすると、初めから phpMyAdmin が使えるので、MySQL の作業はついついそれに頼ってしまいがちです。

しかし、サーバーによっては phpMyAdmin がインストールされていない場合もあり、コマンドで作業しないと行けないこともあります。そんな時のために、MAMP の MySQL をコマンドで操作して練習しておきたいですね。

続きを読む

MTAppjQuery の機能(jQueryプラグイン)をリストアップしてみたらこんなにあった

ふと、MTAppjQuery プラグイン の機能(プラグインにセットされている jQuery プラグインの機能)をリストアップしてみたらこんなにあって、自分でも少し驚いた!

続きを読む

MTCafe Tokyo に行ってきました

もう東京では桜がほとんど散ってしまいました。この一瞬の美しさに、人は魅了されるのでしょうか。

さてさて、桜が満開だった4月7日、MTCafe Tokyo に行ってきました(→ MTCafe とは?)。MTCafe はゆるい感じの会なので、この記事もゆるゆると。

1次会は、4人のLTと雑談、2次会はぶらぶらお酒を飲みながら MT の話をつまみにお散歩しながらお花見、3次会は MT の話をつまみに飲み会、4次会は MT の話をつまみに飲み会、という感じでした。

全体を通して、初めてお会いした方とも色々話せて楽しい会でした。また、色々教えていただいたことも多くて、勉強にもなりました。

1次会の最後では、ダイエットの極意の話もそっちのけで開発した野田さんの新作プラグインのデモもあったりしましたが、トイレに行っていて見逃したという…

僕も LT で2つのデモをさせていただきました。

続きを読む

Custom Field GUI Utility 3.2.5 リリース

WordPress のカスタムフィールドを使いやすくするプラグイン「Custom Field GUI Utility 3.2.5」をリリースしました。

ラジオボタンに「must = 1」を設定したときのバグを修正しました。

以下のページからダウンロードしてください。

Movable Type の特定の記事のユーザーを変更する SQL

Movable Type の特定の記事のユーザーを変更する SQL です。

phpMyAdmin を使うのであれば、mt_entry のテーブルを開いた状態で、上のタブメニューの「SQL」で次の SQL を実行すればOKです。この例では、エントリーID = 1136 の記事の著者を ID = 3 に変更しています。

UPDATE `mt_entry` SET `entry_author_id`=3,`entry_created_by`=3,`entry_modified_by`=3 WHERE `entry_id` =1136

ブログの記事の著者を一気に変更したい場合は次のようになります。この例では、ブログID = 2 内のすべての記事の著者を ID = 3 に変更しています。

UPDATE `mt_entry` SET `entry_author_id`=3,`entry_created_by`=3,`entry_modified_by`=3 WHERE `entry_blog_id` =2

以上です。

入れ子になったカテゴリの階層を調べるテンプレート

入れ子になったカテゴリの階層を調べる方法です。

MTSubCategories タグやカテゴリアーカイブに次のテンプレートを入れればOKです。

<$mt:SetVar name="cat_level" value="0"$>
<mt:ParentCategories><$mt:SetVar name="cat_level" op="++"$></mt:ParentCategories>

最初に変数 cat_level を初期化(ゼロを代入)して、MTParentCategories タグ内でインクリメント( +1 )します。これで親カテゴリの数だけ加算されていくので、カテゴリの階層が分かるというわけです。

ちなみに、MTParentCategories タグはトップレベルのカテゴリのコンテキストでも呼ばれ、その場合は MTParentCategories はトップレベルカテゴリである現在のカテゴリを返すようです(ソース未確認)。

続きを読む