検索窓

WordPress を使っているサイトを見てまわると、サイドバーに記事の検索を行なうための窓があることがしばしばある。単語を入力する窓はあっても submit のボタンがないこともあり、ああそれでもいいんだっけなどと思っていた。

「検索」ボタンがなくフォームだけがポッカリ開いていると、それが何を意味しているのかわからないので、そのフォームに「Search…」などと表示させておきたい。しかも単語を入力するときにはその表示を消したい、と思って調べたのでメモしておく。

見つけたこの例の type=”search” は Mac の Safari 限定なので普通は type=”text” にする。ついでに文字の色を変化させる。

<input type="text" name="s" id="s" onfocus="if(this.value=='(検索)'){this.className='word'; this.value='';}" onblur="if(this.value==''){this.className='prompt'; this.value='(検索)';}" class="prompt" value="(検索)" />

文字の色はスタイルシートで、入力される検索語をクラス word で、「(検索)」と表示させるときをクラス prompt で、

input.prompt { /* 入力を促す Search... など(フォーカスすると消える)の色 */
	color: #999999;
}
input.word { /* 検索語の色 */
	color: #000000;
}

のように指定する。

subversion

ようやく CVSからsubversionに移行した。自分一人の環境だし、滅多にコードも書かないので何のために?というところだが、まあいろいろとファイルの管理などを。出遅れた分あちこちに情報があるので割とスムーズに移行できそうだ。 しかしいくつかの不満はある(使い手が慣れていないからかもしれないが)。ひとつは、パーミッションが保存されないこと。CVSでは作業スペースでパーミッションを変更しておいた状態で update しても(内容はupdateされても)パーミッションが変わることはなかった。subversionでは、いったんファイルを消してから新たに作ったかのように、元のパーミッション(その時点の umaskにしたがって)になってしまう。group の変更も元に戻ってしまう。webページのように、webサーバから見えるようにしてチェックしつつ作業をしている場面では面倒くさい。tarを使うときのようにパーミッションなどが保存されるといいのだが。 もうひとつの問題は日本語の文字化け。CVSより格段によくなっているけれども。 まず、ここの環境では /etc/environment で LANG=ja_JP.EUC-JP となっているしその中の自分の環境でも LANG=ja_JP.EUC-JP としている。普段使いのエディタ Emacs も (set-default-coding-systems ‘euc-japan) だ。そこで /var/lib/trac/(リポジトリ)/conf/trac.ini で
  [trac]
  default_charset = euc-jp
