October 29, 2006

トラックバックスパムの嵐!

ココに来てミョーにトラックバックスパムが増えてきました。
仕事で運用しているBlogにも先週あたりからトラックバックスパムが急増していて、対処に頭を悩ませています。
しかも、最近のスパムは学習しているせいかコメントにキチンと日本語を適度にいれてBanASCIIをいれてもはじくことができず、またIPにしてネットCafe経由なのかわかりませんが、特定できないので困ったものです。
最終手段としてTBPingLinkLookupあたりを導入すれば、それなりにブロックできそうですがなんとかこのスパム達を退治したいものです。
よい解決策が見つかったらこのBlogに書きます。

投稿者 nitoka : 09:50 PM | コメント (0) | トラックバック

September 29, 2006

MTEntryCategoryDescription

MTEntryCategoryDescriptionタグってあるのかと思ったらないようだったので、プラグインを作ってみました。

ソース

エントリーアーカイブ内で<$MTEntryCategoryDescription$>このタグを組み込むとCategoryDescriptionが表示されます。

あと、ぜんぜん内容とは関係なのですがこの記事は記念すべき200エントリー目です。
目指せ1000エントリー!あと800。

投稿者 nitoka : 06:05 PM | コメント (1) | トラックバック

August 24, 2006

投稿者の判別をするプラグイン・MTIfAuthor

投稿者の判別をするプラグイン・MTIfAuthorを作りました。
IfAuthor
使い方はこんな感じ、
<MTIfAuthor author="Melody">
My name is Melody
</MTIfAuthor>

個人でブログをする人は、ユーザーアカウントを複数発行することはあまりないかと思いますが、MTをCMSとしてつかったり、投稿者をレポーターに見立てて複数のログインアカウントでBlogを運用するケースは、仕事で使う場合に結構あります。

そんなときにやりたくなるのが、投稿者によってデザインを変えたいとか、アイコンを変えたいとか、投稿者のプロフィールを出したいというような要望が出てきます。

そんなときにこのプラグインを使って、MTIncludeあたりで個別のモジュールを読み込めば、投稿者ごとにデザインなどを変更することができます。

ただし、このプラグインおそらく個別エントリーアーカイブでしか使えないと思います。 使えるかもしれないけど試してない。。。

投稿者 nitoka : 10:37 AM | コメント (0) | トラックバック

July 20, 2006

MT3.3をApache::Registryで高速にする

OSXにMT3.3を入れてみました(DBはMySQLを使用)。 すでに、仕事でも実証済みなのですが、3.3になってからMTの動作がすこぶる遅くなったので、Apache::Registryで高速化してみました。

手順は、SixApartのマニュアルページに記載してあるので、割愛します。

OSXのデフォルトでインストールされているApacheはmod_perlがインストール済みなのですが、有効になっていないので「/etc/httpd/httpd.conf」をエディタで開いてmod_perlを有効にしてあげましょう。

239行目あたり
#LoadModule perl_module        libexec/httpd/libperl.so
↓
LoadModule perl_module        libexec/httpd/libperl.so
コメントをはずす

