Спрятать колонку

Drupal. Облако тегов

Большого смысла огород городить в этом посте нет. Приведу код.

<?php
	$fsMax = 180;
	$fsMin = 80;
	$dicts = array(1, 2, 3);
	$output = '';
	foreach($dicts as $dict){
		if ($output <> '') $output .= '<br/><br/><hr><br/>';
 
		$sql = "select max(v.term_count) max_count, min(v.term_count) min_count, t.name from (select td.tid, count(tn.tid) term_count from {term_data} td left join {term_node} tn on td.tid = tn.tid where td.vid = $dict group by td.tid) v, (select name from {vocabulary} where vid = $dict) t group by t.name";
		$res = db_query($sql);
		$vals = db_fetch_object($res);
		$max = $vals->max_count;
		$min = $vals->min_count;
		$name = $vals->name;
		$factor = ($min == $max ? 0 : ($fsMax - $fsMin) / ($max - $min));
 
		$orderBy = 't_data.name';
		$orderBy = 't_count desc';		
		$sql = "select t_data.name, t_data.tid, count(t_node.tid) t_count from {term_data} t_data left join {term_node} t_node on t_data.tid = t_node.tid where t_data.vid = %d group by t_data.name, t_data.tid order by %s";
		$res = db_query($sql, $dict, $orderBy);
		$tags = '';
		$has_terms = false;
		while ($term = db_fetch_object($res)){
			$size = $fsMin + ($term->t_count - $min) * $factor;
			$style = "font-size:$size%";
			$tags .= l($term->name, 'taxonomy/term/' . $term->tid, array('attributes' => array('style' => $style))) . " ";
			$has_terms = true;
		}
		$output .= "<h1>$name</h1> <br/>$tags";
 	}
 	if (!empty($output)) return $output;
?>

Комментировать тоже особенно нечего. Вывожу термины, с использованием l(), только потому, что нигде не темизировал у себя вывод терминов, а тратить при этом время на лишние вызовы не хочется. Этот кусок можно переделать по собственно желанию.

Все просто и легко.

>> Читать далее
RSS-материал

Наверх