|
|
07.03.2007, 10:57
|
|
Александр
Zavarka Team
Зарегистрирован: 2005-01-22
Сообщений: 53
|
Реализовывал ли кто-то облако тегов на неткате?
Я не могу понять именно принцип, по которому можно построить это облако. Ведь в облаке показываются схожие по смыслу ссылки. Как можно определять эту схожесть? Как формировать размер(размер текста) ссылки, ведь размер шрифта ссылки определяется по кол-ву кликов по нему....как можно подсчитать эти клики, вообщем мне непонятен сам принцип построения...
zavarka.team
|
|
|
07.03.2007, 12:15
|
|
h/z
Зарегистрирован: 2007-02-06
Сообщений: 755
|
Цитата:Реализовывал ли кто-то облако тегов на неткате?
вот облако тегов на НетКете
http://netcat.ru/dealers/knowledgebase/
Цитата:Ведь в облаке показываются схожие по смыслу ссылки. Как можно определять эту схожесть?
у каждой статьи есть поле для прописывания ключевых слов, совпадение ключевых слов у статей определяет их схожесть
Цитата: Как формировать размер(размер текста) ссылки, ведь размер шрифта ссылки определяется по кол-ву кликов по нему....
клики из облака не сложно посчитать,
надо создать отдельную таблицу для статистики кликов по ключевым словам, и при клике на каком-нибудь ключевом слове, в макете создавать SQL запрос на добавление статистики кликов по только что кликнутому слову
Цитата:как можно подсчитать эти клики,
если клики это кол-во записей в статистике то
Цитата:вообщем мне непонятен сам принцип построения...
надеюсь общих слов без приведения конкретного кода, sql запросов и прочего, вам хватит для решения столь нетривиальной задачи.
|
|
|
13.03.2007, 09:06
|
|
Александр
Zavarka Team
Зарегистрирован: 2005-01-22
Сообщений: 53
|
h/z писал(а):надеюсь общих слов без приведения конкретного кода, sql запросов и прочего, вам хватит для решения столь нетривиальной задачи.
Да, спасибо. я думаю мне этого вполне будет достаточно.
zavarka.team
|
|
|
18.03.2007, 23:53
|
|
N!trO
Piplos Media
Зарегистрирован: 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 - спасибо ...
И работает нормально ...
|