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

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

Błędne wyświetlanie ostatniej wizyty w statystykach użytkownika na stronie głównej

Błąd   Założony przez  TSUNAMI.

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:

<?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.
Kodowanie, edycja i tworzenie styli, for, stron, poszczególnych elementów - polecane szczególnie dla osób, które nie potrafią sobie poradzić z problemami.
(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:

<?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?
Łukasz napisał 31.07.2019, 12:40:
Kody podajemy w tagach [code] lub [php], poprawia to czytelność posta.
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.
Kodowanie, edycja i tworzenie styli, for, stron, poszczególnych elementów - polecane szczególnie dla osób, które nie potrafią sobie poradzić z problemami.
Ok, ogarnąłem.

To

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

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


To

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


A nad tym

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


I teraz zawsze będzie pokazywało Dzisiaj i aktualną godzinę.
Dzięki za pomoc.
Łukasz napisał 31.07.2019, 12:39:
Kody podajemy w tagach [code] lub [php], poprawia to czytelność posta.



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

2 gości