G-chan Square

じーちゃん/へたっぴの綴る、日々のつれづれとか。
twitterのまとめとゲームネタが中心。2015年からロードバイク/ミニベロ始めました。

[movable type6] SpamLookup微修正

こんばんわ、最近はロードバイクに少しずつハマりつつあるじーちゃんです。

さて、ロードバイクとは一切関係ないんですが、じーちゃんのこのG-chan SquareにたまーにSPAM投稿が届くようになったので、MovableType6のスパム防止機能'SpamLookup'を微修正しました。

じーちゃん、MovableType4.21と戦う! 完

こんにちわ、じーちゃんです。

えー。いろいろ面倒くさいことも少々ありましたが、ようやくじーちゃんのこのサイトもMT4.21へと移行いたしました\(^∀^)/

え? 何が変わったの? って……?
ページの一番下を見てください。

Powered by Movable Type 4.21-ja

って書いてあるでしょう!w

……見た目の変化はこれだけのはず!ww

じーちゃん、MovableType4.21と戦う! 第1話

こんぬつは。じーちゃんです。

さて、いまのいままで見ないふりをして放置を決め続けていた「MovableType4系へのバージョンアップ」なのですが、ついに重い腰を上げて取りかかることにいたしました。

だって、昨日SixApart見たらもう3.X系サポートアウトしてるって言うんだもん……(;´Д⊂



長い戦いになるでしょう……傷つき倒れることもあるでしょう……
でも、決して負けられない! もはや後へは引けないッッ!


だって、昨日SixApart見たらもう3.X系サポートアウトしてるって言うんだもん……(;´Д⊂


これは、じーちゃんとMovableType4.21との長きにわたる戦いの物語である……

ウソです。単に備忘録ですw

コメントスパム大杉

会社からこのページを見たら……うわぁ、コメントスパムだぁ……
トラックバックスパムはそれを防ぐプラグインを導入してあるんですが、コメントのほうには効果がない模様。

そういえば、今日、MovableType4.1がリリースされたとかいうし、乗り換えどきなのかなぅ……
MT4なら、デフォルトでcaptchaついてるし……でも、captchaはあまり付けたくないなぅ……

さて、どうしよ? 当面の所もどうしよ?

MTカスタマイズ:ページ分割

長い間MovableTypeを運用していると、カテゴリの中のエントリー数がどんどん増えていくことになります。
んで、例えば、とあるカテゴリに100エントリーくらいあるとして、そのカテゴリのアーカイブとか見ると……当然ですが100エントリー分一気に全部表示されます。

すると、見る側としても、ページがやたら長くなるし重いし一気にこんなに見ないし、サーバー側としても通信量増えるし……とあまりいいことがありません。

なので、10件程度ずつ小出しに出せるようになるといいわけですな。

でもMTのデフォルトではそんな器用なことができない(<ほんとデフォルト機能として追加して欲しいんですけど)ので、またまたプラグインのお世話になります。

というわけで……MTカスタマイズの大御所

小粋空間

にやり方がバッチリ載っているので、ここを見てください。

面倒くさくなってきたので、こっちには書き写しませんw

MTのデータをBerkeley DBからMySQLへ移行

ええ、じーちゃんです。今日はお休みです。
先週も金曜日お休みしましたが今週もです。
そろそろクビになるかもしれませんw<もしそうなったら大歓迎なんですがw

さて、今日はMovableTypeのカスタマイズってことで、いい加減遅いBerkekeyDBからMySQLへデータ移行してみました。

参考URLとしては、
今日も一言 とか
mt-db-convert.cgi: MTデータベースの相互変換CGIスクリプト とか

ざっくりとしたやり方としては、

【1】/etc/my.cnf に
[mysqld]
default-character-set=utf8

[client]
default-character-set=utf8

とか書いておく。

【2】mysqldを起動する

【3】SixApartのドキュメントとか読んで、DBの設定と mt-config.cgi の設定をしておく。
特に、"SQLSetNames 1"が大事。

【4】mt-db-convert.cgi: MTデータベースの相互変換CGIスクリプトから mt-db-convert.cgi をもらってきて、mt.cgiとかのあるディレクトリに置く。

【5】mt-db-convert.cgi実行

てな流れです。

最初から付属している mt-db2sql.cgi はBerkekeyDBからMySQLへデータ移行したときに文字化けするんで、イマイチあてにならない
mt-db-convert.cgi だとうまく行きました。便利ツールを作って公開してくださる方にはホント感謝ですね。

MTカスタマイズ:カテゴリごとに次と前へのリンク作成

じーちゃんです。こんばんわ。

さて、多くのテンプレートでは、MovableTypeの各エントリーのページ上の方に「前のエントリー」と「次のエントリー」へのリンクがあるかと思います。
ところが、デフォルトではこいつはカテゴリのことなんか気にしてくれていないので、単純にエントリーの順番に前と次へのリンクとなっています。

でも、実際のところ、とあるエントリーがとあるカテゴリに属していた場合、そのカテゴリ内での前と次へのリンクが欲しいところ。
ぶっちゃけていうと「サカつく5日記」の次のエントリーも「サカつく5日記」であってほしいわけですよ、ええ!<切実な需要w


というわけで、なんとかしてそれを実現するべくMTのテンプレートタグと格闘していたのですが、結局の所pluginを入れてやらないとならないということが発覚したので、その方法を書き残しておきます。

というか……

http://umia.jp/paso/2006/03/16_1641.php
↑ここ読んで書いてあるとおりにすればオシマイw


でも、上のところがいつまでもあるとは限らないので、内容をこっちにも移しておきまする。


【1】 PreviousNextInCategory を手に入れる
phil ringnalda::Previous and next in category から、PreviousNextInCategory.zipを手に入れる。
↑2行目のあたりの「PreviousNextInCategory」のリンクがzipファイルへのリンクになっている。

【2】解凍したファイルをMTのpluginフォルダに置く
解凍すると「PreviousNextInCategory.pl」ってのができるので、それを
MTメインディレクトリの直下にある"plugin"の下に置く。
↑"GoogleSearch"だの"StyleCather"だののディレクトリがあるところ

【3】 PreviousNextInCategory をちこっと修正
sub _hdlr_entry_previous_in_category {
...
    my $cat = $e->category
                    or return '';
   if ($ctx->stash('category') ne '') {$cat = $ctx->stash('category');}
    my $prev = $e->previous(1);
...
}

sub _hdlr_entry_next_in_category {
...
    my $cat = $e->category
                    or return '';
   if ($ctx->stash('category') ne '') {$cat = $ctx->stash('category');}
    my $next = $e->next(1);
...
}

【4】RebuildPrevNextInCategory.pl を手に入れる
chez sugiから
RebuildPrevNextInCategory.plを手に入れて、PreviousNextInCategory.plと同じ所に置く。

【5】テンプレート修正
エントリーアーカイブのカテゴリごとに前と次へのリンクを表示したいところに、以下を記述。
<MTEntryPreviousInCategory>
<a href="<$MTEntryPermalink$>">« <$MTEntryTitle$></a> |
</MTEntryPreviousInCategory>
<a href="<$MTEntryPermalink archive_type="Category"$>"><$MTEntryCategory$></a>
<MTEntryNextInCategory>
| <a href="<$MTEntryPermalink$>"><$MTEntryTitle$> »</a>
</MTEntryNextInCategory>

【6】エントリーアーカイブを再構築

終了


関連リンク:
同一カテゴリの前後ナビゲーションと自動再構築