Сниппет опупительного облака тегов
Прислано: Wincert
пн, 29/09/2008 - 14:18
Думаю многие уже видели плагин для вордпресса WP-Cumulus, он представляет из себя красивое облако тегов выводимое с помощью Flash и JS (посмотреть его можно на этом сайте про CSS). Но я не любители вордпресса ). Поэтому пришлось поковыряться в этом плагине и присобачить его к Drupal. Решил поделиться этим сниппетом с вами.
1. Модуль tagadelic нам все равно понадобиться, ведь не у всех установлен FlashPlayer и включен JS в браузере. У кого этого нет, тому будет показываться простое облако тегов которое выводится с помощью модуля tagadelic. Поэтому качаем этот модуль и устанавливаем его.
2. В формировании облака учавствуют 2 подключемых файла: SWF файл и JS файл. Прикрепить .swf к этой статье не удалось, поэтому даю ссылки со своего хоста. Качаем эти два файла, без них ниче не выйдет ).
3. И вот наконец сам сниппет который надо вставить на страницу или в блок, вообщем куда хотите, главное формат ввода поставьте "PHP code":
<?php
//Указываем ID словаря из которого будем выводить теги
$slovar = "1";
//Запрос для вывода тегов
$query = "SELECT DISTINCT t.name, t.tid
FROM {term_data} t
WHERE t.vid = $slovar";
//получаем результат запроса
$sql = db_rewrite_sql($query);
$result = db_query($sql);
//формируем теги для вывода в облаке
$ftags = "<tags>";
while ($node = db_fetch_object($result)) {
$ftags .= '<a href="/taxonomy/term/'.$node-> tid.'" style="font-size: 10pt">'.$node-> name.'</a>';
}
$ftags .= "</tags>";
//получаем теги выводимые с помощью модуля tagadelic (будет выводиться если у пользователя не установлен FlashPlayer или не включен JS в браузере)
$vocs = array(1); //Список словарей
$tags = tagadelic_get_weighted_tags($vocs, 6, 20);
$tags = tagadelic_sort_tags($tags);
$output = theme('tagadelic_weighted',$tags);
echo '<div id="tags">
'. $output .'
<script type="text/javascript" src="'. base_path() . path_to_theme() .'/swfobject.js"></script>
<script type="text/javascript">
var rnumber = Math.floor(Math.random()*9999999);
var widget_so = new SWFObject("'. base_path() . path_to_theme() .'/tagcloud.swf?r="+rnumber, "tagcloudflash", "230", "170", "9", "#ffffff");
widget_so.addParam("allowScriptAccess", "always");
widget_so.addVariable("tcolor", "0x333333");
widget_so.addVariable("tspeed", "220");
widget_so.addVariable("distr", "true");
widget_so.addVariable("mode", "tags");
widget_so.addVariable("tagcloud", "'.urlencode($ftags).'");
widget_so.write("tags");
</script>
</div>';
?>Там аккуратнее с путями не запутайтесь!!! Путь к подключаемому JS скрипту (swfobject.js) и путь к swf файлу (tagcloud.swf). Сейчас там стоят пути к дериктории вашего шаблона ('. base_path() . path_to_theme() .'/), если положить эти файлы туда, то все будет работать.
Данное облако я реализовал на последнем своем сайте о CSS и верстке.
Подробнее Почитать о параметрах плагина можно на моем блоге, там же есть пример и исходники.
- Wincert's blog
- Для комментирования войдите или зарегистрируйтесь
Спасибо большое, очень полезно!
- Для комментирования войдите или зарегистрируйтесь
выглядит впечатляюще. только вот если слишком много тегов то немного путаница наступает. а так спасибо.
- Для комментирования войдите или зарегистрируйтесь
поисковый бот по таким тегам не пойдёт :(
- Для комментирования войдите или зарегистрируйтесь
спасибо
хотя облака ли это или туман из мультика "Ежик в тумане" :)
- Для комментирования войдите или зарегистрируйтесь
Спасибо! Я создал новый блок и вставил туда PHP-код, отлично работает!
У меня такой вопрос: а как сделать так, чтобы в этом облаке тегов выводились только те тэги, которые указаны в нодах (раньше без этого модуля с одним tagadelic так и было)? А сейчас выводятся все тэги, которые есть в словаре таксономии, и те что используются в нодах и те, что пока не используются.
- Для комментирования войдите или зарегистрируйтесь
По Флэш и Ява не пойдут, но тут, как я понял, если Флэш и Ява в браузере нет, то выводится обычный текстовый Tagadelic, для людей так, может и для ботов тоже?
- Для комментирования войдите или зарегистрируйтесь
Забавная штука! :)
- Для комментирования войдите или зарегистрируйтесь
Симпатично, только не так-то просто их поймать:-))))
- Для комментирования войдите или зарегистрируйтесь
AntonTau я тоже думаю, даже уверен в этом на 99% что поисковый бот увидит обычный Tagadelic, то есть просто ссылки. Так что на СЕО эффект флеш и JS никак не повлияют.
а как сделать так, чтобы в этом облаке тегов выводились только те тэги, которые указаны в нодах (раньше без этого модуля с одним tagadelic так и было)?
Надо в SQL запросе правельное условие сделать, точнее сазать не могу т.к. не знаю по каким критериям там отбирается. Или же сделать отдельный словарь для тегов которые хотите выводить в облаке.
- Для комментирования войдите или зарегистрируйтесь
Спасибо, будем тестить...
- Для комментирования войдите или зарегистрируйтесь
Глянул на тот пример: жутко неудобно. Пока нужный тег рассмотришь, потом пока его поймаешь...
- Для комментирования войдите или зарегистрируйтесь
Рекомендую ссылки делать через l();
- Для комментирования войдите или зарегистрируйтесь
А как сделать фон прозрачным?
- Для комментирования войдите или зарегистрируйтесь
Рекомендую ссылки делать через l();
Прошу прощения, непонял.
А как сделать фон прозрачным?
Думаю не как. Только определенный цвет можно указать.
Глянул на тот пример: жутко неудобно. Пока нужный тег рассмотришь, потом пока его поймаешь...
Надо тренироваться почаще ).
- Для комментирования войдите или зарегистрируйтесь
Эффектно и ново - согласен.
С точки зрения юзабилити - неудобно.
При большом количестве тегов - каша.
При отключенном флеше ничего не выводится, а значит для поисковиков эти теги не видны. Утрачивается одна из основных фишек облака тегов - перелинковка на сайте.
Если бы при отключенном JS или флеше выводить обычные теги,
и автоматом увеличивать поле в зависимости от количества тегов, то было бы удобнее.
- Для комментирования войдите или зарегистрируйтесь
Гламурненькая штучка, только на моем сайте, она повесила мне браузер, очевидно из-за большого количества тегов.
Прошу прощения, непонял.
Про l() имелось в виду, делать так: $ftags .= l($node->name, '/taxonomy/term/' . $node-> tid);
- Для комментирования войдите или зарегистрируйтесь
Спасибо! В SQL я пока новичок совсем.. проще сделать отдельный словарь.
- Для комментирования войдите или зарегистрируйтесь
...делать так: $ftags .= l($node->name, '/taxonomy/term/' . $node-> tid);
А что это даёт?
Да, такое облако выводит все тэги из словаря, и если их много, то, вот даже может браузер повесить. Наверное эта фишка с облаком только для некоторых (избранных тэгов), именно, как фишка.
- Для комментирования войдите или зарегистрируйтесь
А что это даёт?
это формирует правильную друпаловую ссылку, если для термина /taxonomy/term/1 есть алияс, то это выдаст алияс, а не /taxonomy/term/1
- Для комментирования войдите или зарегистрируйтесь
При отключенном флеше ничего не выводится, а значит для поисковиков эти теги не видны. Утрачивается одна из основных фишек облака тегов - перелинковка на сайте.
Вы уверены в этом? Почитайте повнимательней, я очень долго тестировал это облако тегов. Мои тесты показывают что при отключении флеш или JS выводится обычное облако тегов.
- Для комментирования войдите или зарегистрируйтесь
Вы уверены в этом? Почитайте повнимательней, я очень долго тестировал это облако тегов. Мои тесты показывают что при отключении флеш или JS выводится обычное облако тегов.
Уверен. Специально смотрел в 2х браузерах. В ФФ у меня стоит флеш, а в опере его нет. В опере я на обоих сайтах вижу серый прямоугольник.
Может быть проверяется наличие и JS и флеша одновременно? У меня был отключен только флеш, а JS включен.
- Для комментирования войдите или зарегистрируйтесь
Уверен. Специально смотрел в 2х браузерах. В ФФ у меня стоит флеш, а в опере его нет. В опере я на обоих сайтах вижу серый прямоугольник.
Может быть проверяется наличие и JS и флеша одновременно? У меня был отключен только флеш, а JS включен.
Насколько я знаю флеш устанавливается не для каждого браузера в отдельности, а для системы в целом и браузеры уже используют его если он есть.
Что касается этого облака, там нет никаких проверок на флеш и JS, там все гораздо проще. В слой id="tags" мы выводим обычное облако тегов, а дальше срабатывает JS который пытается вывести "опупительное облако" и если по каким то причинам "опупительное облако" вывести не удается (нет флеша или выключен JS), то остается обычное облако тегов которое было выведенно изначально.
Я тестирую, у меня все впорядке, выводится или "опупительное облако" или обычное облако tagadelic.
- Для комментирования войдите или зарегистрируйтесь
Насколько я знаю флеш устанавливается не для каждого браузера в отдельности, а для системы в целом и браузеры уже используют его если он есть.
В винде может быть это и так - уже и не помню. Я в Линуксе и у меня каждый браузер живет своей жизнью. Я меня это устраивает.
Возможно, js отрабатывает (у меня он включен) и выводит опупительное облако поверх обычного и я его не вижу. Вот скриншот:

- Для комментирования войдите или зарегистрируйтесь
Флеш JS Результат да нет обычное да да опупительное нет да ничего нет нет обычное
- Для комментирования войдите или зарегистрируйтесь
Вот если только в Opere такая трабла, то я кажется знаю как ее разрешить. А если в FF и в IE, то там уже сложнее будет, а может и вообще нереально.
- Для комментирования войдите или зарегистрируйтесь
Может быть возможно написать код, чтобы браузер к этому облаку не хотел подключать флэш, если его нету в системе?
- Для комментирования войдите или зарегистрируйтесь
Я так понимаю, что переключением между флеш-облаком и обычным заведует JS.
Нужно научить его проверять наличие в браузере возможности показывать флеш.
- Для комментирования войдите или зарегистрируйтесь
Вот нашел пару ссылок по определению флеша:
- Для комментирования войдите или зарегистрируйтесь
Жесть :-)
Я попробовал на свои 200 тегов и мой сафари чуть чуть не сдох.
- Для комментирования войдите или зарегистрируйтесь
Ковырял недавно тему флешдетектора, кроссбраузерного решения так и не нашел. Нормальный флешдетектор получается только для опреы и ему подобных. Может как нибудь еще поковыряю, как время будет.
- Для комментирования войдите или зарегистрируйтесь
Скрестил вот с этим сниппетом. Получилось довольно неплохо - выводятся только использованные термины плюс размер отображения по весу.
- Для комментирования войдите или зарегистрируйтесь
Drugan, просветите, пожалуйста, как скрестили. Я пока только html и css умею скрещивать..
- Для комментирования войдите или зарегистрируйтесь
Я в php не силен. Можно, наверное, как-то получше это сделать. Вероятно тут даже и без tagadelic можно обойтись. У меня вот, что получилось:
<?php $max_fontsize = 25; // Размер шрифта для тэга с максимальным весом $min_fontsize = 8; // Размер шрифта для тэга с минимальным весом $metrics = 'pt'; // в чем измеряется размер px,pt,em,% $voc = 5; // vid словаря // получим максимальны и минимальный вес терминов в словаре $result = db_query(db_rewrite_sql("SELECT max(cnt) AS maxcnt,min(cnt) AS mincnt FROM {term_data} td INNER JOIN (SELECT tn.tid,COUNT(tn.nid) as cnt FROM {term_node} tn INNER JOIN {node} n ON n.nid=tn.nid GROUP BY tn.tid) n ON n.tid=td.tid AND td.vid=%d"),$voc); $term = db_fetch_object($result); $min_weight = $term->mincnt; $max_weight = $term->maxcnt; // вычислим коэффициент для размера шрифта if ($min_weight == $max_weight ) { $font_metric_koof = 0; } else { $font_metric_koof = ($max_fontsize - $min_fontsize) / ($max_weight - $min_weight); } $result = db_query(db_rewrite_sql("SELECT td.tid,td.name,n.cnt FROM {term_data} td INNER JOIN (SELECT tn.tid,COUNT(tn.nid) as cnt FROM {term_node} tn INNER JOIN {node} n ON n.nid=tn.nid GROUP BY tn.tid) n ON n.tid=td.tid AND td.vid=%d "),$voc); $ftags = "<tags>"; while($term = db_fetch_object($result)) { $size = $min_fontsize + ($term->cnt - $min_weight) * $font_metric_koof; $style = 'font-size: '.$size.$metrics.';'; $ftags .= l($term->name,'taxonomy/term/'.$term->tid, array('attributes' => array('style' => $style,'class' => 'tags-voc-'.$voc))).' '; } $ftags .= "</tags>"; //получаем теги выводимые с помощью модуля tagadelic (будет выводиться если у пользователя не установлен FlashPlayer или не включен JS в браузере) $vocs = array(5); //Список словарей $tags = tagadelic_get_weighted_tags($vocs, 6, 20); $tags = tagadelic_sort_tags($tags); $output = theme('tagadelic_weighted',$tags); echo '<div id="tags"> '. $output .' <script type="text/javascript" src="'. base_path() . path_to_theme() .'/swfobject.js"></script> <script type="text/javascript"> var rnumber = Math.floor(Math.random()*9999999); var widget_so = new SWFObject("'. base_path() . path_to_theme() .'/tagcloud.swf?r="+rnumber, "tagcloudflash", "200", "200", "9", "#f1f1f1"); widget_so.addParam("allowScriptAccess", "always"); widget_so.addVariable("tcolor", "3350237"); widget_so.addVariable("tspeed", "120"); widget_so.addVariable("distr", "true"); widget_so.addVariable("mode", "tags"); widget_so.addVariable("tagcloud", "'.urlencode($ftags).'"); widget_so.write("tags"); </script> </div>'; ?>
- Для комментирования войдите или зарегистрируйтесь
Конечно можно - этот сниппет заменяет блок, который создает модуль tagadelic.
- Для комментирования войдите или зарегистрируйтесь
Только вот бы еще можно было ограничивать количество выводимых тэгов...
- Для комментирования войдите или зарегистрируйтесь
Только вот бы еще можно было ограничивать количество выводимых тэгов...
В sql-запросе добавьте в конце "LIMIT 0, $max"
где $max - нужное максимальное количество тегов.
- Для комментирования войдите или зарегистрируйтесь
Теги теперь вообще не выводятся... по крайней мере у меня.
- Для комментирования войдите или зарегистрируйтесь
А что вы меняли?
- Для комментирования войдите или зарегистрируйтесь
Ввел в блок код, как предложил Drugan, ничего не меняя.
Первоначальный код теги выводил.
- Для комментирования войдите или зарегистрируйтесь
$voc = 5; // vid словаря
$vocs = array(5); //Список словарей
Здесь нужно свой словарь указать, может в этом дело?
- Для комментирования войдите или зарегистрируйтесь
В sql-запросе добавьте в конце "LIMIT 0, $max"
где $max - нужное максимальное количество тегов.
В этом случае будет просто ограничиваться их количество или останутся теги, встречающиеся наиболее часто в нодах?
- Для комментирования войдите или зарегистрируйтесь
Пока флэш не доконца згрузился, показывает теги первого словаря, а как только загрузиться отображает те теги, номер словоря которого я указал в настройках снипета.
Тока заметил массив с используемыми словарями, попробую его тоже поменять :)
- Для комментирования войдите или зарегистрируйтесь
Интересно, а случайно у этого SWF объекта нет параметра что нибудь типа font-family ?
Ну и проверил со своим сниппетом :) вроде работает (при этом модуль tagadelic не нужен)
<?php
$max_fontsize = 18; // Размер шрифта для тэга с максимальным весом
$min_fontsize = 9; // Размер шрифта для тэга с минимальным весом
$metrics = 'pt'; // в чем измеряется размер px,pt,em, (с установкой в процентном отношении Flash облоко глючит )
$voc = array(3); // массив (vid) словарей
$max_tags = 20; // максимальное количество показываемых тэгов
$width_swf = 160; // ширина и высота SWF объекта
$height_swf = 160;
$bgcolor_swf = '#ffffff'; // Цвет фона SWF объекта
$color_swf = '0x226688';// Цвет шрифта SWF объекта
$speed_swf = '100'; // Ну видимо скорость вращения облака
$vocs = implode(',',$voc);
$result = db_query(db_rewrite_sql("SELECT max(cnt) AS maxcnt,min(cnt) AS mincnt
FROM {term_data} td INNER JOIN
(SELECT tn.tid,COUNT(tn.nid) as cnt FROM {term_node} tn
INNER JOIN {node} n ON n.nid=tn.nid GROUP BY tn.tid) n
ON n.tid=td.tid AND td.vid IN (".$vocs.")"));
$term = db_fetch_object($result);
$min_weight = $term->mincnt;
$max_weight = $term->maxcnt;
// вычислим коэффициент для размера шрифта
if ($min_weight == $max_weight ) {
$font_metric_koof = 0;
}
else {
$font_metric_koof = ($max_fontsize - $min_fontsize) / ($max_weight - $min_weight);
}
$result = db_query_range(db_rewrite_sql("SELECT td.tid,td.name,n.cnt
FROM {term_data} td INNER JOIN
(SELECT tn.tid,COUNT(tn.nid) as cnt FROM {term_node} tn
INNER JOIN {node} n ON n.nid=tn.nid GROUP BY tn.tid) n
ON n.tid=td.tid AND td.vid IN (".$vocs.") ORDER BY n.cnt DESC"),0,$max_tags);
$tags = '';
while($term = db_fetch_object($result)) {
$size = $min_fontsize + ($term->cnt - $min_weight) * $font_metric_koof;
$style = 'font-size: '.$size.$metrics.';';
$tags .= l($term->name,'taxonomy/term/'.$term->tid,
array('attributes' => array('style' => $style,'class' => 'tags-voc-'.$voc))).' ';
}
if (!empty($tags)) {
$tags='<tags class="voc-'.$voc.'">'.$tags.'</tags>';
$output='<div id="tags">'.$tags.'
<script type="text/javascript" src="'. base_path() . path_to_theme() .'/swfobject.js"></script>
<script type="text/javascript">
var rnumber = Math.floor(Math.random()*9999999);
var widget_so = new SWFObject("'. base_path() . path_to_theme() .'/tagcloud.swf?r="+rnumber, "tagcloudflash", "'.$width_swf.'", "'.$height_swf.'", "9", "'.$bgcolor_swf.'");
widget_so.addParam("allowScriptAccess", "always");
widget_so.addVariable("tcolor", "'.$color_swf.'");
widget_so.addVariable("tspeed", "'.$speed_swf.'");
widget_so.addVariable("distr", "true");
widget_so.addVariable("mode", "tags");
widget_so.addVariable("tagcloud", "'.urlencode($tags).'");
widget_so.write("tags");
</script>
</div>';
echo $output;
}
}
?>
- Для комментирования войдите или зарегистрируйтесь
Спасибо. Да, видимо я в настройках промазал.
- Для комментирования войдите или зарегистрируйтесь
$voc = array(3); - это настройки словаря, кодгда 3 стояло, то блок не выводился, поставил 1, блок появился, но вместо тегов текст ошибки:
"Parse error: parse error, unexpected '}' in /home/russerv6/public_html/includes/common.inc(1347) : eval()'d code on line 59"
Внизу кода вроде лишняя закрывающая скобка, убрал ее, блок пустой, в админке вывод:
"warning: htmlspecialchars() expects parameter 1 to be string, array given in /home/russerv6/public_html/includes/bootstrap.inc on line 631."
Видимо еще что-то лишнее стоит?
- Для комментирования войдите или зарегистрируйтесь
Поставил $voc = 1; и $vocs = array(1); - как и было в первый раз, когда всё работало.
блок пустой и в админке текст ошибки:
"warning: htmlspecialchars() expects parameter 1 to be string, array given in /home/russerv6/public_html/includes/bootstrap.inc on line 631."
- Для комментирования войдите или зарегистрируйтесь
Нет, блок не пустой, там один ооочень, аж почти не видно, маленький тег плавает.. :))
- Для комментирования войдите или зарегистрируйтесь
$voc = array(3); да это номер словаря (может быть несколько), например $voc = array(1,2,3);
Ошибка есть :) забыл что я теги темизирую (назначаю класс) через номер словоря , ну и лишняя скобка в концe } исправленная версия ниже:
<?php $max_fontsize = 18; // Размер шрифта для тэга с максимальным весом $min_fontsize = 9; // Размер шрифта для тэга с минимальным весом $metrics = 'pt'; // в чем измеряется размер px,pt,em, (с установкой в процентном отношении Flash облоко глючит ) $voc = array(3); // массив (vid) словарей $max_tags = 20; // максимальное количество показываемых тэгов $width_swf = 160; // ширина и высота SWF объекта $height_swf = 160; $bgcolor_swf = '#ffffff'; // Цвет фона SWF объекта $color_swf = '0x226688';// Цвет шрифта SWF объекта $speed_swf = '100'; // Ну видимо скорость вращения облака $vocs = implode(',',$voc); $class_voc = implode('-',$voc); $result = db_query(db_rewrite_sql("SELECT max(cnt) AS maxcnt,min(cnt) AS mincnt FROM {term_data} td INNER JOIN (SELECT tn.tid,COUNT(tn.nid) as cnt FROM {term_node} tn INNER JOIN {node} n ON n.nid=tn.nid GROUP BY tn.tid) n ON n.tid=td.tid AND td.vid IN (".$vocs.")")); $term = db_fetch_object($result); $min_weight = $term->mincnt; $max_weight = $term->maxcnt; // вычислим коэффициент для размера шрифта if ($min_weight == $max_weight ) { $font_metric_koof = 0; } else { $font_metric_koof = ($max_fontsize - $min_fontsize) / ($max_weight - $min_weight); } $result = db_query_range(db_rewrite_sql("SELECT td.tid,td.name,n.cnt FROM {term_data} td INNER JOIN (SELECT tn.tid,COUNT(tn.nid) as cnt FROM {term_node} tn INNER JOIN {node} n ON n.nid=tn.nid GROUP BY tn.tid) n ON n.tid=td.tid AND td.vid IN (".$vocs.") ORDER BY n.cnt DESC"),0,$max_tags); $tags = ''; while($term = db_fetch_object($result)) { $size = $min_fontsize + ($term->cnt - $min_weight) * $font_metric_koof; $style = 'font-size: '.$size.$metrics.';'; $tags .= l($term->name,'taxonomy/term/'.$term->tid, array('attributes' => array('style' => $style,'class' => 'tags-voc-'.$class_voc))).' '; } if (!empty($tags)) { $tags='<tags class="voc-'.$class_voc.'">'.$tags.'</tags>'; $output='<div id="tags">'.$tags.' <script type="text/javascript" src="'. base_path() . path_to_theme() .'/swfobject.js"></script> <script type="text/javascript"> var rnumber = Math.floor(Math.random()*9999999); var widget_so = new SWFObject("'. base_path() . path_to_theme() .'/tagcloud.swf?r="+rnumber, "tagcloudflash", "'.$width_swf.'", "'.$height_swf.'", "9", "'.$bgcolor_swf.'"); widget_so.addParam("allowScriptAccess", "always"); widget_so.addVariable("tcolor", "'.$color_swf.'"); widget_so.addVariable("tspeed", "'.$speed_swf.'"); widget_so.addVariable("distr", "true"); widget_so.addVariable("mode", "tags"); widget_so.addVariable("tagcloud", "'.urlencode($tags).'"); widget_so.write("tags"); </script> </div>'; echo $output; } ?>
- Для комментирования войдите или зарегистрируйтесь
Пока сделал так:
<?php $max_fontsize = 20; // Размер шрифта для тэга с максимальным весом $min_fontsize = 10; // Размер шрифта для тэга с минимальным весом $metrics = 'pt'; // в чем измеряется размер px,pt,em, (с установкой в процентном отношении Flash облоко глючит ) $max_tags = 10; // максимальное количество показываемых тэгов //Указываем ID словаря из которого будем выводить теги $slovar = "1"; //Запрос для вывода тегов $query = "SELECT DISTINCT t.name, t.tid FROM {term_data} t WHERE t.vid = $slovar"; //получаем результат запроса $sql = db_rewrite_sql($query); $result = db_query($sql); //формируем теги для вывода в облаке $ftags = "<tags>"; while ($node = db_fetch_object($result)) { $ftags .= '<a href="/taxonomy/term/'.$node-> tid.'" style="font-size: 10pt">'.$node-> name.'</a>'; } $ftags .= "</tags>"; //получаем теги выводимые с помощью модуля tagadelic (будет выводиться если у пользователя не установлен FlashPlayer или не включен JS в браузере) $vocs = array(1); //Список словарей $tags = tagadelic_get_weighted_tags($vocs, 6, 20); $tags = tagadelic_sort_tags($tags); $output = theme('tagadelic_weighted',$tags); echo '<div id="tags"> '. $output .' <script type="text/javascript" src="'. base_path() . path_to_theme() .'/swfobject.js"></script> <script type="text/javascript"> var rnumber = Math.floor(Math.random()*9999999); var widget_so = new SWFObject("'. base_path() . path_to_theme() .'/tagcloud.swf?r="+rnumber, "tagcloudflash", "230", "170", "9", "#eaeaea"); widget_so.addParam("allowScriptAccess", "always"); widget_so.addVariable("tcolor", "0x333333"); widget_so.addVariable("tspeed", "220"); widget_so.addVariable("distr", "true"); widget_so.addVariable("mode", "tags"); widget_so.addVariable("tagcloud", "'.urlencode($ftags).'"); widget_so.write("tags"); </script> </div>'; ?>
Чуть лучше, облако от тегов не ломится. Пока обхожусь отдельным словарем в котором только те теги, что использованы в нодах.
- Для комментирования войдите или зарегистрируйтесь
Опять та же самая ошибка в админке.. видимо код заточен под Ваши настройки системы... я пока не могу разобраться в чем дело..
- Для комментирования войдите или зарегистрируйтесь















Комментарии