とした。 ファイルの中身がeuc-jpなら何の問題もないのだが、だんだんutf-8のものも出てきた。するとTracで閲覧するときに化けてしまう。これは TracJaの説明にもあるように、
Subversion リポジトリに格納しているファイルのエンコードが、ファイルごとに違う場合、 Subversion 側で各ファイルの svn:mime-types 属性にcharset を正しく設定することで解消します (trac-0.8.2 以降):
で解決した。phpだからといって mime-typeを application/phpとするのはやりすぎで、閲覧することを考えると text/* にしておくのが吉。text/x-php としてみた。text/plain がもっとも無難だとは思うが。 Emacsでは[[psvn.elを使う。編集中に差分を見たいとき = (差分)とすると、euc-jpのバッファにutf-8を表示しようとして文字化けしてしまう。E (Ediff)だと化けずに表示できるので、こちらで見ることにしよう。

Tam Attachmentプラグインと PJW Mime Configプラグイン

画像以外のアップロードファイルを管理するのに便利なものを探してみた。差分ファイル diff をそのまま置くことができなかったのだ。そこで[[http://blog.ftwr.co.uk/wordpress/mime-config/|PJW Mime Configプラグイン]]でアップできるファイルの種類を増やし、[[http://ideasilo.wordpress.com/2006/08/10/tam-attachment/|Tam Attachmentプラグイン]]で管理できるようにした。 ところで Firefoxでは diff ファイルを開こうとすると、ブラウザでそのまま開いてはくれず外部アプリケーションを要求する。[[http://forum.mozilla.gr.jp/?mode=al2&namber=30029&rev=&&KLOG=190|もじら組フォーラム]]に既に議論があった。ちょっと眺めるだけなのだからブラウザ内で表示してくれてもよさそうなものだが。アップする際にファイル名を ***.diff.txt として誤魔化せばいいのか。しかしあまりいい気持ちではないな。

Inline Google Maps Plugin改

[[http://blog.macfeeling.com/archives/2239|MacFeling]]で紹介されているのを見つけて、 [[//pasero.net/~mako/blog/s/35#inline_google_maps_plugin|先日書いたinline google maps plugin]]—WordPressの個々の記事やページにGoogleマップを置ける—の「ひとつの地図にひとつのマーク」という制約を改造して、複数のマークを置けるようにしてみた。書式の互換性がなくなってしまったので、ファイル名を gmaps-hm.php と変えておいた。 * [[//pasero.net/~mako/blog/gmaps-hm/|gmaps-hm]] オリジナルのほうは「ひとつの地図にひとつのマーク」をより便利に使えるように [[http://macdiggs.com/index.php/2006/10/13/inline-google-maps-for-wordpress-version-2/|v2.0]]へと進化しているが、こちらは v1.1改。 [gmap name=’20061015′ lat=’38.27501322074987′ lng=’140.83431959152222′ zoom=’12’] [gmark lat=’38.27501322074987′ lng=’140.83431959152222′ desc=’ひとつの場所’ label=’P’] [gmark lat=’38.281717′ lng=’140.869314′ desc=’もうひとつの場所’ label=’Q’] [/gmap] === WP-SimpleGmaps ==== 似たようなプラグイン [[http://aoina.com/archives/45|WP-SimpleGmaps]]というのを見つけた。でもこれもひとつの地図にひとつのマークのようだ。

wp-slimstat

アクセス解析プラグインを wp-shotstatから[[http://www.duechiacchiere.it/wp-slimstat/|wp-slimstat]]に変えてみる。そこから 0.9.2を。 日本語化ファイルは [[http://bd.dotted.jp/archives/90/|BirDesign’]]さんのところから 0.9.1 用のをそのままいただいた。 ところが WordPress database error: [You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’ at line 3] SELECT `tp`.`post_title` FROM `wp_posts` AS `tp` WHERE (1 = 1) AND `tp`.`ID` = の表示が大量に出る。検索して[[http://www.myblackroom.com/index.php/30/statistics-for-your-blog/|対処法]]を発見した (中ほどの #1 Lots of database errors の項)。permalinkを使っていると出るらしい。この対処法で解決した。 ついでに[[http://equine.ddo.jp:8080/~takeshi/diary/?p=1044|wp-slimstatの高速化]]という情報も発見したが、0.9.2では既に対策済のようだ。

Google マップを使う

WordPress でGoogle マップを使ってみる。

Plug ‘n’ Play Google Map

新しい版はPlug ‘n’ Play Google Map。旧版の日本語の解説がある

マップ型の目次といった使い方になるのか。このサイトのマップ

記事だけでなく、(静的)ページのマークも地図に載るように改造した[1]

ついでに、ページのマークは「アルファベット付」マークになるようにした。Tutorialのソースを参考に切り貼り。印刷時にもアルファベット付マークになるように printImagemozPrintImage も設定するようにした。印刷用のマーク(例: “A”)は

http://www.google.com/mapfiles/markerAie.gif
http://www.google.com/mapfiles/markerAff.gif

とか言う名前であった。

Inline Google Maps Plugin

“目次”マップではなく、個々の記事にマップを貼りたい。wp-dokuwikiプラグインに付属しているはずなのだが、うまく動かない。

Inline Google Maps Plugin というのがあった。これは簡単そう。

[gmap name='20061007' lat='38.27501322074987' lng='140.83431959152222' zoom='12' desc='プラグインのテスト']
[gmark lat='38.27501322074987' lng='140.83431959152222' desc='プラグインのテスト']
[/gmap]

ひとつのマップにひとつのマークしか置くことができない。

コメントにあるように、当分はこのままらしい。

  1. (静的)ページにも緯度経度情報を入力できるようにGeo プラグインもちょっと改造した。

NICとkernel 2.6.18

Intel PRO/1000GT

オンボードのLANチップがどうにも調子が悪く、新たにIntel PRO/1000GTを差した。で、使わないオンボードLANとieee1394をBIOSで殺しても、新しいNICは eth0 にはならず eth2 としてしか認識してくれない。

dmesg を見ると、

...
e1000: 0000:00:0d.0: e1000_probe: (PCI:33MHz:32-bit) 00:0e:0c:xx:xx:xx
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
...

なのに、/etc/network/interfacesには eth0やeth1と書いてもだめで、

auto eth2
iface eth2 inet static
...

としないと設定できない。どうしてだろう。

kernel 2.6.18

さて上記に伴って、まずvmplayerでネットが使えなくなってしまい、vmware-config.pl もカーネルとヘッダの情報が云々…でできないという状態だったので、思いきって sid の linux-image-2.6.18-1 に入れ換えてからやることにした。

vmplayerもすっかり入れ換えて、これは動くようになった。

別に入れているモジュールも入れ直し。nvidia-kernel-sourceは特に問題なし。shfs-sourceはコンパイルできず。バグ情報を見つけて、shfs-0.35-6-2.6.18.diffのパッチを当ててようやくできた。

e1000モジュールはカーネル同梱のもので動いているのでそのまま。というか新しいものを持ってきてコンパイルしようとしたが、まずバージョン情報を取得できず、これは2.6.18では UTS_RELEASE が include/linux/version.h と別になって include/linux/utsrelease.h になっているからのようだ。で、Makefileを書き換えてみたのだが、今度は

error: 'struct skb_shared_info' has no member named 'tso_size'

のエラーが出て失敗。e1000_main.cの’tso_size’を’gso_size’に書き換えればいいというのを見つけて、これでコンパイルできた。