283行目あたり
#AddModule mod_perl.c
↓
AddModule mod_perl.c
コメントをはずす
httpd.confの修正のついでにApache::Registryを有効にするおまじないを記述
Include /private/etc/httpd/users/*.conf

PerlModule Apache::Registry
<Location /Library/WebServer/CGI-Executables/mt>
  SetHandler perl-script
  PerlHandler Apache::Registry
  Options +ExecCGI
</Location>
あとは、Apacheを再起動して設定を有効にします。これで完了。 MTが高速になったはず。

投稿者 nitoka : 07:07 PM | コメント (0) | トラックバック

July 09, 2006

Last.fmのリストを表示

Blogの右メニューのところにLast.fmのrecenttracksリストを表示させてみました。
最近は、itunesのラジオに飽きたのでもっぱらLast.fmを聞いています。

ただ、残念なのがFlash作成(最近はじめました)をしていると、メモリーをたくさん使っているのかわかりませんが、プチプチ止まってしまうのがつらい。

投稿者 nitoka : 01:13 PM | コメント (0) | トラックバック

June 22, 2006

MTIfNonEmpty

忘れないようにBlogにアップ。

内に、指定したデータが存在する場合に出力する内容を記述。tag="タグ名"で指定。

<MTIfNonEmpty tag="MTEntryExcerpt">
<p>
この記事には概要が記述されています。</p>
<MTElse>
<p>この記事には概要が記述されていません。</p>
</MTElse>
</MTIfNonEmpty>

投稿者 nitoka : 02:27 PM | コメント (0) | トラックバック

May 15, 2006

カレンダーを月送りにしました

小粋空間さんの「月送りカレンダー」の記事を参考にカレンダーを月送りにしてみました。

追記:
最近ちょっとプライベートでいろいろありまして、記事を書くのをサボってました。
やっと落ち着き(?)今週から書き始めようかと思います。

投稿者 nitoka : 06:05 PM | コメント (0) | トラックバック

April 18, 2006

アーカイブの出力フォーマット

今更ですけど最近もの忘れが激しいので、自分のBlogにもアーカイブファイルの出力フォーマット関連のマニュアル内容をアップ。

%a
      投稿者名、グローバルフィルター dirify が適用される。例: melody_nelson
%-a
      投稿者名、上記と同じですがアンダースコアではなくダッシュが適用される。例: melody-nelson
%b
      エントリーアーカイブマッピングに関しては、これはエントリーの basename を返します。
      デフォルトで、グローバルフィルター dirify が適用されエントリータイトルの最初の30の文字です。
      編集エントリー画面のエントリー・ファイル名フィールドを使用することによって、
      それを指定することができます。例: my_summer_vacation
%c
      所属する主カテゴリーまでの階層ディレクトリ、カテゴリー名はグローバルフィルター dirify が適用される。
      例: arts_and_entertainment/tv_and_movies
%-c
      上記と同じですがアンダースコアではなくダッシュが適用される。
      例: arts-and-entertainment/tv-and-movies
%C
      所属する主のカテゴリー。カテゴリー名はグローバルフィルター dirify が適用される。
     例: arts_and_entertainment
%-C
      所属する主のカテゴリー。カテゴリー名はグローバルフィルター dirify が適用されるがアンダースコアではなく
      ダッシュが適用される。
      例: arts-and-entertainment
%d
      その月での日付。二桁の数字で、一桁のときは 0 が付きます。
      例: 09
%D
      省略された週の名前。
      例: Thu 。
%e
      エントリーID、常に0付きの数字6桁。
      例: 000040
%E
      エントリーID表示。
      例: 40
%f
      公開の設定でアーカイブの拡張子で指定したドット付き拡張子を付けたアーカイブファイル名。
      %b または %i の代わりに使用でき、エントリーアーカイブではエントリーベースネーム、
      その他のアーカイブではインデックスファイル。
      例: entry_basename.html or index.html
%F
      上記と同じですが拡張子は含まない。
      例: filename
%h
      24時間表示の時刻。二桁の数字で、一桁のときは 0 がつきます。
      例: 16
%H
      24時間表示の時刻。二桁の数字で、一桁のときは 0 がつかない。
      例: 6
%i
      デフォルトファイル拡張子付き IndexBasename 。例: index.html
%I
      上記と同じですが拡張子は含まない。
      例: index
%j
      年初からの日。三桁の数字で、一桁、二桁のときは、 0 がつきます。
      例: 256
%m
      月。二桁の数字で、一桁のときは 0 がつきます。
      例: 09
%n
      分。二桁の数字で、一桁のときは 0 がつきます。
      例: 02
%s
      秒。二桁の数字で、一桁のときは 0 がつきます。
      例: 04
%x
      公開の設定でアーカイブの拡張子で指定したドット付き拡張子が付きます。
%y
      年。四桁の数字。
      例: 2005
%Y
      年。二桁の数字で、一桁のときは 0 がつきます。
      例: 05

投稿者 nitoka : 11:28 PM | コメント (0) | トラックバック

March 20, 2006

カテゴリーごとに個別のテンプレートモジュールを読み込む

カテゴリーアーカイブのTopページを個別に変えたいな~と思っていて、これまでは「カテゴリーの説明」のところにHTMLを入れて、テンプレートにそれを出力するという力技を使っていたのですが、全くスマートじゃないのでもっといい方法がないかと探していました。

見つけました。カテゴリーごとにテンプレートを切り替える

この記事で紹介されているのは、カテゴリーごとに個別のテンプレートモジュールを表示させるテクニックなのですが、ソースはこんな感じです。

<MTIfIsDescendant parent="diary">
<$MTInclude module="diary"$>
</MTIfIsDescendant>

MTIfIsDescendant タグでカテゴリーの判別をして、それに対応するモジュールをロードさせるという方法です。
すばらしいです。完璧です。これで表現の幅がかなり広がります。早速仕事で使います。

投稿者 nitoka : 05:19 PM | コメント (0) | トラックバック

March 16, 2006

未来月のアーカイブリストを表示させないプラグイン

Blogのトップページに常にある記事を掲載させたいときに、作成日時を未来の日付(たとえば2010年10月1日とか)にするやり方があると思いますが、この場合月のアーカイブリストに「2010年10月」みたいに未来のアーカイブまで作成されてしまいます。

これだと、ちょっとかっこ悪いので未来のアーカイブリストは非表示にするプラグインを作成してみました。

このプラグインは元ネタがあって、コレです。

このプラグインは月間アーカイブの表示方法を変えるためのプラグインなのですが、このソースを改造して、現在年月と比較して未来だった場合は非表示にします。

アーカイブリストを生成するテンプレートのソースをこんな感じに変更。
<MTArchiveDateHeader>
<li><a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a></li>
</MTArchiveDateHeader>
Download

投稿者 nitoka : 12:39 PM | コメント (0) | トラックバック

February 16, 2006

MultiBlogプラグイン

今、やっているBlog案件で複数のBlogを構築することになり、そうなると各Blogの更新情報を共有したいな~と思いプラグインを探してみました。

そこで発見したのが、このMultiBlogです。
日本語での解説ページ

かなり便利なツールで、他のブログを更新したら別のブログのページも更新されるようになります。

タグの使い方も簡単で、こんな感じてイケるようです。
<MTMultiBlogEntries include_blogs="1,2">

~

</MTMultiBlogEntries>

投稿者 nitoka : 04:53 PM | コメント (0) | トラックバック

February 13, 2006

Delicious Tags Pluginプラグイン改良版

del.icio.usで自分が登録しているタグを表示させるプラグインといえば、Delicious Tags Pluginが有名かと思いますが、日本語のタグがうまく表示できなかったりしたので改良してみました。

source

改良箇所ポイントは、

使い方はこんな感じ

<MTDeliciousTags user="user" pass="password" lastn="70">
<a href="<$MTDeliciousTagURL$>" style="<$MTDeliciousTagSize$>"><$MTDeliciousTag$>(<$MTDeliciousTag$>)</a>
</MTDeliciousTags>

投稿者 nitoka : 09:49 PM | コメント (0) | トラックバック

January 06, 2006

デザインをモジュール化

これまで全く使ってなかったのですが、便利そうなので使ってみました。

試しに、Topページのヘッダーと右側のサイドバーをテンプレートモジュール化。
top_page.jpg

それぞれ、ヘッダーを「header」というモジュールに、サイドバーを「sidebar」というモジュールにして、index.htmlのテンプレート上のヘッダーの表示箇所に、
<$MTInclude module="header"$>
サイドバーの箇所に、
<$MTInclude module="sidebar"$>
とソースを追加して再構築。

追加したソースの部分にモジュール化したHTMLが出力されます。
部品化することにより、デザインの修正も楽になるし、テンプレートのソースも簡素化できるのでかなり便利です。

投稿者 nitoka : 06:46 PM | コメント (0) | トラックバック

December 06, 2005

Search Word Cloud導入

このページを参考にSearch Word Cloudなるものを個別エントリーページに導入してみました。

javascriptファイルをページに貼り付けておくだけで、そのページに訪問した際に使われた検索キーワードを自動的に検知して そのキーワード達をTagCloud風に表示させる物を作ってみました。
というような代物で、ちょっとおもしろそうなプラグインだったので導入してみました。

検索キーワードをキャッチできるのは、GoogleとYahoo!のみだそうです。
(なぜかこのBlogはMSNから来る人が多いので、ちょっと残念)

時間があれば、CPANのHTML::TagCloudあたりを使って自作してみます。

投稿者 nitoka : 06:19 PM | コメント (0) | トラックバック

November 27, 2005

MTのプラグイン作成

SixApartのプラグイン作成方法を解説しているページを参考に、簡単なプラグインを作ってみました。

ソースはココ

ソースを見れば一目瞭然ですが、このプラグインはCPANのWWW:Mixiを使ってMixiで自分が参加しているコミュニティーの新規書き込み記事一覧(5件)を表示します。

設置方法は簡単で、まず「extlib」ディレクトリにWWW::Mixiを設置します。
次に、「plugins」ディレクトリにMixiBBS.txtをMixiBBS.plという名前で設置します。
これで準備完了。後は、テンプレートに以下のソースを貼り付ければ表示されます。

 <ul>
 <MTMixiBBS id="your@mail.address" pass="yourpassword">
 <li> <$MTTime$>・・・ <a href=" <$MTLink$>"> <$MTSubject$> </a>( <$MTName$>) <br />
 </MTMixiBBS>
 </ul>

で再構築するとこんな感じになります。

あまり、使い道はなさそうですが前々からMTのプラグインを作ってみたかったのと、WWW::Mixiを使ってみたかったので作ってみました。

投稿者 nitoka : 02:36 PM | コメント (0) | トラックバック

November 21, 2005

FilterCategories

このBlogで使用しているわけではないのですが、とあるBlog案件で特定のカテゴリーをカテゴリーリストの一番上に表示させたいといわれたので、FilterCategoriesを導入してみました。

最初は、よく見かける方法のカテゴリー名の先頭に数字を入れてソートさせる方法も検討したのですが、あまりスマートな方法ではない気がしたのと、特定のカテゴリーだけ一番上で後の順番はどうでもいいみたいだったので、FilterCategoriesの導入を決定。

プラグインはココから入手できます。
ソースはこんな感じです。

<div id="categories">
<h2>カテゴリー</h2>

<ul>
<MTCategories>
<MTFilterCategories include="info">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a>
</li>
</MTFilterCategories>
</MTCategories>

<MTSubCategories>
<MTFilterCategories exclude="info">

<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a>
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>

</MTFilterCategories>
</MTSubCategories>
</div>

簡単に説明すると、リストのループをする前に特定の「info」というカテゴリーを表示させるための条件文をいれて表示させて、その後に「info」を除いたカテゴリーリストを表示させるようにしています。

投稿者 nitoka : 03:18 PM | コメント (0) | トラックバック

November 19, 2005

トラックバックスパム対策

ついにやってきました。トラックバックスパム野郎が!
むかつきます。このBlogのようなアクセス数のあまりないところにまで、くるなんて。

退去して送り込まれる前に、対策を講じてみました。
基本は、コメントスパム対策でもやっている「ひらがな対策」で対応してみました。
やりかたは、ココにあるトラックバックの仕様を参考にして設定してみました。

効果がどれくらいありそうかは、しばらく様子を見る必要がありそうです。

投稿者 nitoka : 01:13 AM | コメント (0) | トラックバック

November 17, 2005

コメントスパム対策

Blogをはじめて1ヶ月目あたりからスパムコメントが増えてきました。

特にGoogleにひっかかるようになってからが増えたきがする。

うざいこやつらを排除するため、Blacklistプラグインを導入してみました。
インストールの仕方などはググってみればすぐに見つかると思うので、書きませんが、僕のようにAdminCGIPathを使っている場合、lib/MT.pmとlib/MT/App/CMS.pmを修正する必要があります。

lib/MT.pm変更 (sub add_plugin_action)
#コメント管理画面に表示されるBlacklistプラグインのパスをAdminCGIPathに向ける設定
use vars '%PluginActions';
sub add_plugin_action {
    my $class = shift;
    my ($object_type, $action_link, $link_text) = @_;
    $action_link .= '?' unless $action_link =~ m.\?.;
    push @{$PluginActions{$object_type}},
#デフォルトではCGIPathに向くようになっているので、AdminCGIPathに変更
#         { page => MT::ConfigMgr->instance()->CGIPath . 
         { page => MT::ConfigMgr->instance()->AdminCGIPath . 
           '/' . $plugin_envelope . 
           '/' . $action_link,
       link_text => $link_text };
}
lib/MT/App/CMS.pm変更
メニュー画面に表示されるPluginリストのURLをAdminCGIPathに向ける設定
340行目あたり

	$plugin->{description} = remove_html($plugin->{description});
#ここをAdminCGIPathに変更
#        (my $cgi_path = $app->{cfg}->CGIPath) =~ s|/$||;
        (my $cgi_path = $app->{cfg}->AdminCGIPath) =~ s|/$||;
これで完了。

投稿者 nitoka : 11:28 AM | コメント (0) | トラックバック

November 14, 2005

TypePad

とある案件でTypePadを使うかもしれなくなったので、ためしに契約してみました。
結論から言うと、

全然MovableTypeと違うじゃん!

なんだよこの管理画面!
そして何だよこのデザインテンプレート!
これじゃあ、またTypePadの使い方覚えなきゃいけないじゃんか!
しかも、それ調べるのってどうせ僕なんでしょ!そして、それをデザイナーにレクチャーしなきゃいけないんでしょ!

だめです。面倒くさすぎです。やる気なし。
TypePadのことは忘れて、Movabletypeのライセンスを買ってもらう方向で話を進めてもらいます。

投稿者 nitoka : 09:46 PM | コメント (0) | トラックバック

November 04, 2005

Google AdSense

個別エントリーアーカイブにGoogleAdSenseを導入してみました。

これでぼくの大好きな3大Webサービス(Google、Amazon、Flickr)との連携が完成。あとはずっと先送りにしてきたデザインのカズタマイズをしていきます。

投稿者 nitoka : 11:05 AM | コメント (0) | トラックバック

November 01, 2005

模様替え

ページカラーの模様替えをしてみました。
秋色です。

でも、ちょっと微妙・・・
前のほうがよかったかな・・・

投稿者 nitoka : 02:08 PM | コメント (0) | トラックバック

October 30, 2005

Amazon Web Service用プラグイン その2

Amazon Web Service用プラグインの記事の最後にも書きましたが、エントリー内にAWSタグを使いたいので、Process Tagsを導入してみました。

手順はココにに詳しく載っていたので、早速手順通りにプラグインを置いて動作確認。

見事Amazonへのリンクが作成されました。これでAmazonギフト券をためます。

でもその前に、いい加減Google様にひっかかるようになりたいです。。。

投稿者 nitoka : 04:37 PM | コメント (0) | トラックバック

October 28, 2005

Amazon Web Service用プラグイン

Amazon Web Service用のプラグインaws.plを導入してみました。
ココからaws.plをDLしてpluginsディレクトリに設置。
ためしに個別エントリアーカイブに以下のソースを記述してみました。
<div style="border: solid 1px #666666; padding: 1em;">
<MTAws dev_token="xxxxxxxxxxxxx" associate_id="xxxxx-22" search="KeywordSearch" query="Perl" mode="books-jp" lastn="3">
<a href="<$MTAwsurl$>"><img src="<$MTAwsImageUrlSmall$>"><br />
<$MTAwsProductName$><br />
  <$MTAwsAuthors$><br />
  <$MTAwsListPrice$><br />
  <$MTAwsReleaseDate$>
</a>
<br />
</MTAws>
</div>
結果みごとにAmazonへのリンクが生成されました。
注意事項としてdev_tokenに間違えた値を指定するとエラーにならず、空のリンクが生成されるので正しい値をいれましょう。
※最初これに気づかず「aws.plのバグか?」なんて疑って、2時間くらい悩みました。 あと、「KeywordSearch」でqueryのところに「<$MTEntryTitle$>」を入れたらエントリーごとに個別のリンクが作れるじゃない?と思い設定してみたら見事エラーになりました。
今後の課題は「process_tags」を導入してエントリーにこのawsのタグが使えるようにすることです。

投稿者 nitoka : 12:12 PM | コメント (0) | トラックバック

October 22, 2005

カテゴリーアーカイブディレクトリ

昨日、とあるMTを使用している案件でMTの珍現象を発見しました。(v3.15) 1.カテゴリ名に日本語と英語を組みあわせた名前に設定すると、カテゴリーアーカイブディレクトリが入力した英語のディレクトリになる。
例:「Designとは」というカテゴリ名を作成
  →アーカイブディレクトリはdesignとなる。(デフォルトはcat××とかじゃないの?)
2.日本語と英語を組みあわせた似たようなカテゴリを設定するとカテゴリーアーカイブディレクトリが重複してしまう。
例:「Designとは」と「Designとは何か」という似たカテゴリを作成
  →アーカイブディレクトリがdesignというディレクトリ一つしか生成されない。
3.カテゴリー名に全角スペースを入れるとアーカイブディレクトリがアンダーバーになる(_)。
例:「デザイン センス」という全角スペース入りのカテゴリーを作成
  →カテゴリーアーカイブディレクトリが「_」になる。
とりあえず見つけたのはこの3つです。 原因を追究しようと思ったのですが、MTのソースは膨大すぎて解読する気にならないので以下の方法で回避させました。 メインメニュー>Weblog名>ウェブログの設定>アーカイブの設定画面に行き。カテゴリーのアーカイブ・ファイルのテンプレート部分をこのように設定。
<$MTCategoryID dirify="1"$>/index.html
これで完了。カテゴリーアーカイブ名はカテゴリーIDになります。
もしかするとこの珍現象はもしかすると最新のバージョンでは発生しないかもしれません。 参考までに。

投稿者 nitoka : 09:55 AM | コメント (0) | トラックバック

September 29, 2005

CSRF対策

MTで指摘されている脆弱性への対応方法が紹介されていたので、早速試してみました。

read more "CSRF対策"

投稿者 nitoka : 09:09 AM | コメント (0) | トラックバック

September 27, 2005

コメントプレビューページのカスタマイズ

自分には直接関係ないけど、記事に対するコメントのプレビューページのカスタマイズをしてみた。

read more "コメントプレビューページのカスタマイズ"

投稿者 nitoka : 08:16 PM | コメント (0) | トラックバック

MTBlogTimes

BlogHacksにあったMTBlogTimes(Blog更新時間をバーコード表示させるPlugin)を導入してみました。

read more "MTBlogTimes"

投稿者 nitoka : 05:07 PM | コメント (0) | トラックバック

September 25, 2005

FlickrPublicPhotos Plugin

Flickrのプラグインを発見したので試してみました。
URL:http://as-is.net/blog/archives/001000.html

read more "FlickrPublicPhotos Plugin"

投稿者 nitoka : 12:07 PM | コメント (0) | トラックバック