まとめ ブログ ダウンロード 掲示板 メール

れぶろぐ

< 前月 翌月 > 最新


2009-01-01 (木)

PukiWiki 用プラグイン geshi, ajaxtree, treeview 1.3 を公開

あけましておめでとうございます。今年もよろしくお願いします。

昨年に引き続き、お年玉代わりに、PukiWiki 関連の品の新バージョンを公開します。 以前のバージョンからの変更点は以下の通りです。

  • geshi.inc.php プラグイン
    • file オプションを追加
    • GeSHi の GESHI_HEADER_PRE_TABLE モードに対応
    • 不要な flock(), ignore_user_abort() を削除
  • ajaxtree.inc.php プラグイン
    • キャッシュのファイル名の形式を変更
    • JavaScript のコードがグローバル名前空間を汚染しないように変更
    • 不要な ignore_user_abort() を削除
  • treeview.inc.php プラグイン
    • JavaScript のコードがグローバル名前空間を汚染しないように変更
    • 不要な ignore_user_abort() を削除
  • get_existpages() の高速化パッチ
    • get_existpages() が一度呼ばれたら static 変数にリストを保存しておくように変更
    • キャッシュに保存する前に、ページ名のリストを ksort() でソートしておくように変更
    • 不要な flock(), ignore_user_abort() を削除
    • コードの整理

まだ他にも用意していたのですが、時間的に間に合わなかったので、それらはまた今月中にでもリリースします。

Tags: PukiWiki | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2009-01-05 (月)

Google Chart API の円グラフで開始角度が指定できるようになった

chp というパラメータで開始角度を指定できるようになったそうです。

ただし試してみたところ、3D の円グラフだと表示がおかしくなりました。 あと、角度はなぜかラジアンで指定する必要があります。

今作っている「だれでもアンケート」では、自作のグラフライブラリを使っているのですが、 この辺の問題が解決したら Google Chart API に乗り換えることも検討してみたいです。

Tags: Google | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2009-01-14 (水)

Whatever:hover の :focus 擬似クラスへの対応について

書くのを忘れていましたが、 Whatever:hover (通称 csshover.htc) のバージョン 3 がリリースされています。 変更点はこんな感じです。

  • Ajax で読み込んだソースにも対応
  • onmouseover, onmouseout の代わりに onmouseenter, onmouseleave を使用 (参考: onmouseout IE flickering problem)
  • ソースコードの整理

ただし、バージョン 2.02 と比較すると、IE6 で :focus が機能しなくなっています。 ちなみに csshover2.htc の場合は、IE7 で :focus が機能しないので、

  • csshover3.htc → IE6 で :focus が効かない
  • csshover2.htc → IE7 で :focus が効かない

という悩ましいことになっています。

私は IE7 でも :focus が機能する csshover2.htc の改造版 を使っているので、 それをそのまま使い続けてもいいかなという感じなのですが、 もし真面目に対応しようとするのなら、

  • IE7 以降では、csshover3.htc を使う
  • IE6 以下では、csshover2.htc を使う

という動作にするのがいいかもしれません。 そのためには、例えば、

<head>
	......

<!--[if IE]>
	<link rel="stylesheet" type="text/css" href="/css/ie.css" />
<![endif]-->
<!--[if lte IE 6]>
	<link rel="stylesheet" type="text/css" href="/css/ie6.css" />
<![endif]-->

</head>

のように場合分けしておいて、

  • ie.css
body {
	behavior: url(/js/csshover3.htc);
}
  • ie6.css
body {
	behavior: url(/js/csshover2.htc);
}

のようにすると、希望の動作にすることができます。

Tags: JavaScript | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2009-01-15 (木)

jQuery 1.3 がリリース

2009/01/14 は、jQuery の3才の誕生日なんだそうです。 それに合わせて jQuery のバージョン 1.3 がリリースされました。

変更点の詳細については、他の人がいろいろ書いてくれると思うので、 他の人が書かなさそうなことを、上のリリースノートから1点だけ書いておきます。

早速というか、早々と Google の AJAX Libraries API から jQuery 1.3 が利用できるようになっています。 以下の URL を指定することで、jQuery を高速に読み込めます。

1、2週間の内に jQuery 1.3.1 をリリースする予定、とも書かれているので、 切り替えるのはそれからでも遅くない、という気がしますが、 まずは今まで使用していたプラグインやコードが動くかどうか試してみようと思います。

Tags: JavaScript | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2009-01-20 (火)

