Skocz do zawartości

Chmura tagów


master

Rekomendowane odpowiedzi

Witam,

Czy posiada może ktoś jakiś działający skrypt chmury tagów w php? Chodzi mi o taki, który wyciągałby poszczególne tagi z bazy danych. Znalazłem kilka takich skryptów, ale niestety działają one tylko jeżeli mam wpisane tagi "na sztywno" w kod. Kiedy dokładam wyciąganie z bazy zawsze się coś sypie :) Za nic nie mogę dojść gdzie mam błąd (najprawdopodobniej coś nie tak przy połączeniu z bazą)

Póki co mam coś takiego (kod w pliku .tpl):

{php}

mysql_connect('localhost', 'nazwa_usera', 'haslo_bazy');

mysql_select_db('nazwa_bazy');

class wordCloud

{

var $wordsArray = array();

function __construct($words = false)

{

if ($words !== false && is_array($words))

{

foreach ($words as $key => $value)

{

$this->addWord($value);

}

}

}

function wordCloud($words = false)

{

$this->__construct($words);

}

/*

* Assign word to array

*

* @param string $word

* @return string

*/

function addWord($word, $value = 1)

{

$word = strtolower($word);

if (array_key_exists($word, $this->wordsArray))

$this->wordsArray[$word] += $value;

else

$this->wordsArray[$word] = $value;

return $this->wordsArray[$word];

}

/*

* Shuffle associated names in array

*/

function shuffleCloud()

{

$keys = array_keys($this->wordsArray);

shuffle($keys);

if (count($keys) && is_array($keys))

{

$tmpArray = $this->wordsArray;

$this->wordsArray = array();

foreach ($keys as $key => $value)

$this->wordsArray[$value] = $tmpArray[$value];

}

}

/*

* Calculate size of words array

*/

function getCloudSize()

{

return array_sum($this->wordsArray);

}

/*

* Get the class range using a percentage

*

* @returns int $class

*/

function getClassFromPercent($percent)

{

if ($percent >= 99)

$class = 1;

else if ($percent >= 70)

$class = 2;

else if ($percent >= 60)

$class = 3;

else if ($percent >= 50)

$class = 4;

else if ($percent >= 40)

$class = 5;

else if ($percent >= 30)

$class = 6;

else if ($percent >= 20)

$class = 7;

else if ($percent >= 10)

$class = 8;

else if ($percent >= 5)

$class = 9;

else

$class = 0;

return $class;

}

/*

* Create the HTML code for each word and apply font size.

*

* @returns string $spans

*/

function showCloud($returnType = "html")

{

$this->shuffleCloud();

$this->max = max($this->wordsArray);

if (is_array($this->wordsArray))

{

$return = ($returnType == "html" ? "" : ($returnType == "array" ? array() : ""));

foreach ($this->wordsArray as $word => $popularity)

{

$sizeRange = $this->getClassFromPercent(($popularity / $this->max) * 100);

if ($returnType == "array")

{

$return[$word]['word'] = $word;

$return[$word]['sizeRange'] = $sizeRange;

if ($currentColour)

$return[$word]['randomColour'] = $currentColour;

}

else if ($returnType == "html")

{

$return .= "<span class='word size{$sizeRange}'> {$word} </span>";

}

}

return $return;

}

}

}

$cloud = new wordcloud();

$getBooks = mysql_query("SELECT kolumna_tabeli FROM `nazwa_tabeli`");

if ($getBooks)

{

while ($rowBooks = mysql_fetch_assoc($getBooks))

{

$cloud->addWord($rowBooks['title']);

}

}

}

$myCloud = $cloud->showCloud('array');

if (is_array($myCloud))

{

foreach ($myCloud as $key => $value)

{

echo ' <a href="tags_url/'.urlencode($value['word']).'" style="font-size: 1.'.($value['range']).'em">'.$value['word'].'</a> ';

}

{/php}

Niestety wyskakuje mi błąd Parse error: syntax error, unexpected '}'...

Będę wdzięczny za pomoc.

If I could have my wasted days back

Would I use them to get back on track?

Stop to warm and karma’s burning

Or look ahead , but keep on turning?

--------------------

iconm.gif - Metallica

Odwiedź Tattoo Studio i zrób sobie profesjonalny tattoo

Potrzebujesz więźbę dachową lub inne drzewo - tartak

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności