PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : شمارش تعداد دفعات مشاهده هر مطلب



Borna66
12-25-2009, 01:16 AM
شمارش تعداد دفعات مشاهده هر مطلب

این رو به عنوان یه راهنمای ساده با فشار کم بر روی سرور پیشنهاد می کنم. از طرفی اگر کسی پیشنهادی برای بهتر شدنش داره حتما مطرح کنه. امیدوارم به درد بخوره.

ملزومات:
- مووبل تایپ
- phpmyadmin با هر ابزار دیگه کار با دیتابیس
- ابزار مناسب برای upload کردن فایل (ftp client)
- هوش و استعداد

مرحله اول:
در ابتدا لازمه که یه table برای این شمارنده بسازیم. من اسمش رو گذاشتم mt_hits که شبیه بقیه table های مووبل تایپ بشه. با استفاده از کد زیر table رو توی phpmyadmin بسازید.
توضیحات:
بعد از ورود به phpmyadmin وارد دیتابیسی که table های mt توی اون وجود داره بشید و بعد از منوی بالای صفحه وارد قسمت SQL شده و کدهای زیر رو داخل محل مربوطه وارد کنید.
در ضمن توجه کنید که table جدید با نام mt_hits ساخته خواهد شد و لازمه که این Table از قبل وجود نداشته باشه.


کد:

CREATE TABLE `mt_hits` (
`uid` int(11) NOT NULL auto_increment,
`entry` int(11) NOT NULL default '0',
`hits` int(11) NOT NULL default '0',
PRIMARY KEY (`uid`)
) TYPE=MyISAM ;


مرحله دوم:
یک فایل با نام counter.php بسازید و اونو یه جای مناسب upload کنید. این فایل حاوی کدهای زیر خواهد بود. به توضیحاتی که توی کد نوشته شده دقت کنید.


کد:

<?php
function counter($entry)
{
$dbhost = "localhost"; // The host where your database is
$dbname = "NAME"; // Your database name
$dbuser = "USER"; // The user name
$dbpass = "PASSWORD"; // The user's password
$connect = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname, $connect);
$query = "SELECT `hits` FROM `mt_hits` WHERE `entry`='$entry'";
$res = mysql_query($query) ;
if ( $row = mysql_fetch_array($res) )
{
$new_hit = $row['hits'] + 1;
$rr = mysql_query ("UPDATE `mt_hits` SET `hits` = '$new_hit' WHERE `entry` = '$entry' LIMIT 1");
return $new_hit;
}
else
{
mysql_query("INSERT INTO `mt_hits` ( `uid` , `entry` , `hits` ) VALUES ('', '$entry', '1' )");
return "1";
}
}
?>


مرحله سوم:
اکنون وارد تمپلیت تکی خود در مووبل تایپ شده (individual entry) و تغییرات زیر را انجام دهید.
کد زیر را در یک جای مناسب (ترجیحا بالای تمپلیت) قرار دهید.


کد:

<? include ("/home/username/public_html/counter.php"); ?>



آدرسی که در کد فوق استفاده شده مختص سرورهای cPanel است. در هر صورت منظور آدرس به فایل counter.php است.

در جای مناسبی که میخواهید تعداد نمایش مطلب دیده شود کد زیر را قراردهید:


کد:

<? echo counter(<$MTEntryID$>) ?>

مرحله آخر:
تمپلیتهای Individual Archive را دوباری سازی کنید. و نتیجه را ببنید.

اگر یه مقدار دانش php و mysql داشته باشید، خیلی راحت میتونید نتایج مفید و به درد بخوری از table آمار (mt_hits) بگیرید. مثلا پرخواننده ترین مطالب، تعداد مشاهده مطالب روی صفحه های اصلی که لیست مطالب هستند و ...
البته من سعی می کنم به مرور function های بهتری به اینی که الان هست اضافه کنم.