2004年07月28日

PHP化しました

最近ワタシもだんだんとPHPが解るようになってきまして、PHPでなら色々と面白いことができそう→かなり衝動的に、Movable TypeをPHP化しちゃいました。

PHPは「HTMLにスクリプトを埋め込む」型の言語なので、ぶっちゃけた話「ただのHTMLの拡張子をPHPに変更しただけ」でも全然大丈夫→MTなら各ファイルのファイル名や拡張子を任意に指定出来るので、出力ファイルの拡張子を.phpに変更するだけでとりあえずPHP化出来ちゃいます。

で、サーバサイドで処理したいコトがあれば、処理が必要なトコにだけ<?php ?>で囲ってスクリプトを書けばいい→非常にお手軽(^_^)

とりあえずMain IndexはSSI処理のほうが便利なことがあった *1 のでshtmlのままとし、各種アーカイブをPHP化する事にしました。

続きを読む...

*1 : <!--#exec cgi="〜" -->によるCGIプログラムの実行とか

2004年07月24日

書名をずらずらと羅列するスクリプト

blog.bulknews.netさんのサイドバーには「Now Reading」というハコがあります。現在読んでる本の書名をリンク付きで羅列するハコ。

blog.bulknews.netさんのこのハコはaws.pl - MT plugin for Amazon webservicesというプラグインで実装されてるのですが、コレを見たテキストサイト(非blog)管理者の某氏が

「コレええなぁ。こんなのが簡単に作れるならblogもエエなぁ」

と言ってるのを聞いて、ちょっと考え込んでしまったワタシ。

「確かにこの機能はMTのプラグインで実装されてるけど、これは別にMTのプラグインじゃなくても実装出来る機能な訳で、現状の某氏のトコでも、簡単なアプリケーションとBookMarkletの組み合わせで使えるように出来るんじゃなかろか??」

ということで、実験と勉強を兼ねてPHPで実装してみました次第。

そもそもこのサイトの前身 *1 は、ワタシが買うた本を知人の皆さんに告知→

「こんなの買うたから読みたいヒト居たらワタシんちまで見に来るといいよ」

というサイトだったので、ワタシ的にも使い道がありそうだし。

続きを読む...

*1 : 最初は漢字で「破壊王工務店」だった。ソレ以前にも歴史があるが、黒歴史につきすでに記録抹消済(笑)

2004年07月20日

ちょこっと模様替え

トップページ(Main Index)を中心に、ちょっとだけサイトデザインをいじってみました。正直自分では「もう少し変わるか」と思ってたんすが、出来上がりを見ると大した差にはなってません。

おそらくこれは、特にサイドバー内の要素を殆どテンプレートモジュール=部品化した影響が大きいんだと思います。テンプレートをいじっても使われてる構成部品(モジュール)はほとんど一緒なんで、大きな差が出るはずもない(^_^;)

テンプレートモジュールを使うとメンテナンスがラクだしテンプレートがスッキリして全体の見通しがよくなる→これをやめる気も毛頭無いですし。

今回の改装はARTIFACT ―人工事実―さんの新聞社サイト風テンプレートの影響を多大に受けています。

が、「テンプレートを使わせて頂いた」というよりは「参考にさせて頂いた」だと自分で思う *1 ので、サイドバーには新聞社サイト風テンプレートを使用している旨のリンクを入れてません。

今回はここにその旨を明記し、謝意を表明させて頂くに留めさせていただきたいと思います。どーもお世話になっておりますm(__)m

続きを読む...

*1 : だからダサい。やはりワタシにはデザインのセンスが無い

2004年07月15日

hatena2jsを使いましょう

「MTのサイドバーにはてなアンテナを埋め込むのにmt-rssfeedを使いたいけど、上手くいかん」

