2008年7月29日火曜日

MT Perl APIをいじってみた

MovableTypeを外部からいじるのに役立つモジュールがある。
MT Perl APIといって、mt/libのなかに.pm形式で色々入っている。
携帯用に表示するスクリプトとして有名なMT4iなどはこれを駆使して作られている。

とある理由でこいつをいじっていたら、
No ObjectDriverとかいうエラーが…
なんだろうと調べていたらどうやら解決。
my $mt = MT->new( Config => "/home/hoge/public_html/mt/mt-config.cgi");
とか書いて、Configからデータベースへの接続設定とかもろもろを読み込ませる必要がある模様。

MT4iのソースコードとかSixApartのサンプルソースとか読んで分かったけど
これリファレンスとかの冒頭に書いといて欲しい…

2008年7月25日金曜日

ネット商取引完全終了のおしらせ

まぁ対策をしていればそんなに怖くないのだけれど…

DNSの脆弱性がかなりやばいようです。

詳細はコチラ
http://japan.zdnet.com/sp/feature/07zeroday/story/0,3800083088,20377716,00.htm


何が起こっているのか分からない人のために、最も具体的でヤバい例を紹介すると…

Aさんが普段ネットバンク(あるいはAmazonなど)にアクセスするときは

Aさん - ebank.co.jp(イー●ンク銀行)
という形でつながっているんですが、この脆弱性をつついてちょっといじると
Aさん - ebank.co.jp(クラッカー)
というつなぎかたに変えてしまうことが可能になります。

すると、クラッカーがイー●ンク銀行のサイトとソックリなサイトを作っておけば
Aさんはパッと見それが正しいサイトだと思い込んでパスワードを入力してしまうわけです。


ということでGIGAZINEで公開されてる
http://gigazine.net/index.php?/news/comments/20060720_opendns/
OpenDNSというのを使ってみることにした。

これを使えば当面安心の模様。

musu-bi.jp

いつも割りのいいバイトをさせてくださっているドサナイテさんのお仕事で
インファントマッサージをしているむすびというお店のサイトのコーディングをしました。

今回(俺はそこまですごいとは思っちゃいないのですが)好評だったのは、エントリのプライマリカテゴリが合体することで、どこのメニューからたどった情報なのかが分かる、という機能。
この仕組みが発生したいきさつはこんな感じ
「デザイナーさんがPDFを送ってくる」

「俺が『なんかツマンナイデザインだな…』という様な事を言う」

「デザイナーさんが『じゃあこれでどうだゴルァ』と、コーディングが難しそうな課題を出してくる」

「俺が『ほほう、やってやろうじゃねえか!』と実装」

本当はこんなけんか腰じゃないけど、だいたいこんな感じ。


さてさてこのブログは別に日記を書いたり被リンクを稼いだりするのが目的ではなく
技術系の情報共有が目的なので、こいつの実装方法を書こうというわけ。

まずこのブログの仕様から
  • システムはMovable Type 3.35
  • PHP4で拡張子もphpに変更済み
  • 左のメニューはカテゴリからの自動生成
で、CSSで実装するためにメニューのli要素に必要なClassは
  • 現在のカテゴリを示す部分にはcurrent
  • 一番上で、現在のカテゴリを示す部分にはさらにcurrentTop
この2つだけ。あとはCSSをがんばって書けば何とかなる。

じゃあどうやって実装してるかというと
MTSubCategoriesでカテゴリ一覧表示しているので、MTSubCatIsFirstとMTElseを使うとカテゴリが一番上か一番上で無いかの条件分岐が出来る。
でもって、各アーカイブであらかじめPHP上の変数にMTCategoryLabelあたりを保存するようにしておけば
幸いメニューはソースコード上、その後に来るのでPHPのif文で分岐すれば完成。