Webboard

Pełna wersja: Błędne wyświetlanie ostatniej wizyty w statystykach użytkownika na stronie głównej
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Adres forum:
GameSkill.pl


Wersja silnika:
1.8.21


Opis problemu:
Problem wygląda tak, iż aktualnie jest godzina 8:19,

[Obrazek: 2XA4QUW.png]

a na stronie głównej w statystykach pokazuje 00:12, nawet odświeżanie strony czy cache nie pomaga.

Dodam, że na gościu wszystko działa poprawnie

[Obrazek: k8e5pqf.png]

Kod pluginu:

Kod:
<?php





if(!defined("IN_MYBB"))

{

    die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");

}



$plugins->add_hook("index_start", "statsuserindex");



function statsuserindex_info()

{

//info

    $website = "https://webboard.pl";

    return array(

        "name"            => "Statystyki użytkownika na stronie głównej",

        "description"    => "---",

        "website"        => "{$website}",

        "author"        => "Snake_",

        "authorsite"    => "{$website}/uzytkownik-snake_19523",

        "version"        => "0.1",

"compatibility" => "18*",

    );

}



function statsuserindex_activate()

{

}

function statsuserindex_deactivate()

{

}



function statsuserindex()

{

    global $mybb, $cache, $statsuserlog, $theme, $groupscache, $lastvisit;

        //ogolna funkcja

        if($mybb->user['uid']) {

            $tekst_wyswietlany_w_thead = "Statystyki";

            $nick_usera = build_profile_link(format_name($mybb->user['username'], $mybb->user['usergroup'], $mybb->user['displaygroup']), $mybb->user['uid']);

            $nick_usera = "<span style=\"font-size: 20px;\">{$nick_usera}</span>";

            $avatar_usera = '<img src="' . (empty($mybb->user['avatar']) ? 'images/default_avatar.png' : $mybb->user['avatar']) . '" title="' . $mybb->user['username'] . '" class="avatar_usera"/>';

            $reputacja_usera = $mybb->user['reputation'];        

            $email_usera = "<a href=\"mailto:{$mybb->user['email']}\">{$mybb->user['email']}</a>";

            $postow_usera = $mybb->user['postnum'];

        }

        else {

            $tekst_wyswietlany_w_thead = "Twoje statystyki";

            $nick_usera = "Gość";

            $avatar_usera = '<img src="images/default_avatar.png" class="avatar_usera" />';

            $reputacja_usera = 0;

            $email_usera = "<i>Nie zidentyfikowano</i>";

            $postow_usera = 0;

        }

    



        if(!is_array($groupscache))

                            $groupscache = $cache->read("usergroups");

        

        $grupa_usera = $groupscache[$mybb->user['usergroup']]['title'];



        $ostatnio_tu_bylem = $mybb->user['lastvisit'];

        $ip = $_SERVER['REMOTE_ADDR'];

        

        $statsuserlog = "

<div class=\"category topstats\">

<div class=\"heading\">

<div class=\"title topstats_9\"> {$tekst_wyswietlany_w_thead}</div>

</div>

<div class=\"content\">

<div class=\"row\">

<div class=\"item avatar\">{$avatar_usera}</div>

<div class=\"item info\">

<h3 class=\"title\">

<a href=\"https://gameskill.pl/user-roughster\">{$nick_usera}</a>

</h3>

        <h5 class=\"subtitle\"><b>Grupa:</b> {$grupa_usera}</h5>

<h5 class=\"subtitle\"><b>Reputacja:</b> {$reputacja_usera}</h5>

<h5 class=\"subtitle\"><b>Ilość Postów:</b> {$postow_usera}</h5>

<h5 class=\"subtitle\"><b>Email:</b> {$email_usera}</h5>

<h5 class=\"subtitle\"><b>Twoje IP:</b> {$ip}</h5>

<h5 class=\"subtitle\"><b>Ostatnia Wizyta:</b> {$lastvisit}</h5>



</div>

</div>";    

}

?>

Konto testowe:
Login: test
Hasło: 123456
To są jakieś informacje do panelu bocznego o nas? Jak tak to można tam w sumie wyświetlić po prostu obecną godzinę - googluj "PHP show current time".


Strzelam, że lastvisit na użytkowniku przechowuje informacje kiedy byłeś ostatnio zalogowany, pomijając obecne zalogowanie.
Na gościu tego nigdzie nie przechowuje, więc wyświetla obecną godzinę. Wygląda na zaplanowane zachowanie mybb.
(31.07.2019, 07:06)Divir napisał(a): [ -> ]To są jakieś informacje do panelu bocznego o nas? Jak tak to można tam w sumie wyświetlić po prostu obecną godzinę - googluj "PHP show current time".


Strzelam, że lastvisit na użytkowniku przechowuje informacje kiedy byłeś ostatnio zalogowany, pomijając obecne zalogowanie.
Na gościu tego nigdzie nie przechowuje, więc wyświetla obecną godzinę. Wygląda na zaplanowane zachowanie mybb.


Tak, jest plugin z informacjami do panelu bocznego.


Znalazłem coś takiego:

Kod PHP:
<?php
echo 
"The time is " date("h:i:sa");
?>

(muszę wrzucić to tak, bo jak wrzucam do [code] lub [php] to zamienia się ten kod w  itd itp)

Jak mam to teraz zaimplementować do tego pluginu?
Wystarczy wkleić funkcje date tam gdzie masz przypisana wartość do zmiennej ostatnio_tu_bylem (zamienić to co jest przypisane do zmiennej). Chcesz zawsze mieć obecną godzinę, więc to raczej najlepsze rozwiązanie.

Kod możesz wklejać przełączając się na tryb kodu w edytorze na pewno, tak na przyszłość. Ewentualnie używać szybkiej odpowiedzi.
Ok, ogarnąłem.

To

Kod:
<h5 class=\"subtitle\"><b>Ostatnia Wizyta:</b> {$lastvisit}</h5>
zmieniłem na

Kod:
<h5 class=\"subtitle\"><b>Ostatnia Wizyta:</b> Dzisiaj, $ostatnio_tu_bylem</h5>


To

Kod PHP:
$ostatnio_tu_bylem $mybb->user['lastvisit']; 
zmieniłem na
Kod PHP:
$ostatnio_tu_bylem $mybb-> echo $timezone


A nad tym

Kod PHP:
$ostatnio_tu_bylem $mybb-> echo $timezone
dodałem
Kod PHP:
$timezone date("h:i"); 


I teraz zawsze będzie pokazywało Dzisiaj i aktualną godzinę.
Dzięki za pomoc.