Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 40 Gast/Gäste
ProPortal 2.6.2
Hallo Leute,

ich habe in einem Fremdforum folgendes Problem:
Für den Block im Kopfbereich ist die Datei "wwo24.php" definiert also "wer war heute online".

Hier werden User teilweise doppelt/mehrfach (mit der gleichen Onlinezeit) angezeigt.
- die User waren nicht mit verschiedenen Geräten online
- der Fehler entsteht sporadisch
- es betrifft sporadisch verschiedene User

Ich kann den Fehler nicht explizit herbeiführen. Es funktioniert ein paar Tage, dann plötzlich wieder nicht.
Der Fehler scheint aus dem Nichts zu entstehen und betrifft unterschiedliche User.
Ich finde auch im Code der Funktion (siehe Anhang) keinen Hinweis auf dieses Verhalten.
Das Problem besteht übrigens auch in anderen Foren, die ich mir ansehen durfte.

Hat jemand eine Idee??

Anbei die "wwo24.php"
Ich finde keinen Fehler, der mir plausibel für dieses Verhalten ist.
PHP-Code:
<?php
/**###########################################
 # ProPortal 2.6.2
 # ab MyBB Version 1.8.4
 # von MrBrechreiz
 # Datum: 25.02.2018
###########################################*/
 
if (!defined("IN_PORTAL")) {
    die(
"<div style=\"border:1px solid #CC0000; padding:3px; margin:0; font-family:Tahoma; width:250px; font-size:12px;\"><strong>ERROR:</strong> This file cannot be accessed directly!</div>");
}
require_once 
MYBB_ROOT."inc/functions_user.php";
    