というエントリに対してコメントしようと思ったら、MTが3.0でコメント登録にTypeKey認証を要求して来やがる→この機会にTypeKey登録してもいいんだけどやはり面倒くさい(^^;ので、エントリにて返信しときます。

「サイドバーにはてなアンテナを埋め込みたいだけなのであれば、mt-rssfeedをcronで回すよりもむしろhatena2jsの方がいいですよ」

hatena2jsはPHPスクリプトなんで「PHP、しかもマルチバイト文字列関数(mbstring)が使えるサーバ限定」 *1 ではありますが、この条件を満たせるなら絶対にこっちのほうがラクで効率もいーです。

ご本人がこのエントリを読むかどうかは知らんけど、一応表明するだけは表明しときますな(^_^;)

続きを読む...

*1 : 例えばRedHat Linux 8〜9に付いてくるPHPは自分でrpmをリビルドするかソースからコンパイルしないとマルチバイト関数が使えないし、海外サーバだとmb関数は使えないもののほうが多い

2004年07月12日

MTのテンプレートを公開する

最近(主にワタシがMTを勧めた知人関係から:^^;)たまにMT関係の質問を貰うようになったんですが、結構「いちいち聞かなくてもテンプレートを見られればすぐ解る」レベルのことも多いので、テンプレートのバックアップを兼ねて、この機会にプラグインを導入し自動的にテンプレートを公開するようにしてみました。 *1

テンプレートの公開にはMTShowTemplatesプラグインを使います。今回使用したのはバージョン0.3。

ただ、このプラグインはそのままだと日本語がハゲシク化けます。

<div class="sidetitle">
倉庫
</div>

<div class="sidetitle">
AO,E
</div>

になっちゃうのは、「大意は解る」にしてもバックアップとしてちょっとキビシイ(^^;;

続きを読む...

*1 : 現在このサーバは日毎に全ファイルをバックアップしてるので、ファイルを作っておけば最大1ヶ月前までのテンプレートに遡れることになる

2004年07月07日

月別アーカイブの表示をコンパクトに

blogツールであるMovable Typeは登録したエントリーを「アーカイブ」として書庫化してくれるんですが、長い間サイトを動かしてると、結構書庫が溜って来ます。

特に月別アーカイブは

  • 2004年07月
  • 2004年06月
  • 2004年05月

    ↑こんな感じで(内容など殆ど無いのに:^^;)びろーんと長くなっちゃって、すっげぇ邪魔。

    仕方ないので暫く↑こんな感じでプルダウンフォームにしてたんすけど、この方式ではJavaScriptを使わざるをえない→JavxScriptをoffにした端末では使えない&ワタシゃJavaScript嫌い(^^;;なんで、あまり嬉しくないという。

    続きを読む...

  • 2004年07月05日

    配列からユニークな要素をランダムに取り出す

    「うわ〜。やっぱりPHPは偉いなぁ!」

    と非常に感心したので、メモ。

    ふと思いついて、このサイトのトップページに「検索語の一覧」みたいのを出そうと思いたちました。検索語自体は既に別の用途で抽出してるので、あまり手間が要らなさそうだし。

    ワタシはperlのスキルがまるでない *1 のでMTのプラグインとして実装したりするのはまるで無理→スタンドアロンのPHPスクリプトとして実装を試みます。

    とりあえず、検索語をバラして配列にぶっ込みます。検索語に全角空白や改行記号等が含まれてると都合が悪いんで、全角空白を半角空白に置換し、改行を抹殺して配列に入れます。

    $i = 0;

    while (list($num, $line) = each($page)){

    //タグを抹殺&全角空白を半角化
    //表現ゆらぎを低減するため小文字&半角化
    //半角空白で文字列を分解して配列に格納
    $pieces = explode(" ", strtolower(mb_convert_kana(strip_tags($line), "saKV")));

    $l = 0; //ローカルカウンタ

    do {
    //要らん空白と改行を抹殺してから部品を再度配列へ格納
    $input[$i] = ereg_replace("\n|\r|\r\n"," ",trim($pieces[$l]));
    $i++;
    $l++; //ローカル/グローバルの両カウンタをインクリメント

    } while($pieces[$l] != ""); //部品が無くなるまでループ

    }
    続きを読む...

    *1 : 他の事もかなり怪しい(^^;;

    2004年07月01日

    エントリーの特徴的単語を抽出する

    BulkfeedsさんのSimilarity Search

    Blog エントリに含まれる文章を形態素解析し、特徴的単語を抜き出して、それらの単語で Bulkfeeds の RSS Item 全文検索します。

    というものでかなり楽しいアプリケーション *1 なんですが、まま

    「なんでこのエントリがココに並ぶんだろう…??」

    ということが発生しています。

    これはつまり上記の文章を形態素解析し、特徴的単語を抜き出す段階で「特徴的単語」が人間の考えるものと異なる結果なんですが、Bulkfeedsさんのほうで

    「Bulkfeedsが特徴的単語と判定した単語」

    を取得するAPIが公開され、これを呼び出すCGIを見つけちゃいましたので、早速さくっと組み込んでみました(^_^)

    続きを読む...

    *1 : 最近とてつもなく重く、無反応が日常化してたりもしますが(^^;;