| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
■ PHP化しました |
最近ワタシもだんだんとPHPが解るようになってきまして、PHPでなら色々と面白いことができそう→かなり衝動的に、Movable TypeをPHP化しちゃいました。
PHPは「HTMLにスクリプトを埋め込む」型の言語なので、ぶっちゃけた話「ただのHTMLの拡張子をPHPに変更しただけ」でも全然大丈夫→MTなら各ファイルのファイル名や拡張子を任意に指定出来るので、出力ファイルの拡張子を.phpに変更するだけでとりあえずPHP化出来ちゃいます。
で、サーバサイドで処理したいコトがあれば、処理が必要なトコにだけ<?php ?>で囲ってスクリプトを書けばいい→非常にお手軽(^_^)
とりあえずMain IndexはSSI処理のほうが便利なことがあった
*1
のでshtmlのままとし、各種アーカイブをPHP化する事にしました。
■ 書名をずらずらと羅列するスクリプト |
blog.bulknews.netさんのサイドバーには「Now Reading」というハコがあります。現在読んでる本の書名をリンク付きで羅列するハコ。
blog.bulknews.netさんのこのハコはaws.pl - MT plugin for Amazon webservicesというプラグインで実装されてるのですが、コレを見たテキストサイト(非blog)管理者の某氏が
「コレええなぁ。こんなのが簡単に作れるならblogもエエなぁ」
と言ってるのを聞いて、ちょっと考え込んでしまったワタシ。
「確かにこの機能はMTのプラグインで実装されてるけど、これは別にMTのプラグインじゃなくても実装出来る機能な訳で、現状の某氏のトコでも、簡単なアプリケーションとBookMarkletの組み合わせで使えるように出来るんじゃなかろか??」
ということで、実験と勉強を兼ねてPHPで実装してみました次第。
そもそもこのサイトの前身 *1 は、ワタシが買うた本を知人の皆さんに告知→
「こんなの買うたから読みたいヒト居たらワタシんちまで見に来るといいよ」
というサイトだったので、ワタシ的にも使い道がありそうだし。
■ ちょこっと模様替え |
トップページ(Main Index)を中心に、ちょっとだけサイトデザインをいじってみました。正直自分では「もう少し変わるか」と思ってたんすが、出来上がりを見ると大した差にはなってません。
おそらくこれは、特にサイドバー内の要素を殆どテンプレートモジュール=部品化した影響が大きいんだと思います。テンプレートをいじっても使われてる構成部品(モジュール)はほとんど一緒なんで、大きな差が出るはずもない(^_^;)
テンプレートモジュールを使うとメンテナンスがラクだしテンプレートがスッキリして全体の見通しがよくなる→これをやめる気も毛頭無いですし。
今回の改装はARTIFACT ―人工事実―さんの新聞社サイト風テンプレートの影響を多大に受けています。
が、「テンプレートを使わせて頂いた」というよりは「参考にさせて頂いた」だと自分で思う *1 ので、サイドバーには新聞社サイト風テンプレートを使用している旨のリンクを入れてません。
今回はここにその旨を明記し、謝意を表明させて頂くに留めさせていただきたいと思います。どーもお世話になっておりますm(__)m
■ hatena2jsを使いましょう |
「MTのサイドバーにはてなアンテナを埋め込むのにmt-rssfeedを使いたいけど、上手くいかん」
というエントリに対してコメントしようと思ったら、MTが3.0でコメント登録にTypeKey認証を要求して来やがる→この機会にTypeKey登録してもいいんだけどやはり面倒くさい(^^;ので、エントリにて返信しときます。
「サイドバーにはてなアンテナを埋め込みたいだけなのであれば、mt-rssfeedをcronで回すよりもむしろhatena2jsの方がいいですよ」
hatena2jsはPHPスクリプトなんで「PHP、しかもマルチバイト文字列関数(mbstring)が使えるサーバ限定」 *1 ではありますが、この条件を満たせるなら絶対にこっちのほうがラクで効率もいーです。
ご本人がこのエントリを読むかどうかは知らんけど、一応表明するだけは表明しときますな(^_^;)
■ MTのテンプレートを公開する |
最近(主にワタシがMTを勧めた知人関係から:^^;)たまにMT関係の質問を貰うようになったんですが、結構「いちいち聞かなくてもテンプレートを見られればすぐ解る」レベルのことも多いので、テンプレートのバックアップを兼ねて、この機会にプラグインを導入し自動的にテンプレートを公開するようにしてみました。 *1
テンプレートの公開にはMTShowTemplatesプラグインを使います。今回使用したのはバージョン0.3。
ただ、このプラグインはそのままだと日本語がハゲシク化けます。
が
になっちゃうのは、「大意は解る」にしてもバックアップとしてちょっとキビシイ(^^;;
■ 月別アーカイブの表示をコンパクトに |
blogツールであるMovable Typeは登録したエントリーを「アーカイブ」として書庫化してくれるんですが、長い間サイトを動かしてると、結構書庫が溜って来ます。
特に月別アーカイブは
↑こんな感じで(内容など殆ど無いのに:^^;)びろーんと長くなっちゃって、すっげぇ邪魔。
仕方ないので暫く↑こんな感じでプルダウンフォームにしてたんすけど、この方式ではJavaScriptを使わざるをえない→JavxScriptをoffにした端末では使えない&ワタシゃJavaScript嫌い(^^;;なんで、あまり嬉しくないという。
■ 配列からユニークな要素をランダムに取り出す |
「うわ〜。やっぱりPHPは偉いなぁ!」
と非常に感心したので、メモ。
ふと思いついて、このサイトのトップページに「検索語の一覧」みたいのを出そうと思いたちました。検索語自体は既に別の用途で抽出してるので、あまり手間が要らなさそうだし。
ワタシはperlのスキルがまるでない *1 のでMTのプラグインとして実装したりするのはまるで無理→スタンドアロンのPHPスクリプトとして実装を試みます。
とりあえず、検索語をバラして配列にぶっ込みます。検索語に全角空白や改行記号等が含まれてると都合が悪いんで、全角空白を半角空白に置換し、改行を抹殺して配列に入れます。
■ エントリーの特徴的単語を抽出する |
BulkfeedsさんのSimilarity Searchは
Blog エントリに含まれる文章を形態素解析し、特徴的単語を抜き出して、それらの単語で Bulkfeeds の RSS Item 全文検索します。
というものでかなり楽しいアプリケーション *1 なんですが、まま
「なんでこのエントリがココに並ぶんだろう…??」
ということが発生しています。
これはつまり上記の文章を形態素解析し、特徴的単語を抜き出す段階で「特徴的単語」が人間の考えるものと異なる結果なんですが、Bulkfeedsさんのほうで
「Bulkfeedsが特徴的単語と判定した単語」
を取得するAPIが公開され、これを呼び出すCGIを見つけちゃいましたので、早速さくっと組み込んでみました(^_^)