Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Erweiterte Foren-Statistik
#11
Update

· Erweiterte Foren-Statistik 1.2.0
  • Optimiert, auch für größere Foren (leider mehr Datenbank-Queries)

Das Plugin wurde komplett umgestaltet.
Es werden jetzt deutlich mehr Queries (bei der Standardeinstellung etwa 40) benötigt, dadurch lassen sich die Statistiken auch für größere Foren verwenden (das größte, mir bekannte, Forum, das dieses Plugin nutzt hat ca. 50.000 Beiträge und ca. 300 User).

Für die kleineren Foren empfehle ich deshalb immer noch die Version 1.1.2!
(weniger Traffic und weniger Zugriffe auf die Datenbank)
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#12
@Kyra:
Versuch doch bitte mal die Version 1.2.0


@Monalou:
Hiermit sollte es funktionieren:
PHP-Code:
        // Rezensionen
             
$stat['estats_rezensionen']['toptext'] = $lang->rezies;
             
$stat['estats_rezensionen']['icon'] = "<img src=\"".$theme['imgdir']."/rezensionen.gif\" border=\"0\" alt=\"".$lang->rezies."\" title=\"".$lang->rezies."\" />";
             
             
//Profilfeld laden
             
$query $db->query("SELECT fid10, uid FROM ".TABLE_PREFIX."profilefields ORDER BY fid10 DESC LIMIT 0,".$mybb->settings['estats_max']);
             
             
// User laden
            
$query2 $db->query("SELECT uid, username, usergroup, displaygroup FROM ".TABLE_PREFIX."users");
            
            
$stat['estats_rezensionen']['statistic'] = "";
            
            while (
$rezies $db->fetch_array($query))
            {
                 if (
$rezies['fid10'] > 0)
                 {
                      while (
$user $db->fetch_array($query2))
                    {
                        if (
$user['uid'] == $rezies['uid'])
                        {
                             
$users['uid'] = $user['uid'];
                             
$users['username'] = $user['username'];
                            
$users['usergroup'] = $user['usergroup'];
                            
$users['displaygroup'] = $user['displaygroup'];
                        }
                    }
                    
$db->data_seek($query20);
                    
$stat['estats_rezensionen']['statistic'] .= "<tr><td><a href=\"member.php?action=profile&amp;uid=".$users['uid']."\">".format_name($users['username'], $users['usergroup'], $users['displaygroup'])."</a></td>\n<td align=\"right\">".$rezies['fid10']."</td></tr>\n";
                }
                elseif (
$stat['estats_rezensionen']['statistic'] == "")
                {
                    
$stat['estats_rezensionen']['statistic'] .= "<tr><td>".$lang->nobody."</td>\n<td align=\"right\">".$lang->no_posts."</td></tr>\n";
                }
                else
                {
                    
$stat['estats_rezensionen']['statistic'] .= "<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n";
                }
            }
            if (
$stat['estats_rezensionen']['statistic'] == "")
            {
                
$stat['estats_rezensionen']['statistic'] .= "<tr><td>".$lang->nobody."</td>\n<td align=\"right\">".$lang->no_posts."</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n";
            }
            unset(
$users$query2); 
Das Icon hat den Namen: rezensionen.gif
In die Sprachdateien (inc/languages/*Sprache*/estats.lang.php) muss der folgende Ausdruck (in der jeweiligen Übersetzung):
PHP-Code:
$l['rezies'] = "Benutzer mit der besten Rezension"
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#13
@frankrieger
Die neue Version tut wieder ihren Dienst.
Die Stats sind :
Mitglieder: 194 | Themen: 2829 | Beiträge: 32514
Wo bei die Postings noch nicht importiert sind.
Zitieren
#14
Hallo Frank,

das Plugin habe ich mit dem Code erweitert und es ließ sich problem aktivieren. Wenn ich jetzt aber auf die Statistiken im Forum gehe, kommt folgende Meldung:

