Регистрация
Вход через соцсети
Восстановление пароля

Облако тегов

Новый топик
07.03.2007, 10:57
Ответить | Цитировать
Александр
Zavarka Team

Зарегистрирован:
2005-01-22
Сообщений: 53

Реализовывал ли кто-то облако тегов на неткате?

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

zavarka-team.ru
07.03.2007, 12:15
Ответить | Цитировать
h/z

Зарегистрирован:
2007-02-06
Сообщений: 755

Цитата:
Реализовывал ли кто-то облако тегов на неткате?


вот облако тегов на НетКете
http://netcat.ru/dealers/knowledgebase/

Цитата:
Ведь в облаке показываются схожие по смыслу ссылки. Как можно определять эту схожесть?

у каждой статьи есть поле для прописывания ключевых слов, совпадение ключевых слов у статей определяет их схожесть

Цитата:
Как формировать размер(размер текста) ссылки, ведь размер шрифта ссылки определяется по кол-ву кликов по нему....

клики из облака не сложно посчитать,
надо создать отдельную таблицу для статистики кликов по ключевым словам, и при клике на каком-нибудь ключевом слове, в макете создавать SQL запрос на добавление статистики кликов по только что кликнутому слову

Цитата:
как можно подсчитать эти клики,

если клики это кол-во записей в статистике то
Код:
COUNT(*) from where


Цитата:
вообщем мне непонятен сам принцип построения...

надеюсь общих слов без приведения конкретного кода, sql запросов и прочего, вам хватит для решения столь нетривиальной задачи.

13.03.2007, 09:06
Ответить | Цитировать
Александр
Zavarka Team

Зарегистрирован:
2005-01-22
Сообщений: 53

h/z писал(а):
надеюсь общих слов без приведения конкретного кода, sql запросов и прочего, вам хватит для решения столь нетривиальной задачи.

Да, спасибо. я думаю мне этого вполне будет достаточно.

zavarka-team.ru
18.03.2007, 23:53
Ответить | Цитировать
N!trO
Piplos Media
N!trO

Зарегистрирован:
2004-12-20
Сообщений: 10

вот то что я использую ..
писалось еще под 2.3 версию ... небыло время переписывать под новый класс MySQL который сейчас используется ..
работа весьма проста .. есть возможность манипулировать с цветами и высотой слов ..
Код:

function netcat_tags(){
global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DB_NAME;
$LinkID = mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD);
mysql_select_db ($MYSQL_DB_NAME, $LinkID);

$query = "SELECT bTag AS tag, COUNT(Message_ID) AS quantity
FROM Message61
GROUP BY bTag
ORDER BY bTag ASC";

$result = mysql_query($query, $LinkID);

while ($row = mysql_fetch_array($result)) {
$temp_tags = explode(',', $row['tag']);
foreach ($temp_tags as $tag) {
if (isset($tags[$tag])) {
$tags[$tag]++;
} else {
$tags[$tag] = 1 ;
}
}
}

$max_size = 250;
$min_size = 100;

$max_sat = hexdec('f');
$min_sat = hexdec('0');

$max_qty = max(array_values($tags));
$min_qty = min(array_values($tags));

$spread = $max_qty - $min_qty;
if (0 == $spread) {
$spread = 1;
}

//$step = ($max_sat - $min_sat)/($spread);
$step = ($max_size - $min_size)/($spread);

foreach ($tags as $key => $value) {
$color = $min_sat + ($value - $min_qty) * $step;
$r = dechex($color);
$b = dechex($max_sat - $color);
$g = 'c';
$size = $min_size + (($value - $min_qty) * $step);
echo '<a href='.$key.' style="color: #'.$r.$g.$b.'; font-size: '.$size.'%;text-decoration: none;">'.$key.'</a> ';
}
}

проверено - все работает ..
пояснения:
1. нужно поменять Message61 - на свой шаблон.
2. создать текстовое поле в шаблоне бля тегов , у меня оно bTag. Очень важно чтобы теги разделялись между собой запятой.. кто шарит может поправить код под себя и делить чем угодно улыбка
если у кого дойдут руки переделать под новый класс MySQL - прошу разместить в этом топике .. если конечно у меня быстрее не дойдут эти руки улыбка
P.S. если нужно чтобы теги выводились в шаблоне либо макете нужно заменить
Код:

echo '<a href='.$key.' style="color: #'.$r.$g.$b.'; font-size: '.$size.'%;text-decoration: none;">'.$key.'</a> ';
}

на
Код:

$listtag .= '<a href='.$key.' style="color: #'.$r.$g.$b.'; font-size: '.$size.'%;text-decoration: none;">'.$key.'</a> ';
}
return $listtag;


nitro
01.05.2007, 16:03
Ответить | Цитировать
Гость
Гость

N!trO - спасибо ...
И работает нормально ...
198 196 2007-05-01 16:03:50 8903
Описание проекта