PDA

View Full Version : تغییر روز پیش فرض به شنبه در آمار بازدیدکنندگان



fafa_na
شنبه 12 آذر 1390, 10:24 صبح
سلام
من یه کد آمار بازدیدکنندگان دارم که یه ایرادی داره و اون اینکه روز اول پیش فرضش برا هفته دوشنبه و روز اول ماه آن هم بصورت میلادی عمل میکنه خودم هر چی ور رفتم نتونستم نه روز اول هفته و نه روز اول ماه را درست کنم .ممنون میشم کمکم کنید

<?php

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
// Read our Parameters
$today = @$params->get('today', 'Today');
$yesterday = @$params->get('yesterday', 'Yesterday');
$x_month = @$params->get('month', 'This month');
$x_week = @$params->get('week', 'This week');
$all = @$params->get('all', 'All days');

$locktime = @$params->get('locktime', 1);
$initialvalue = @$params->get('initialvalue', 1);
$records = @$params->get('records', 1);

$s_today = @$params->get('s_today', 1);
$s_yesterday = @$params->get('s_yesterday', 1);
$s_all = @$params->get('s_all', 1);
$s_week = @$params->get('s_week', 1);
$s_month = @$params->get('s_month', 1);

$s_digit = @$params->get( 's_digit', 1 );
$disp_type = @$params->get( 'disp_type', "Mechanical" );

$widthtable = @$params->get( 'widthtable', "100" );
$pretext = @$params->get( 'pretext', "" );
$posttext = @$params->get( 'posttext', "" );

// From minutes to seconds
$locktime = $locktime * 60;

$query = "CREATE TABLE IF NOT EXISTS #__vvisit_counter (id int(11) NOT NULL AUTO_INCREMENT, tm int NOT NULL, ip varchar(16) NOT NULL default '0.0.0.0', PRIMARY KEY (`id`))";
$database->setQuery($query);
$database->query();

// Now we are checking if the ip was logged in the database. Depending of the value in minutes in the locktime variable.
$day = date('d');
$month = date('n');
$year = date('Y');

$daystart = mktime(0,0,0,$month,$day,$year);
$monthstart = mktime(0,0,0,$month,22,$year);

// weekstart
$weekday = date('w');
$weekday--;
if ($weekday < 0) $weekday = 7;
$weekday = $weekday * 24*60*60;
$weekstart = $daystart - $weekday;
$yesterdaystart = $daystart - (24*60*60);
$now = time();
$ip = $_SERVER['REMOTE_ADDR'];

$query = "SELECT MAX(id) FROM #__vvisit_counter";
$database->setQuery($query);
$all_visitors = $database->loadResult();

if ($all_visitors !== NULL) {
$all_visitors += $initialvalue;
} else {
$all_visitors = $initialvalue;
}

// Delete old records
$temp=$all_visitors-$records;

if ($temp>0){
$query = "DELETE FROM #__vvisit_counter WHERE id<'$temp'";
$database->setQuery($query);
$database->query();
}

$query = "SELECT COUNT(*) FROM #__vvisit_counter WHERE ip='$ip' AND (tm+'$locktime')>'$now'";
$database->setQuery($query);
$items = $database->loadResult();

if (empty($items))
{
$query = "INSERT INTO #__vvisit_counter (id, tm, ip) VALUES ('', '$now', '$ip')";
$database->setQuery($query);
$database->query();
$e = $database->getErrorMsg();
}

$n = $all_visitors;
$div = 100000;
while ($n > $div) {
$div *= 10;
}
$query = "SELECT COUNT(*) FROM #__vvisit_counter WHERE tm>'$daystart'";
$database->setQuery($query);
$today_visitors = $database->loadResult();

$query = "SELECT COUNT(*) FROM #__vvisit_counter WHERE tm>'$yesterdaystart' and tm<'$daystart'";
$database->setQuery($query);
$yesterday_visitors = $database->loadResult();

$query = "SELECT COUNT(*) FROM #__vvisit_counter WHERE tm>='$weekstart'";
$database->setQuery($query);
$week_visitors = $database->loadResult();
$query = "SELECT COUNT(*) FROM #__vvisit_counter WHERE tm>='$monthstart'";
$database->setQuery($query);
$month_visitors = $database->loadResult();

$content .= '<div>';
if ($pretext != "") $content .= '<div>'.$pretext.'</div>';
// Show digit counter
if($s_digit){
$content .= '<div style="text-align: center;">';
while ($div >= 1) {
$digit = $n / $div % 10;
$content .= '<img src="modules/mod_vvisit_counter/images/'.$disp_type.'/'.$digit.'.gif" alt="mod_vvisit_counter" title="Vinaora Visitors Counter" />';
$n -= $digit * $div;
$div /= 10;
}
$content .= '</div>';
}

$content .= '<div><table cellpadding="0" cellspacing="0" style="text-align: center; width: '.$widthtable.'%;"><tbody align="center">';
// Show today, yestoday, week, month, all statistic
if($s_today) $content .= spaceer("vtoday.gif", $today, $today_visitors);
if($s_yesterday) $content .= spaceer("vyesterday.gif", $yesterday, $yesterday_visitors);
if($s_week) $content .= spaceer("vweek.gif", $x_week, $week_visitors);
if($s_month) $content .= spaceer("vmonth.gif", $x_month, $month_visitors);
if($s_all) $content .= spaceer("vall.gif", $all, $all_visitors);

$content .= "</tbody></table></div>";
$content .= "</div>";
$content .= '<div style="text-align:center;"><a href="#" target="_blank" title="#"></a></div>' (http://www.zagros.co.ir&quot;>www.zagros.co.ir</a></div>');
if ($posttext != "") $content .= '<div>'.$posttext.'</div>';
function spaceer($a1,$a2,$a3)
{
$ret = '<tr style="text-align:left;"><td><img src="modules/mod_vvisit_counter/images/'.$a1.'" alt="mod_vvisit_counter"/></td>';
$ret .= '<td>'.$a2.'</td>';
$ret .= '<td style="text-align:right;">'.$a3.'</td></tr>';
return $ret;
}
?>

fafa_na
یک شنبه 13 آذر 1390, 07:56 صبح
پس چرا کسی کمک نمیکنه
خدااااااااااااااااااااااا ااااااا

J.Masomi
یک شنبه 13 آذر 1390, 18:36 عصر
با سلام
اولاً کد ها را داخل باکس درست بزار بشود خوندش.
دوماً شما برای اینکار احتیاج داری از یک تقویم جلالی استفاده کنی، که اگر یک سرچ کوچک کنی پیدا میشه.این کتابخانه برای تمامی فرمتها و توابع تاریخ معادل داره.
البته به نوع ذخیره سازی دیتابیس هم میتونه ربط داشته باشه(برای گزارش ها)