はてななどで使われている
タグクラウドを作ってみた。
ぶっちゃけ
PEARのライブラリに存在するんだけどねw
http://pear.php.net/manual/ja/package.html.html-tagcloud.php
ま、車輪の再開発がどうのうこうのって話もありますが、
そこから何かを得ることができれば無駄じゃないはず。
▼ソース
<?php
echo <<<HTML
<style>
ul.tagCloud {
margin: 0;
padding: 0.5em 10px;
line-height: 1;
font-family: Arial, Helvetica, sans-serif;
font-size: 13px;
}
ul.tagCloud li {
margin: 0;
padding: 0;
display: inline;
font-size: 100%; /* ここで相対的に文字サイズを変更 */
}
ul.tagCloud li a {
text-decoration: none;
}
/* タグレベル1~6 */
ul.tagCloud li.level1 a {
font-size: 167%;
color: #db00aa;
font-weight: bold;
}
ul.tagCloud li.level2 a {
font-size: 136%;
color: #e771b4;
font-weight: bold;
}
ul.tagCloud li.level3 a {
font-size: 122%;
color: #bf79b5;
}
ul.tagCloud li.level4 a {
font-size: 114%;
color: #a57c9d;
}
ul.tagCloud li.level5 a {
font-size: 92%;
color: #897c9d;
}
ul.tagCloud li.level6 a {
font-size: 77%;
color: #567d9d;
}
/* オンマウス色 */
ul.tagCloud li a:hover {
color: #000;
}
</style>
HTML;
class Keyword {
private $keyword;
private $url;
private $class;
public function Keyword($keyword, $url, $class) {
$this->keyword = $keyword;
$this->url = $url;
$this->class = $class;
}
public function getKeyword() {
return $this->keyword;
}
public function getUrl() {
return $this->url;
}
public function getClass() {
return $this->class;
}
}
$keywordList[] = new Keyword('Zend Framework', 'http://yahoo.co.jp', 'level2');
$keywordList[] = new Keyword('CakePHP', 'http://yahoo.co.jp', 'level3');
$keywordList[] = new Keyword('symfony', 'http://yahoo.co.jp', 'level1');
$keywordList[] = new Keyword('Ethna', 'http://yahoo.co.jp', 'level6');
$keywordList[] = new Keyword('Mojavi', 'http://yahoo.co.jp', 'level3');
$keywordList[] = new Keyword('SilverStripe', 'http://yahoo.co.jp', 'level2');
$keywordList[] = new Keyword('Seagull', 'http://yahoo.co.jp', 'level6');
$keywordList[] = new Keyword('Joomla!', 'http://yahoo.co.jp', 'level1');
$keywordList[] = new Keyword('Midgard', 'http://yahoo.co.jp', 'level4');
echo "<div style=border: 1px; solid red; width:500px;>";
echo "<ul class=\"tagCloud\">";
foreach ($keywordList as $keyword) {
echo "<li class='" . $keyword->getClass() . "'><a href =" . $keyword->getUrl() .">" .$keyword->getKeyword() ."</a></li>";
}
echo "</ul>";
echo "</div>";
▼実行結果