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

Тема в разделе "DLE", создана пользователем Barthez, 31 мар 2008.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. Barthez

    Barthez

    Регистр.:
    28 мар 2007
    Сообщения:
    265
    Симпатии:
    169
    [​IMG]
    Автор: DexterHD [WSN]
    Версия движка: 5.* - 6.*
    Исправление & модификация: Al-x
    Демо: http://psp-team.ru
    Описание: модуль вывводит количество проведенных дней или месяцей на сайте. Аналоги вы можете найти на многих форумах.

    Установка:
    Открываем "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 == || $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']));
     
    milw0rm, Nous, Walkman и ещё 1-му нравится это.
  2. pozerovnet

    pozerovnet

    Регистр.:
    31 янв 2008
    Сообщения:
    400
    Симпатии:
    11
    А в шаблоне что?
     
  3. Barthez

    Barthez

    Регистр.:
    28 мар 2007
    Сообщения:
    265
    Симпатии:
    169
    В шаблоне нечего менять ненадо.
     
  4. pozerovnet

    pozerovnet

    Регистр.:
    31 янв 2008
    Сообщения:
    400
    Симпатии:
    11
    Что-то ты не то сказал.
    На локалхосте попробовал, после замены кода поле: Дата регистрации пустое в профиле...
    Явно что-то не то :\
     
  5. FirstAngel

    FirstAngel Прохожие

    а можно зделать типа чтоб время написано было
     
  6. Hamer

    Hamer Читатель

    Заблокирован
    Регистр.:
    21 авг 2007
    Сообщения:
    33
    Симпатии:
    5
    Код:
    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 .= ' дней';
    
     
    pozerovnet нравится это.
  7. pozerovnet

    pozerovnet

    Регистр.:
    31 янв 2008
    Сообщения:
    400
    Симпатии:
    11
    хамер даже на нулледе помогает советами ;)
    Бартез - исправляй ;)
     
  8. morgan007

    morgan007 Создатель

    Регистр.:
    19 сен 2007
    Сообщения:
    22
    Симпатии:
    2
    Жжёшь))) Ты пхп совсем забыл?
    elseif тебе о чём-то говорит?
    Не буду цитировать мануалы... читай матчасть ;)

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

    П.С.: без обид. ;)
     
  9. pozerovnet

    pozerovnet

    Регистр.:
    31 янв 2008
    Сообщения:
    400
    Симпатии:
    11
    Я пока что не стивил - ничего не работало, тем более с какого перепугу в профиле будет выводить что-то, если там не делали никаких изменений (в шаблоне) :/
     
  10. Hamer

    Hamer Читатель

    Заблокирован
    Регистр.:
    21 авг 2007
    Сообщения:
    33
    Симпатии:
    5
    :D мдаааааа... что-то я протормозил )))) ппц.
    внатуре... под пивом наверное был
     
Статус темы:
Закрыта.