Zitat:MySQL error: 1054
Unknown column 'fid10' in 'field list'
Query: SELECT fid10, uid FROM mybb_profilefields ORDER BY fid10 DESC LIMIT 0,10

Wie kann ich das Problem lösen?

Vielen Dank schon mal für die Bemühungen Smile

LG, Elke!
Zitieren
#15
Entschuldigung. Da hat sich ein kleiner Fehler eingeschlichen.
Folgende Zeile:
PHP-Code:
//Profilfeld laden
             
$query $db->query("SELECT fid10, uid FROM ".TABLE_PREFIX."profilefields ORDER BY fid10 DESC LIMIT 0,".$mybb->settings['estats_max']); 
ändern in:
PHP-Code:
//Profilfeld laden
             
$query $db->query("SELECT fid10, uid FROM ".TABLE_PREFIX."userfields ORDER BY fid10 DESC LIMIT 0,".$mybb->settings['estats_max']); 
Hab aus Versehen die falsche Tabelle angegeben. Kommt vor wenn man nicht testet...
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#16
Hallo Frank,

ich habe es erneut getestet und mit einer anderen Änderung des Cods (wie anhängig) habe ich es zumindest schon mal geschafft, das es in der Statistik auftaucht.

PHP-Code:
// Rezensionen
             $stat['estats_rezensionen']['toptext'] = $lang->rezies;
             $stat['estats_rezensionen']['icon'] = "<img src=\"".$theme['imgdir']."/rezensionen.gif\" 

border=\"0\" alt=\""
.$lang->rezies."\" title=\"".$lang->rezies."\" />";
             
             
//Profilfeld laden
             $query $db->query("SELECT fid10, ufid FROM ".TABLE_PREFIX."userfields ORDER BY fid10 DESC LIMIT 

0,"
.$mybb->settings['estats_max']);
             
             
// User laden
            $query2 $db->query("SELECT uid, username, usergroup, displaygroup FROM ".TABLE_PREFIX."users");
            
            $stat
['estats_rezensionen']['statistic'] = "";
            
            while 
($rezies $db->fetch_array($query))
            {
                 if ($rezies['fid10'] > 0)
                 {
                      while ($user $db->fetch_array($query2))
                    {
                        if ($user['uid'] == $rezies['uid'])
                        {
                             $users['uid'] = $user['uid'];
                             $users['username'] = $user['username'];
                            $users['usergroup'] = $user['usergroup'];
                            $users['displaygroup'] = $user['displaygroup'];
                        }
                    }
                    $db->data_seek($query20);
                    $stat['estats_rezensionen']['statistic'] .= "<tr><td><a 

href=\"member.php?action=profile&amp;uid="
.$users['uid']."\">".format_name($users['username'], 

$users['usergroup'], $users['displaygroup'])."</a></td>\n<td align=\"right\">".$rezies['fid10']."</td></tr>\n";
                }
                elseif ($stat['estats_rezensionen']['statistic'] == "")
                {
                    $stat['estats_rezensionen']['statistic'] .= "<tr><td>".$lang->nobody."</td>\n<td 

align=\"right\">"
.$lang->no_posts."</td></tr>\n";
                }
                else
                
{
                    $stat['estats_rezensionen']['statistic'] .= "<tr><td>&nbsp;</td>\n<td 

align=\"right\">&nbsp;</td></tr>\n"
;
                }
            }
            if ($stat['estats_rezensionen']['statistic'] == "")
            {
                $stat['estats_rezensionen']['statistic'] .= "<tr><td>".$lang->nobody."</td>\n<td 

align=\"right\">"
.$lang->no_posts."</td></tr>\n<tr><td>&nbsp;</td>\n<td 

align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td 

align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td 

align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td 

align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td 

align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td 

align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td 

align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td 

align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n"
;
            }
            unset($users$query2); 

Siehe Bild! [attachment=6349]

Aber es wird nicht sortiert und die Namen erscheinen auch nicht Sad Müßte man da am Code noch etwas ändern?