Zend Framework 1.7.3 がリリース

アナウンスはまだありませんが、Zend Framework のバージョン 1.7.3 がリリースされました。 バージョン 1.7.2 からの変更点は、以下のページを見て下さい。

たいした変更は無いようですが、Zend_Mail がらみの変更でこんなのがありました。

文字化け対策として、エンコードの方法を設定できるようにしたみたいです。

このエントリの続き: 2009-01-24 (土)
Tags: Zend | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2009-01-23 (金)

Zend Framework で出力文字エンコーディングを変更する

携帯に対応するために、HTTP 出力をシフト JIS に変換したいと思ったので、 Zend Framework ではどうやればいいのか調べてみました。 マニュアルにはほとんど説明が書かれていないのですが、 Zend_View には Zend_View_Filter という output filter の機能が実装されているので、これを利用します。

まず、実際の処理を行う Sjis.php というこんなファイルを作り、 Revulo/View/Filter のようなディレクトリに配置します。

<?php

class Revulo_View_Filter_Sjis
{
    public function filter($value)
    {
        header('Content-Type: text/html; charset=Shift_JIS');
        return mb_convert_encoding($value, 'SJIS-win', 'auto');
    }
}

text/html でいいのかとか、SJIS-win でいいのかとか、auto でいいのかとか、いろいろツッコミどころはあると思いますが、 この辺は万能な設定はおそらく存在しないので、場合によって変更して下さい。

それで、あとはブートストラップの index.php で、

$view->addFilterPath('Revulo/View/Filter', 'Revulo_View_Filter');

のように設定しておいて、Shift_JIS で出力したい画面のアクションコントローラで、

$this->view->addFilter('Sjis');

のようにフィルタを登録すればよいです。

なお、こういう場合は、普通は mb_http_output() とmb_output_handler() を使うと思いますが、 Zend_View は内部ですでに ob_start() を使っているので、 ob_start() の入れ子みたいになってしまい、うまくいかないんじゃないかという気がします。

Tags: PHP | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2009-01-24 (土)

Zend Framework 1.7.3 patch 1 がリリース

Zend Framework 1.7.3 からの変更点は、

この2つみたいです。実質、1箇所だけです。と思ったら、あれ? これもそうか?

念のため差分を取ってみましたが、Zend_* のライブラリの方には変更はありません。 ZendX_JQuery_* の方だけ修正されているようです。

Tags: Zend | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2009-01-25 (日)

PukiWiki 用プラグイン title 1.0 を公開

title.inc.php は、PukiWiki Plus! の TITLE: タグの機能をプラグイン化して、 本家の PukiWiki でも使えるようにしたものです。

もう少し詳しく書くと、こんな機能があります。

  • 各ページのタイトルを、ページ名とは独立に設定できます
  • <title> タグと <h1> タグの部分のタイトルを、別々に設定できます
  • PukiWiki の本体やスキンの書き換えは不要です

小物プラグインですが、なかなか有用だと思うので使ってやって下さい。

Tags: PukiWiki | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2009-01-29 (木)

PHP スクリプトは BOM 付き UTF-8 で書いてはいけない

ここのところ、ずっと悩んでいたバグがあったのですが、 ようやく原因が分かったので、その顛末を。

header() を使ってレスポンスヘッダを出力するコードを書いていたのですが、 Live HTTP headers なんかを使って見てみても、 なぜか指定したレスポンスヘッダが出力されていません。 よくある話として、header() の前になにかゴミを出力してしまっているのでは? と疑ったのですが、 チェックしてみてもその気配は無し。

原因が分からず、しばらく放置していたのですが、 ふとひらめいて、バイナリエディタを使ってスクリプトのファイルを見てみました。 あれ? なに、この先頭の EF BB BF って? いつのまにか BOM が付いているけど、もしかしてこれがまずいのか?

(…考え中…)

そうか! BOM 付き UTF-8 で書くと、header() が効かなくなるのか!

そうなんです。

(<EF> <BB> <BF>)
<?php

PHP のソースコード

?>

みたいになっちゃっているので、 まず最初に EF BB BF の3バイトを画面に出力することになり、 header() はまったく効かなくなってしまうのです。 BOM なしの UTF-8 で保存し直してみたところ、あっさり動きました。

他の言語なら、こういう変な現象は起きないのでしょうけれど、 PHP は HTML 内に埋め込むスクリプト言語、という側面があるので、これは仕方ないんでしょうね。

Tags: PHP | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

追記