PHPRO.ORG

Described by some as the "mullet of the internet", the occurance of tag clouds seems to be inversely proportional to the IQ of webmasters who allow them. Great algorithms has been written and formulae touted as better than the rest in what seems to be another holy war. Here we put forward a simple and effective tag cloud that even the most moronic of webmasters could use. I wont bother going into detail on this as I can see only arguements with those who profess a better way. This is akin to saying "I have a better way to trash my site". Argue with an idiot and he will drag you down to his level, and then beat you with experience.

Here is the style sheet we use. This can be seen in this sites style sheet also.

<style type="text/css">
#tagcloud{
        color: #dda0dd;
        font-family: Arial, verdana, sans-serif;
        width:200px;
        border: 1px solid black;
	text-align: center;
}

#tagcloud a{
        color: green;
        text-decoration: none;
        text-transform: capitalize;
}
</style>

And the code to generate this mess is below:


<div id="tagcloud">
<?php
/** this is our array of tags
 * We feed this array of tags and links the tagCloud
 * class method createTagCloud
 */
$tags = array(
        array(
'weight'  =>40'tagname' =>'tutorials''url'=>'http://www.phpro.org/tutorials/'),
        array(
'weight'  =>12'tagname' =>'examples''url'=>'http://www.phpro.org/examples/'),
        array(
'weight'  =>10'tagname' =>'contact''url'=>'http://www.phpro.org/contact/'),
        array(
'weight'  =>15'tagname' =>'quotes''url'=>'http://www.phpro.org/quotes/'),
        array(
'weight'  =>28'tagname' =>'devel''url'=>'http://www.phpro.org/phpdev/'),
        array(
'weight'  =>35'tagname' =>'manual''url'=>'http://www.phpro.org/en/index.html'),
        array(
'weight'  =>20'tagname' =>'articles''url'=>'http://www.phpro.org/articles/'),
);

 
/*** create a new tag cloud object ***/
$tagCloud = new tagCloud($tags);

echo 
$tagCloud -> displayTagCloud();

?>
</div>
</body>
</html>
<?php

class tagCloud{

/*** the array of tags ***/
private $tagsArray;


public function 
__construct($tags){
 
/*** set a few properties ***/
 
$this->tagsArray $tags;
}

/**
 *
 * Display tag cloud
 *
 * @access public
 *
 * @return string
 *
 */
public function displayTagCloud(){
 
$ret '';
 
shuffle($this->tagsArray);
 foreach(
$this->tagsArray as $tag)
    {
    
$ret.='<a style="font-size: '.$tag['weight'].'px;" href="'.$tag['url'].'">'.$tag['tagname'].'</a>'."\n";
    }
 return 
$ret;
}
    

/*** end of class ***/

?>

And to see the beast in action we have included a demo below