Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

Czas online w dniach - plugin TOPSTATS

Konfiguracja  Założony przez  sauber94.

wersja skryptu MyBB: 1.8.3
adres forum:
na czym polega problem (screen, opis, komunikaty, nazwa i wersja wtyczki): Posiadam plugin TOPSTATS (wyświetla statystyki w panelu bocznym). Chce aby plugin wyświetlał czas spędzony na forum maksymalnie w dniach, bez ilości miesięcy.

Obecnie wygląda to tak:
Czas spędzony online: 1m-c, 6d, 23godz, 18min

A chce aby było:
Czas spędzony online: 37d, 23h, 18m

Pogrubione przedrostki chce też na taki sposób zamienić.
ADVERTGAME.PL
musisz sobie napisać funkcje w php która tak przetworzy czas, w starszych wersjach topstats masz gotowca, w tych nowszych wersjach wykorzystałem domyślne funkcje mybb
Czyli w starszej wersji wystarczy kod wziąć i podmienić do nowej?
Samemu funkcji nie napiszę bo się kompletnie na tym nie znam :P
ADVERTGAME.PL
Tam jest czas zwracany w sekundach, więc wystarczy się pobawić w dzielenie i resztę z niego.
Nie wiem czy dam radę to zrobić ale się okaże. Zajmę się tym później bo muszę opuścić hacjendę.
ADVERTGAME.PL
Niestety nie mam pojęcia jak to przekombinować. Ma ktoś pomysł jak to przerobić?
ADVERTGAME.PL
Tutaj masz funkcje. Dodaj ją do klasy pluginu (główny plik). Najbezpieczniej na końcu pliku przed ostatnim
}
/**
     * Get friendly "during time"
     * 
     * @param int $stamp Timestamp to calculate         
     * @return string WHERE statement   
     */  
    
private function getFriendlyTime($stamp 0)
    {
        
$nicetime = array();
        
        
$days floor($stamp 86400);
        
$stamp %= 86400;
        
        
$hours floor($stamp 3600);
        
$stamp %= 3600;
        
        
$minutes floor($stamp 60);
        
$stamp %= 60;
        
$seconds $stamp;

        if (
$days == 1)
        {
            
$nicetime['days'] = "1"."d";
        }
        else if (
$days 1)
        {
            
$nicetime['days'] = $days."d";
        }
    
        if (
$hours == 1)
        {
            
$nicetime['hours'] = "1"."g";
        }
        else if (
$hours 1)
        {
            
$nicetime['hours'] = $hours."g";
        }

        if (
$minutes == 1)
        {
            
$nicetime['minutes'] = "1"."m";
        }
        else if (
$minutes 1)
        {
            
$nicetime['minutes'] = $minutes."m";
        }

        if (
$seconds == 1)
        {
            
$nicetime['seconds'] = "1"."s";
        }
        else if (
$seconds 1)
        {
            
$nicetime['seconds'] = $seconds."s";
        }
    
        if (
count($nicetime))
        {
            return 
implode(" "$nicetime);
        }
    } 
Znajdź linie ~505
        $tpl['time'] = ($row['timeonline'] > 0) ? nice_time($row['timeonline'], array('years' => false'seconds' => false'short' => 1)) : $lang->none_registered;; 
zamień na
        $tpl['time'] = ($row['timeonline'] > 0) ? $this->getFriendlyTime($row['timeonline']) : $lang->none_registered;; 
Wyśmienicie:)
ADVERTGAME.PL



Użytkownicy przeglądający ten wątek:

2 gości