$online_today '';
$ot_order $proportal->settings['ot_order'];
$ot_sort $proportal->settings['ot_sort'];
$order "ORDER BY u.{$ot_order} {$ot_sort}";
date_default_timezone_set("Europe/Berlin");
$timestamp time();
$timesearch mktime(000date("n"), date("j"), date("Y"));
$queries = array();
$queries[] = $db->simple_select(
    
"users u LEFT JOIN ".TABLE_PREFIX."sessions s ON (u.uid=s.uid)"
    
"s.sid, s.ip, s.time, s.location, u.*, u.uid, u.username, u.invisible, u.usergroup, u.displaygroup, u.avatar, u.lastactive",
    
"u.lastactive >= '{$timesearch}{$order}"
);
$queries[] = $db->simple_select(
    
"sessions s LEFT JOIN ".TABLE_PREFIX."users u ON (s.uid=u.uid)",
    
"s.sid, s.ip, s.uid, s.time, s.location, u.*, u.username, u.invisible, u.usergroup, u.displaygroup, u.avatar, u.lastactive",
    
"s.time >= '{$timesearch}{$order}"
);
$comma $onlinemembers '';
$membercount $guestcount $anoncount 0;
$doneusers $ips = array();
foreach(
$queries as $query)
{
    while(
$onlineuser $db->fetch_array($query))
    {
        if(isset(
$onlineuser['sid'])){
            
$botkey strtolower(str_replace("bot="''$onlineuser['sid']));
        }

        if(
$onlineuser['uid'] > 0){
            if(
$doneusers[$onlineuser['uid']] < $onlineuser['time'] || !$doneusers[$onlineuser['uid']])
            {
                
$ava_global $proportal->settings['ava_global'];
                
$only_ava $proportal->settings['onlyava_wwo24'];
                if(
$ava_global == 1)
                {
                    if(
$proportal->settings['ava_wwo24'] == || $only_ava == 1)
                    {
                        if(
$onlineuser['avatar'] != '')
                        { 
                            
$onlineuser['avatar'] = htmlspecialchars_uni($onlineuser['avatar']);
                        }
                        else
                        { 
                            if(
$proportal->settings['ava_wwo24_dim'] == '')
                            {
                                
$onlineuser['avatar'] = $mybb->settings['bburl']."/images/default_avatar.png"
                                
$onlineuser['avatardimensions'] = "25|25";
                            }
                            else
                            {
                                
$onlineuser['avatar'] = $mybb->settings['bburl']."/images/default_avatar.png";
                                
$onlineuser['avatardimensions'] = $proportal->settings['ava_wwo24_dim'];
                            }
                        }
                        
$avatar_dimensions_wwo24 explode("|"$onlineuser['avatardimensions']);
                        
                        if(
$avatar_dimensions_wwo24[0] && $avatar_dimensions_wwo24[1])
                        {
                            list(
$max_width_wwo24$max_height_wwo24) = explode("|"my_strtolower($proportal->settings['ava_wwo24_dim']));
                            if(
$avatar_dimensions_wwo24[0] > $max_width_wwo24 || $avatar_dimensions_wwo24[1] > $max_height_wwo24)
                            {
                                require_once 
MYBB_ROOT."inc/functions_image.php";
                                
$scaled_dimensions_wwo24 scale_image($avatar_dimensions_wwo24[0], $avatar_dimensions_wwo24[1], $max_width_wwo24$max_height_wwo24);
                                
$block_wwo24_avatar_width_height "width=\"{$scaled_dimensions_wwo24['width']}\" height=\"{$scaled_dimensions_wwo24['height']}\"";
                            }
                            else
                            {
                                
$block_wwo24_avatar_width_height "width=\"{$avatar_dimensions_wwo24[0]}\" height=\"{$avatar_dimensions_wwo24[1]}\"";    
                            }
                        }
                        
$avatar "<img class=\"portalava\" src=\"".$onlineuser['avatar']."\" alt=\"\" {$block_wwo24_avatar_width_height} border=\"0\" style=\"vertical-align:middle; min-height:15px;min-width:15px; margin:6px;\" />";
                    }
                    else
                    {
                        
$avatar "";
                    }
                }
                else
                {
                    
$avatar "";
                }
            
                
$groupcolor_global $proportal->settings['groupcolor_global'];

                if(
$groupcolor_global == && $proportal->settings['gcolor_wwo24'] == 1)
                {
                    
$formated_username format_name(htmlspecialchars_uni($onlineuser['username']), $onlineuser['usergroup'], $onlineuser['displaygroup']);
                    
$formated_username str_replace(array('<b>''</b>''<strong>''</strong>''<em>''</em>'), array(''''''''''''), $formated_username);
                    
$onlineuser['profilelink'] = build_profile_link($formated_username$onlineuser['uid']);
                }
                else
                {
                    
$onlineuser['profilelink'] = build_profile_link(htmlspecialchars_uni($onlineuser['username']), $onlineuser['uid']);
                }
                
                if(
$onlineuser['invisible'] == 1){
                    ++
$anoncount;
                }
                ++
$membercount;
                
                if(
$onlineuser['invisible'] != || $mybb->usergroup['canviewwolinvis'] == || $onlineuser['uid'] == $mybb->user['uid'])
                {
                    
$invisiblemark = ($onlineuser['invisible'] == 1) ? "*" "";
                    
$username format_name(htmlspecialchars_uni($onlineuser['username']), $onlineuser['usergroup'], $onlineuser['displaygroup']);
                    
$onlineuser['userusername'] = htmlspecialchars_uni($onlineuser['username']);
                    
$onlineuser['userusername'] = stripslashes($onlineuser['userusername']);
                    
$onlinetime my_date($mybb->settings['timeformat'], $onlineuser['lastactive']);
                    if(
$only_ava == 1)
                    {
                        eval(
"\$onlinemembers .= \"".$templates->get("pro_portal_wwo24_onlinemembers_only_ava")."\";");
                    }
                    else if(
$proportal->settings['online_today_time'] == 1)
                    {
                        eval(
"\$onlinemembers .= \"".$templates->get("pro_portal_wwo24_onlinemembers_today_time")."\";");
                        
$comma ", ";
                    }
                    else
                    {
                        eval(
"\$onlinemembers .= \"".$templates->get("pro_portal_wwo24_onlinemembers")."\";");
                        
$comma ", ";
                    }
                }

                if(isset(
$onlineuser['time']))
                {
                    
$doneusers[$onlineuser['uid']] = $onlineuser['time'];
                }
                else
                {
                    
$doneusers[$onlineuser['uid']] = $onlineuser['lastactive'];
                }
            }
        }
        else if(
strstr($onlineuser['sid'], "bot=") !== false && $session->bots[$botkey] && !in_array($onlineuser['ip'], $ips))
        {
            
$onlinemembers .= $comma.format_name($session->bots[$botkey], $session->botgroup);
            
$comma ", ";
            ++
$botcount;
        }
        else if(
$proportal->settings['online_today_count_guest'] == 1)
        {
            ++
$guestcount;
            
$guests[] = $onlineuser['ip'];
        }
    }
}

$datum date($mybb->settings['dateformat']);
$onlinecount $membercount $guestcount;
$onlinebit = ($onlinecount != 1) ? $lang->online_plural $lang->online_singular;
$memberbit = ($membercount != 1) ? $lang->online_member_plural $lang->online_member_singular;
$anonbit = ($anoncount != 1) ? $lang->online_anon_plural $lang->online_anon_singular;
$lang->whos_online_today $lang->sprintf($lang->whos_online_today$datum);

if(!
$result_blocks['title'] == 1)
{
    
$result_blocks['title'] = $lang->whos_online_today;
}
if(isset(
$result_blocks['title']))
{
    
$result_blocks['title'] = $result_blocks['title'];
}