Nachtrag: Liegt es vielleicht daran, das es ein Textfeld ist? Wenn ja, wie könnte ich das ändern? Ich bin mir nicht sicher, welche Angabe ich hier machen muss.

LG, Elke!
Zitieren
#17
Nochmal überarbeitet:
PHP-Code:
// Rezensionen
             
$stat['estats_rezensionen']['toptext'] = $lang->rezies;
             
$stat['estats_rezensionen']['icon'] = "<img src=\"".$theme['imgdir']."/rezensionen.gif\" border=\"0\" alt=\"".$lang->rezies."\" title=\"".$lang->rezies."\" />";
             
             
//Profilfeld laden
             
$profilfeld $db->query("SELECT fid10, uid FROM ".TABLE_PREFIX."userfields ORDER BY fid10 DESC LIMIT 0,".$mybb->settings['estats_max']);
             
             
// User laden
            
$alleuser $db->query("SELECT uid, username, usergroup, displaygroup FROM ".TABLE_PREFIX."users");
            
            
$stat['estats_rezensionen']['statistic'] = "";
            
            while (
$rezies $db->fetch_array($profilfeld))
            {
                 if (
$rezies['fid10'] > 0)
                 {
                    while (
$benu $db->fetch_array($alleuser))
                    {
                        if (
$benu['uid'] == $rezies['uid'])
                        {
                            
$benutzer['uid'] = $benu['uid'];
                            
$benutzer['username'] = $benu['username'];
                            
$benutzer['usergroup'] = $benu['usergroup'];
                            
$benutzer['displaygroup'] = $benu['displaygroup'];
                        }
                    }
                    
$db->data_seek($alleuser0);
                    
$stat['estats_rezensionen']['statistic'] .= "<tr><td><a href=\"member.php?action=profile&amp;uid=".$benutzer['uid']."\">".format_name($benutzer['username'], $benutzer['usergroup'], $benutzer['displaygroup'])."</a></td>\n<td align=\"right\">".$rezies['fid10']."</td></tr>\n";
                }
                elseif (
$stat['estats_rezensionen']['statistic'] == "")
                {
                    
$stat['estats_rezensionen']['statistic'] .= "<tr><td>".$lang->nobody."</td>\n<td align=\"right\">".$lang->no_posts."</td></tr>\n";
                }
                else
                {
                    
$stat['estats_rezensionen']['statistic'] .= "<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n";
                }
            }
            if (
$stat['estats_rezensionen']['statistic'] == "")
            {
                
$stat['estats_rezensionen']['statistic'] .= "<tr><td>".$lang->nobody."</td>\n<td align=\"right\">".$lang->no_posts."</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n<tr><td>&nbsp;</td>\n<td align=\"right\">&nbsp;</td></tr>\n";
            }
            unset(
$benutzer$profilfeld$alleuser); 
Ich hoffe so klappt es.
P.S.: Du benutzt Version 1.1.2, richtig?
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#18
Hallo Frank,

ich habe wieder einiges hin und her probiert. Es will einfach nicht klappen. Das Ergebnis ist genauso wie gestern abend!!!

Wie sieht das denn mit meiner Frage aus, könnte es daran liegen, das es ein Text-Feld ist?

Ich benutze die 1.2.0 Version!!

LG, Elke!
Zitieren
#19
Was meinst du mit Textfeld? Eine "Textarea" oder eine "Textbox"?
Wenn du nur eine Zahl eingibst nimmst du normalerweise eine "Textbox".

Kannst du bitte mal deine geänderte Plugin-Datei (estats.php) hier anhängen?
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#20
Hallo Frank,

in der Tabelle steht in der Spalte "Type" steht nur "Text" bei Rezensionen! Ist irgendwie merkwürdig das Ganze!

Ich hänge Dir mal die Datei ran!

LG, Elke!

[attachment=6350]
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Erweiterte Startseiten-Statistik MyBB.de Bot 0 2.145 13.12.2006, 15:21
Letzter Beitrag: MyBB.de Bot