• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

[мод] Стаж пользователя 0.3

Статус
В этой теме нельзя размещать новые ответы.

Barthez

Постоялец
Регистрация
28 Мар 2007
Сообщения
267
Реакции
172
20784489ur7.png
Автор: DexterHD [WSN]
Версия движка: 5.* - 6.*
Исправление & модификация: Al-x
Демо: Для просмотра ссылки Войди или Зарегистрируйся
Описание: модуль вывводит количество проведенных дней или месяцей на сайте. Аналоги вы можете найти на многих форумах.

Установка:
Открываем "engine/modules/profile.php"

Находим -

PHP:
$tpl->set('{registration}', langdate("j F Y H:i", $row['reg_date']));

Заменяем на -

PHP:
function user_reg_date ($reg_date){

$days = round((time() - $reg_date)/86400); 
                                                 
$count_days = true;

$years = floor($days / 365);
$days -= ($years * 365);
$monthes = floor($days / 30);
$days -= ($monthes * 30);

if ($monthes > 0){

    if ($monthes == 12){

        $count_days = false;
        $years++;
        $monthes = "";

    } elseif ($monthes > 6){

        $count_days = false;
        $monthes .= ' месяцев ';

    } else {

        if ($monthes == 1) $monthes .= ' месяц ';
        elseif ($monthes < 5) $monthes .= ' месяцa ';
        else $monthes .= ' месяцев ';

    }

} else $monthes = "";

if ($years > 0){

    if ($years == 1) $years .= ' год ';
    elseif ($years < 5) $years .= ' года ';
    else $years .= ' лет ';

    $count_days = false;

} else $years = "";

if ($count_days && $days > 0){

    if ($days == 1 || $days == 21 || $days == 31) $days .= ' день';
    elseif ($days < 5) $days .= ' дня';
    elseif ($days < 21) $days .= ' дней';
    elseif ($days < 25) $days .= ' дня';
    else $days .= ' дней';

} else $days = "";

return $years.$monthes.$days;
}
$tpl->set('{registration}', user_reg_date ($row['reg_date']));
 
В шаблоне нечего менять ненадо.
 
Что-то ты не то сказал.
На локалхосте попробовал, после замены кода поле: Дата регистрации пустое в профиле...
Явно что-то не то :\
 
а можно зделать типа чтоб время написано было
 
  • Заблокирован
  • #6
Код:
if ($days == 1 || $days == 21 || $days == 31) $days .= ' день';
    elseif ($days < 5) $days .= ' дня';
    elseif ($days < 21) $days .= ' дней';
    elseif ($days < 25) $days .= ' дня';
    else $days .= ' дней';

Это вообще неправильно.
Если к примеру будет число 2 оно будет удовлетворять все эти условия.

Код:
  elseif ($days < 5) $days .= ' дня';
    elseif ($days < 21) $days .= ' дней';
    elseif ($days < 25) $days .= ' дня';

тут нужно конкретизировать условие.
Вот тебе пример, а дальше сам лобань...

Код:
 elseif ($days > 1 && $days < 5) $days .= ' дня';
 elseif ($days > 5 && $days < 21) $days .= ' дней';
 
хамер даже на нулледе помогает советами ;)
Бартез - исправляй ;)
 
Код:
if ($days == 1 || $days == 21 || $days == 31) $days .= ' день';
    elseif ($days < 5) $days .= ' дня';
    elseif ($days < 21) $days .= ' дней';
    elseif ($days < 25) $days .= ' дня';
    else $days .= ' дней';

Это вообще неправильно.
Если к примеру будет число 2 оно будет удовлетворять все эти условия.

Код:
  elseif ($days < 5) $days .= ' дня';
    elseif ($days < 21) $days .= ' дней';
    elseif ($days < 25) $days .= ' дня';

тут нужно конкретизировать условие.
Вот тебе пример, а дальше сам лобань...

Код:
 elseif ($days > 1 && $days < 5) $days .= ' дня';
 elseif ($days > 5 && $days < 21) $days .= ' дней';

Жжёшь))) Ты пхп совсем забыл?
elseif тебе о чём-то говорит?
Не буду цитировать мануалы... читай матчасть ;)

Как минимум три человека редактировали этот код(Декстер, Ал-х, а может и даже Бартнез). Думаешь не нашли бы ошибку?

П.С.: без обид. ;)
 
Я пока что не стивил - ничего не работало, тем более с какого перепугу в профиле будет выводить что-то, если там не делали никаких изменений (в шаблоне) :/
 
  • Заблокирован
  • #10
:D мдаааааа... что-то я протормозил )))) ппц.
внатуре... под пивом наверное был
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху