« IT英語のナゾ | メイン | [悼] 米原万里さん »

PEAR HTML_TagCloud Package Draft Proposal!

PerlのHTML::TagCloud::ExtendedのPHP版を作成し、PEARにProposalしてみました。(まだDraft。そしてまだ運用実績はありません。)

CPANにはExtendedじゃないのもあるのですが、Extendedのほうが時間経過を表現できたりして高機能です。

HTML::TagCloud::ExtendedがみごとなPerl OOしてたので、比較的容易に移植することができました。

ただホットタグ機能や設定用変数を渡すとこなど、いくつかの機能は移植しきれてません。
またtimestampの引数をはじめからUnixタイムスタンプにしたり、時間指定しなかった場合、latestとして扱うなど、いくつかの変更を加えています。

もうちょっとコードをきれいにして、コメント書いて、ドキュメント作って、Bugをとって、package.xmlをまとめて、PEARの色表現ルールにも対応して今月中にはPEPrフェーズに進みたいなぁ。package.xmlの書き方、わからん、とか思ってたら、渡りに船で上鍵さんが調査してるみたいだし。なんかいろいろ追い風が吹いているかんじです。

ソースコードはこちら
サンプルコードはこんな感じです。


<?php
// $Id:$

require_once '../TagCloud.php';

$tags =& new HTML_TagCloud();
$tags->addElement('PHP','http://www.php.net'39strtotime(20060315000000));
$tags->addElement('XML','http://www.xml.org'21strtotime(20060515000000));
$tags->addElement('Perl','http://www.xml.org'15strtotime(20060215000000));
$tags->addElement('PEAR','http://pear.php.net'32strtotime(20060415000000));
$tags->addElement('MySQL','http://www.mysql.com'10strtotime(20060501000000));
$tags->addElement('PostgreSQL','http://pgsql.com'6strtotime(20051201000000));

print 
$tags->buildALL();

?>


タイムスタンプを省略したり、まとめて配列をそのまま渡せるようにもしてみた。


<?php
// $Id:$

require_once '../TagCloud.php';

$tags =& new HTML_TagCloud();
$name 'a';
// set a item without timestamp
$tags->addElement($name'#'20);
foreach(
range(0,10) as $i){
    
$arr[$i]['name'] = $name;
    
$arr[$i]['url']  = '#';
    
$arr[$i]['count'] = $i;
    
$name++;
}
// set many item at once
$tags->addElements($arr);
$css $tags->buildCSS();
$taghtml $tags->buildHTML();
?>



いや,勢いって大事ですな。

HTML::TagCloud::ExtendedのAUTHORであるLyo Katoさんに感謝。
これを作る機会になった某プロジェクトに感謝。





トラックバック

このエントリーのトラックバックURL:
http://catbot.net/MTOS4/mt-tb.cgi/57

この一覧は、次のエントリーを参照しています: PEAR HTML_TagCloud Package Draft Proposal!:

» PHPでタグクラウドを生成する方法(後編) – タグの生成- 送信元 携帯サイトをつくろう。
前回に引き続きPHPタグクラウドの作成方法を紹介します。 後編では重み付けを行なったワードに対し、タグクラウドを表示させます。   既にライブラリもいくつか開発されてまして有名どころでは『PEAR::HTML_TagCloud』、『Zend_Tag_Cloud』などがあります     PEAR::HTML_TagCloud   PEARとして公開されているライブラリです。 2009年8月20日現在まだバージョンが0.2.3という事で正式なものではありませんが十分使えます。     使用例 requ... [続きを読む]

コメント (7)

halt:

パッケージの作り方はEthnaのCVSにあるスクリプトを参考にしてください。
コマンド一発でpackage.xml作れるようになってます。

これですね。ありがとうございます。作るときには使ってみます。
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/ethna/ethna/bin/

tumf:

遊んでみました。なんか驚くほど簡単に作れて感激です。

ありがたく使わせてもらっていますが、一点気になる箇所があるのでご報告いたします。

初期化時に、渡している$fontsizerangeを利用できていないのではないかと思われます。
既にお気づきであればご容赦ください。

一応、パッチを作ってみてみました。
http://satoshi.kinokuni.org/tech/php/TagCloud.patch

nikunokiさん
ありがとうございます。
この件、PEARでもコメントもらってまして修正しています。

ちなみに最新版はhttp://catbot.net/src/HTML_TagCloud-0.0.2.tgzになります。PEARで新しいパッケージはPHP5専用しか受け付けないよ、とのことで、PHP5ネイティブになっているので、アップデートできまないかもしれませんが...

最新版のご連絡ありがとうございます。

ちなみに、こちらの環境はphp4.4ですが、
アップデートするとやはり動きませんでした。
protectedなりprivateなりの可視性の宣言でコケました。
残念。

shin:

そろそろshomaさんのはvoteフェーズですか?

私のはコメントがないのに痺れを切らしてしまい、自分のパッケージにコメントしてしまいました。技術的には、私も明日からvoteフェースに行けるので。