Un petit bout de code pour un nuage de tag en php fait par mes soins ^^
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public function makeCloud() { $array = $this->getTags(); $barriere = array(); $inc = max($array)/$this->levels; $barriere = array(); $barriere[] = array('value' => 0, 'css' => $this->cssClassPrefix.'0'); $float = 0; for($i = 1;$i <= $this->levels;$i++) { $float = $float+$inc; $barriere[] = array('value' => $float, 'css' => $this->cssClassPrefix.$i); } $tagcloud = array(); $previous_value = $barriere[0]['value']; foreach($barriere as $key) { foreach($array as $row => $value) { if($key['value'] >= $value && $previous_value <= $value && !key_exists($row, $tagcloud)) { $tagcloud[$row] = array('tag' => $row, 'cssclass' => $key['css'] ); } } $previous_value = $key['value']; } return $tagcloud; } |
Un petit exemple d’utilisation ici, Exemple de nuage de tag.
Petite precision ligne 2
« $array = $this->getTags(); »
retourne un tableau sous cette forme
Array( [sexe] => 1.74246 [humour] => 1.76121 etc … )
je vous met la fonction juste pour information ^^
1 2 3 4 5 6 7 8 9 10 11 | public function getTags() { $params = array('table' => 'tagcloud', 'fields' => 'tag, count', 'order' => 'count ASC', 'limit' => $this->view_tags); $result = $this->db->select($params); foreach($result as $key) { $tagsArray[$key['tag']] = $key['count']; } return $tagsArray; } |