//
Kullandığın dosyayı & sql dosyanın etiket çektiğin tablolarını yazarsan uyarlarım..
Etiket sistemini php-nuke haber modülü iiçin kullanacağım.
SQL Tablosu
CREATE TABLE nuke_stories (
sid int(11) NOT NULL auto_increment,
catid int(11) NOT NULL default '0',
aid varchar(30) NOT NULL default '',
title varchar(80) default NULL,
time datetime default NULL,
hometext text,
bodytext text NOT NULL,
comments int(11) default '0',
counter mediumint(8) unsigned default NULL,
topic int(3) NOT NULL default '1',
informant varchar(20) NOT NULL default '',
notes text NOT NULL,
ihome int(1) NOT NULL default '0',
alanguage varchar(30) NOT NULL default '',
acomm int(1) NOT NULL default '0',
haspoll int(1) NOT NULL default '0',
pollID int(10) NOT NULL default '0',
score int(10) NOT NULL default '0',
ratings int(10) NOT NULL default '0',
rating_ip varchar(15) NULL default '0',
associated text NOT NULL,
PRIMARY KEY (sid),
KEY sid (sid),
KEY catid (catid),
KEY counter (counter),
KEY topic (topic)
) TYPE=MyISAM;
Buda etiket.php dosyası
<?php
header('Content-type: text/html; charset="iso-8859-9"', true);
$host = "localhost";
$username = "kullanici";
$password = "12345";
$table_name = "nukedb";
$dbh=mysql_connect ($host, $username, $password) or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ($table_name);
function dost_Linkler($url)
{
$url = trim($url);
$url = strtolower($url);
$find = array('<b>', '</b>');
$url = str_replace ($find, '', $url);
$url = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $url);
$find = array('ı','İ');
$url = str_replace($find, 'i', $url);
$find =array('Ş','ş');
$url = str_replace ($find, 's', $url);
$find = array(' ', '"', '&', '&', '\r\n', '\n', '/', '\\', '+', '<', '>');
$url = str_replace ($find, '-', $url);
$find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê');
$url = str_replace ($find, 'e', $url);
$find = array('í', 'i', 'ì', 'î', 'ï', 'ı', 'I', 'I', 'Í', 'Ì', 'Î', 'Ï', 'İ');
$url = str_replace ($find, 'i', $url);
$find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô');
$url = str_replace ($find, 'o', $url);
$find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â');
$url = str_replace ($find, 'a', $url);
$find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û');
$url = str_replace ($find, 'u', $url);
$find = array('ç', 'Ç');
$url = str_replace ($find, 'c', $url);
$find = array('s', 'ş', 'S', 'Ş');
$url = str_replace ($find, 's', $url);
$find = array('g', 'ğ', 'G', 'Ğ');
$url = str_replace ($find, 'g', $url);
$find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
$repl = array('', '-', '');
$url = preg_replace ($find, $repl, $url);
$url = str_replace ('--', '-', $url);
return $url;
}
//etiketleri alacağınız tabloyu seçin
//altta $r[e_tr]; war orda e_tr ye etiketleri tabloda hangi field dan alıyorsanız işte onu yazın...
$q = mysql_query("select * from nuke_stories order by rand() ");
$etk= "";
if(mysql_num_rows($q) > 0) {
while ($r = mysql_fetch_array($q) ) {
$etk.= str_replace(" ", "_", $r[title])." ";
}
}
// Etiket Arrayımız
$etiketArray = array();
// kelimeler
$etiketler = $etk;
// kelimeleri say
foreach(str_word_count( $etiketler, 1, 'ıİüÜöÖğĞşŞçÇ1234567890' ) as $etiket )
{
// Tekrarlanmayı silip saymayı attır
array_key_exists( $etiket, $etiketArray ) ? $etiketArray[ $etiket ]++ : $etiketArray[ $etiket ] = 0;
}
// ==============================================================
// = Bulutla Fonksiyonumuz =
// ==============================================================
function bulutla( $etiketArray, $enDusukFont = 12, $enYuksekFont = 30 )
{
$minSay = min( array_values( $etiketArray ) );
$maxSay = max( array_values($etiketArray ) );
$spread = $maxSay - $minSay;
$bulutArray = array();
$spread == 0 && $spread = 1;
foreach( $etiketArray as $etiket => $say )
{
$size = $enDusukFont + ( $say - $minSay )
* ( $enYuksekFont - $enDusukFont ) / $spread;
$bulutArray[] = '<a style="font-size: ' . floor ( $size ) . 'px'
. '" class="tag_cloud" href="http://siteniz.com/etiket/' . dost_Linkler($etiket)
. '" title="\'' . $etiket . '\' toplam bulunan ' . $say . '">'
. str_replace("_", " ", $etiket) . '</a>';
}
return join( "\n", $bulutArray ) . "\n";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Etiket Bulutu</title>
<style type="text/css" media="screen">
.tag_cloud { padding: 3px; text-decoration: none; }
.tag_cloud:link { color: #81d601; }
.tag_cloud:visited { color: #019c05; }
.tag_cloud:hover { color: #ffffff; background: #69da03; }
.tag_cloud:active { color: #ffffff; background: #ACFC65; }
</style>
</head>
<body>
<fieldset style="background:#FF6600; padding:5px; border:#FF6000 5px dashed; width:480px;">
<legend style="font-size:25px; color:#333333; border:#FF6000 3px solid; background:#FF6600; padding:5px;">Etiket Bulutu</legend>
<div style="width:500px;">
<?php echo bulutla( $etiketArray ); ?>
</div>
</fieldset>
</body>
</html>Buradaki haber başlıklarını kelime bulutu olarak almak sitiyorum.