diff -r de56132c008d -r bdac73ed481e includes/tagcloud.php --- a/includes/tagcloud.php Sun Mar 28 21:49:26 2010 -0400 +++ b/includes/tagcloud.php Sun Mar 28 23:10:46 2010 -0400 @@ -21,141 +21,141 @@ class TagCloud { - - /** - * The list of words in the cloud. - * @var array - */ - - var $words = array(); - - /** - * Constructor. - * @param array Optional. An initial list of words, just a plain old array. - */ - - function __construct($words = array()) - { - if ( count($words) > 0 ) - { - foreach ( $words as $word ) - $this->add_word($word); - } - } - - /** - * Adds a word into the word list. - * @param string The word to add - */ - - function add_word($word) - { - $word = sanitize_tag($word); - - if ( isset($this->words[$word]) ) - $this->words[$word] += 1; - else - $this->words[$word] = 1; - } - - /** - * Returns the total size of the cloud. - * @return int - */ - - function get_cloud_size() - { - return array_sum($this->words); - } - - /** - * Shuffles the cloud. - */ - - function shuffle_cloud() - { - $keys = array_keys($this->words); - if ( !$keys || empty($keys) || !is_array($keys) ) - return null; - - shuffle($keys); - if ( !$keys || empty($keys) || !is_array($keys) ) - return null; - - $temp = $this->words; - $this->words = array(); - foreach ( $keys as $word ) - { - $this->words[$word] = $temp[$word]; - } - - unset($temp); - } - - /** - * Returns the popularity index (scale class) for a 1-100 number. - * @param int - * @return int - */ - - function get_scale_class($val) - { - $ret = 0; - if ( $val >= 99 ) - $ret = 1; - else if ( $val >= 70 ) - $ret = 2; - else if ( $val >= 60 ) - $ret = 3; - else if ( $val >= 50 ) - $ret = 4; - else if ( $val >= 40 ) - $ret = 5; - else if ( $val >= 30 ) - $ret = 6; - else if ( $val >= 20 ) - $ret = 7; - else if ( $val >= 10 ) - $ret = 8; - else if ( $val >= 5 ) - $ret = 9; - return $ret; - } - - /** - * Generates and returns HTML for the cloud. - * @param string Optional. The CSS class applied to all tags. Can be "normal" or "small". Defaults to "normal". - * @param string Optional. The alignment for the div. Defaults to "center". - * @return string - */ - - function make_html($span_class = 'normal', $div_align = 'center') - { - global $lang; - $html = array(); - $max = max($this->words); - $size = $this->get_cloud_size(); - $inc = 0; - if ( count($this->words) > 0 ) - { - foreach ( $this->words as $word => $popularity ) - { - $inc++; - $word = htmlspecialchars($word); - $percent = ( $popularity / $max ) * 100; - $index = $this->get_scale_class($percent); - $newline = ( $inc == 5 ) ? "
" : ''; - ( $inc == 5 ) ? $inc = 0 : null; - $url = makeUrlNS('Special', 'TagCloud/' . htmlspecialchars($word)); - $popstring = ( $popularity == 1 ) ? $lang->get('pagetools_tagcloud_tip_popularity_one') : $lang->get('pagetools_tagcloud_tip_popularity_plural', array('popularity' => $popularity)); - $html[] = "$word"; // $newline"; - } - } - $html = '
' . implode("\n", $html) . '
'; - return $html; - } - - + + /** + * The list of words in the cloud. + * @var array + */ + + var $words = array(); + + /** + * Constructor. + * @param array Optional. An initial list of words, just a plain old array. + */ + + function __construct($words = array()) + { + if ( count($words) > 0 ) + { + foreach ( $words as $word ) + $this->add_word($word); + } + } + + /** + * Adds a word into the word list. + * @param string The word to add + */ + + function add_word($word) + { + $word = sanitize_tag($word); + + if ( isset($this->words[$word]) ) + $this->words[$word] += 1; + else + $this->words[$word] = 1; + } + + /** + * Returns the total size of the cloud. + * @return int + */ + + function get_cloud_size() + { + return array_sum($this->words); + } + + /** + * Shuffles the cloud. + */ + + function shuffle_cloud() + { + $keys = array_keys($this->words); + if ( !$keys || empty($keys) || !is_array($keys) ) + return null; + + shuffle($keys); + if ( !$keys || empty($keys) || !is_array($keys) ) + return null; + + $temp = $this->words; + $this->words = array(); + foreach ( $keys as $word ) + { + $this->words[$word] = $temp[$word]; + } + + unset($temp); + } + + /** + * Returns the popularity index (scale class) for a 1-100 number. + * @param int + * @return int + */ + + function get_scale_class($val) + { + $ret = 0; + if ( $val >= 99 ) + $ret = 1; + else if ( $val >= 70 ) + $ret = 2; + else if ( $val >= 60 ) + $ret = 3; + else if ( $val >= 50 ) + $ret = 4; + else if ( $val >= 40 ) + $ret = 5; + else if ( $val >= 30 ) + $ret = 6; + else if ( $val >= 20 ) + $ret = 7; + else if ( $val >= 10 ) + $ret = 8; + else if ( $val >= 5 ) + $ret = 9; + return $ret; + } + + /** + * Generates and returns HTML for the cloud. + * @param string Optional. The CSS class applied to all tags. Can be "normal" or "small". Defaults to "normal". + * @param string Optional. The alignment for the div. Defaults to "center". + * @return string + */ + + function make_html($span_class = 'normal', $div_align = 'center') + { + global $lang; + $html = array(); + $max = max($this->words); + $size = $this->get_cloud_size(); + $inc = 0; + if ( count($this->words) > 0 ) + { + foreach ( $this->words as $word => $popularity ) + { + $inc++; + $word = htmlspecialchars($word); + $percent = ( $popularity / $max ) * 100; + $index = $this->get_scale_class($percent); + $newline = ( $inc == 5 ) ? "
" : ''; + ( $inc == 5 ) ? $inc = 0 : null; + $url = makeUrlNS('Special', 'TagCloud/' . htmlspecialchars($word)); + $popstring = ( $popularity == 1 ) ? $lang->get('pagetools_tagcloud_tip_popularity_one') : $lang->get('pagetools_tagcloud_tip_popularity_plural', array('popularity' => $popularity)); + $html[] = "$word"; // $newline"; + } + } + $html = '
' . implode("\n", $html) . '
'; + return $html; + } + + } ?>