вопрос
Выводит почему то что стаж 44 года
Подключаю таким образом
Вот сам модуль
Подключаю таким образом
// Считаем рейтинг
$tpl->set('{user_rating}', userrating($userField['user_id']));
// Cтаж пользователя
@include (ENGINE_DIR.'/modules/stag.php');
Вот сам модуль
if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}
function stag () {
global $db;
$result = $db->query("SELECT reg_date, lastdate, user_id FROM " . PREFIX . "_users ORDER BY reg_date DESC LIMIT 0,1");
$row = $db->get_row($result);
$with_us = round( ( time() - $GLOBALS['row']['reg_date']) / 86400);
if ($with_us > 0)
{
$count_days=1;
$y1="год";
$y2="года";
$y3="лет";
$m1="месяц";
$m2="месяцa";
$m3="месяцев";
$d1="день";
$d2="дня";
$d3="дней";
$with_us_year = floor($with_us / 365);
if ($with_us_year >= 1)
{
if ($with_us_year == 1) $after_y = $y1;
if ($with_us_year > 1 && $with_us_year < 5) $after_y = $y2;
if ($with_us_year > 4) $after_y = $y3;
$years = $with_us_year." ".$after_y;
$with_us = $with_us - ($years * 365);
$count_days=0;
}
$with_us_month = floor($with_us / 31);
if ($with_us_month >= 1)
{
if ($with_us_month == 1) $after_m = $m1;
if ($with_us_month > 1 && $with_us_month < 5) $after_m = $m2;
if ($with_us_month > 4) $after_m = $m3;
$monthes = $with_us_month." ".$after_m;
$with_us = $with_us - ($monthes * 31);
if ($with_us_month > 6) $count_days=0;
if ($with_us_month == 12) {$years = ($with_us_year+1)." ".$y1;$with_us_month=$monthes=''; }
}
if ($count_days == 1)
{
if ($with_us > 0)
{
if ($with_us == 1 || $with_us == 21 || $with_us == 31) $after_d = $d1;
if ($with_us > 1 && $with_us < 5) $after_d = $d2;
if ($with_us > 4 && $with_us < 21) $after_d = $d3;
if ($with_us > 21 && $with_us < 25) $after_d = $d2;
if ($with_us > 24 && $with_us < 31) $after_d = $d3;
$days = $with_us." ".$after_d;
}
}
$stag = $years." ".$monthes." ".$days;
unset($years); unset($monthes); unset($days);
return $stag;
}
$stag = 0;
return $stag;
}
$with_us = stag (reg_date);
$tpl->set('{stag}', $with_us);
?>
Выводит почему то что стаж 44 года
Возможно, что у вас в базе reg_date = 0 или нет такого поля.
$GLOBALS['row']['reg_date'] = 0 у вас. Попробуйте заменить следующим образом:
$with_us = round( ( time() - $GLOBALS['row']['reg_date']) / 86400);
на
$with_us = round( ( time() - $row['reg_date']) / 86400);
Если не будет работать, еще замените
$result = $db->query("SELECT reg_date, lastdate, user_id FROM " . PREFIX . "_users ORDER BY reg_date DESC LIMIT 0,1");
$row = $db->get_row($result);
на
$row = $db->super_query("SELECT reg_date, lastdate, user_id FROM " . PREFIX . "_users ORDER BY reg_date DESC LIMIT 0,1");
Так проще и обычно эту конструкцию использую. Но по идее они равнозначны.