if(
$proportal->settings['online_today_count_guest'] == 1){
    
$guestbit = ($guestcount != 1) ? $lang->online_guest_plural $lang->online_guest_singular;
    
$lang->online_note_today $lang->sprintf($lang->online_note_today_gmy_number_format($onlinecount), $onlinebit$datummy_number_format($membercount), $memberbitmy_number_format($anoncount), $anonbitmy_number_format($guestcount), $guestbit);
}else{
    
$lang->online_note_today $lang->sprintf($lang->online_note_todaymy_number_format($onlinecount), $onlinebit$datummy_number_format($membercount), $memberbitmy_number_format($anoncount), $anonbit);
}

eval(
"\$online_today = \"".$templates->get("pro_portal_wwo24_online_today")."\";");

if(
$proportal->settings['responsive'] == && $mybb->user['uid'] == 0)
{
    eval(
"\$wwonline_today = \"".$templates->get("pro_portal_wwo24_responsive")."\";");
}
else if(
$mybb->user['portalresonsive'] == 1)
{
    eval(
"\$wwonline_today = \"".$templates->get("pro_portal_wwo24_responsive")."\";");
}
else if(
$mybb->user['portalresonsive'] == 0)
{
    eval(
"\$wwonline_today = \"".$templates->get("pro_portal_wwo24")."\";");
}
else if(
$proportal->settings['responsive'] == && $mybb->user['uid'] == 0)
{
    eval(
"\$wwonline_today = \"".$templates->get("pro_portal_wwo24")."\";");
}

echo 
$wwonline_today
Zitieren
...gaaanz vorsichtig *push*

Hat niemand eine Idee, wonach man suchen könnte/müsste??
Zitieren
(20.09.2019, 01:38)bv64 schrieb: Probier mal folgenden Block in dein Portal einzubauen; das ist der ursprüngliche latestthreads mit einer winzigen Änderung...

Datei in portal/blocks laden und über ACP --> ProPortal --> Block-Verwaltung
an der gewünschten Stelle im Portal einbinden

Hallo,

ich habe die Datei in portal/blocks geladen, allerdings erscheint sie bei mir nicht in der Blockverwaltung. Muss ich da noch irgendwas aktivieren, oder einstellen, damit sie dort erscheint?
Zitieren
Blockverwaltung -> Block hinzufügen
Woher soll die Blockdatei sonst wissen, in welchem Block sie definiert ist?! Wink
Zitieren
Danke, jetzt klappt es. Rolleyes
Zitieren
Mal eine Frage. Ich habe mir das NetPen Pro - MyBB Theme installiert. Nun habe ich auf der Portalansicht zwei Schwierigkeiten. Ich habe zwar deswegen schon mit dem Support von NetPen Kontakt aufgenommen, die haben mich aber hierhin verwiesen.

Also, Schwierigkeit 1 ist die, dass im ProPortal der Footer auf der rechten Seite angezeigt wird. Das aber nur wenn ich als Gast die Seite besuche. Sobald ich mich einlogge, ist der Footer da wo er hingehört, nämlich unten. Habe mal einen Screenshot angehängt. Wichtig ist dabei noch zu wissen, dass ich über ProPortal alle Boxen auf der rechten Seite deaktiviert habe, also rechts ist eigentlich nichts.

Schwierigkeit 2 ist die mobile Ansicht. In der mobilen Ansicht werden die Boxen des Portals schön untereinander angezeigt, aber leider in der Reihenfolge zuerst alle Boxen aus der linken Spalte und dann die Boxen aus der Mitte. Ich möchte aber gerne, dass dort zuerst die Boxen aus der Mitte und dann die Boxen aus der linken Spalte angezeigt werden.

Sind das Fragen die hier gelöst werden können, oder eher doch was für den NetPen Support? Wie gesagt, die verweisen mich hierhin.

   
Zitieren
Vielleicht beflügelt es ja hier Einige Dir zu helfen, wenn Du mal einen Link hinterlässt, wo man ohne Authentifizierung Deine Seite sehen kann.
Ich kann es nicht und habe nicht die Zeit und Lust auf ein "Ratespiel".
Zitieren
Uppppps, sorry.

https://kappius.net/forum

Ist ein Tesforum
Zitieren
Man kanns ja nun leider nicht im eingeloggten Zustand sehen, aber wenn es da funktioniert,
verwenden Gäste entwederr ein anderes Theme oder die Blockeinstellungen sind unterschiedlich.
Zitieren
Ich gehe einen Schritt zurück. Ich finde den Fehler nicht. Daher gehe ich jetzt zuerst mal zurück zum "normalen" Portal und schaue mal. wie es da ausschaut. Wenn es da funktioniert, nerve ich ich hier nochmal.
Zitieren