MyBB.de Forum
Erweiterte Foren-Statistik - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Veröffentlichungen und -Support (https://www.mybb.de/forum/forum-82.html)
+--- Thema: Erweiterte Foren-Statistik (/thread-18914.html)

Seiten: Seiten: 1 2 3 4 5 6 7


Update: Erweiterte Foren-Statistik 1.2.0 - frankrieger - 15.01.2007

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)


RE: Erweiterte Foren-Statistik 1.2.0 - frankrieger - 15.01.2007

@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"



RE: Erweiterte Foren-Statistik 1.2.0 - Kyra - 15.01.2007

@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.


RE: Erweiterte Foren-Statistik 1.2.0 - ElkeK. - 16.01.2007

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!


RE: Erweiterte Foren-Statistik 1.2.0 - frankrieger - 17.01.2007

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...


RE: Erweiterte Foren-Statistik 1.2.0 - ElkeK. - 17.01.2007

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!


RE: Erweiterte Foren-Statistik 1.2.0 - frankrieger - 18.01.2007

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?


RE: Erweiterte Foren-Statistik 1.2.0 - ElkeK. - 18.01.2007

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!


RE: Erweiterte Foren-Statistik 1.2.0 - frankrieger - 18.01.2007

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?


RE: Erweiterte Foren-Statistik 1.2.0 - ElkeK. - 18.01.2007

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]