Облако тегов

[Удален]
468

В общем, переделываю кодик один, который выводит облако тегов.

В базе метки хранятся так:

id labels

1 метка1, метка2

2 метка3

3 метка4 метка5, метка2

то есть встречаются словосочетания.

В моём случае скрипт выводит все слова поодиночке через пробел, вот так:

метка1 МЕТКА2 метка3

и тд. мне же нужно, чтобы словосочитания он не обрезал, а выводил как надо, то есть:

метка1 метка4 метка5

вот оригинал:

$tag1 = mysql_query("select * from Blogg where status=1");

while($tags1 = mysql_fetch_array($tag1))
{
$label=$tags1['labels'];
$all_labels.=$label." ";
}

for ($i=0; $i<=strlen($all_labels);$i++)
{
$symb = substr($all_labels,$i,1);
if ($symb!=",") $all_labels_new.=$symb;
}

$all_labels_cut = explode(" ", $all_labels_new);
$all_labels_cut_count = count($all_labels_cut);
$all_labels_cut = array_unique($all_labels_cut);

for ($i=0; $i<=$all_labels_cut_count; $i++)
{
$vhojd = substr_count($all_labels_new, $all_labels_cut[$i]);
$vhojd2=($vhojd+5)*2;
$vivod_metok.="<span>
<a href='http://site.su/labels/".$all_labels_cut[$i]."' style='font-size:".$vhojd2."pt'>".$all_labels_cut[$i]."</a>
</span>";
$vhojd2="";
}

Подскажите, пожалуйста, что мне подправить нужно?

T.R.O.N
На сайте с 18.05.2004
Offline
314
#1

MrBernz,

извините за OFF, но лучшим вариантом будет убрать облако с сайта. Ничего менее удобного и бестолкового я не встречал (это не о Вашем сайте а вобще)

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
[Удален]
#2

T.R.O.N, пасиба за офф, но это типа как:

убрать нельзя оставить

где ж тут запятую-то воткнуть? в моём случае она после второго слова.. так что сижу вот и думаю...

ewg777
На сайте с 04.06.2007
Offline
225
#3
MrBernz:
T.R.O.N, пасиба за офф, но это типа как:
убрать нельзя оставить
где ж тут запятую-то воткнуть? в моём случае она после второго слова.. так что сижу вот и думаю...

Про такой код лучше забыть и не вспоминать. Посмотрите как облако реализовано в нормальных популярных CMS.

Agel Nash
На сайте с 01.12.2008
Offline
61
#4

сначало $all_labels.=$label." ";, а затем $all_labels_cut = explode(" ", $all_labels_new);

Зачем? у словосочетаний ведь тоже пробел разделитель.

Я (http://agel-nash.ru) - вильгельм "ЗАКОЛЕБАТЕЛЬ" Аудит безопасности MODX сайтов (/ru/forum/783778) | Обучение созданию сайтов (http://modcoach.info/)
[Удален]
#5
ewg777:
Про такой код лучше забыть и не вспоминать. Посмотрите как облако реализовано в нормальных популярных CMS.

задача решена, вот её окончательное решение - может кому-нть надо будет..

$tags = mysql_query("SELECT * FROM Blogg WHERE status=1");

$labels = array();
$f = create_function('$v,$k,&$labels','$k=trim($k);if(isset($labels[$k])){$labels[$k][0]++;}else{$labels[$k][0]=0;}$labels[$k][1]=$v;');
while($tag = mysql_fetch_array($tags)){
@array_walk(array_combine(
explode(',',$tag['labels_trans']),
explode(',',$tag['labels'])),
$f,&$labels);
}
foreach($labels as $k=>$v){
$vivod_metok.="<span> <a href='http://site.su/labels/".$k."' style='font-size:".(($v[0]+5)*2)."pt'>".$v[1]."</a></span>";
}

теперь всё работает. Всем спасибо всем за внимание

NZ
На сайте с 20.09.2009
Offline
12
#6

MrBernz, А можно сайтик посмотреть с облаком?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий