[2.3] Statistik 1.1

AW: Statistik 1.1

Hi, habe noch zwei Fragen.
Der Hack ist nun drinnen....

1. Kann man Themenbereiche ausschliessen (z.b. Archive) ?
2. Gibt es eine Möglichkeit,eine Smilieswertung einzufügen, d.h. welche Smilies am Meisten benutzt wurden ?
 
AW: Statistik 1.1

sry, bin grad in Köln wegen gamescom, Internet ist Glückssache 🙁
deshalb nur zwischen tür und angel:
1. afaik ging das, ja. hab ich, meine ich, damals fürs entertainment gemacht. such ich dir ab montag (dann bin ich wieder daheim) raus, wenns noch passen würd
2. gibts in der version momentan nicht, würde auch ein bisschen dem konzept der maximalen performance widersprechen...
 
AW: Statistik 1.1

Schade, das das mit den Smilies nicht geht, das gab es früher mal bei der 2.0. aber Danke für die Infos und viel SPaß in Köln...bis montag
 
AW: Statistik 1.1

das geht sicher wenn ich das implementieren würde.... aber dazu fehlt die zeit, momentan.
 
AW: Statistik 1.1

Komisch...momentan kann ich nichtmal was in der Konfiguration was ändern, die Statistik bleibt wie sie ist...grübel
 
AW: Statistik 1.1

HILFE....warum kann ich in der STatistik nichts deaktivieren ? Die Statistiken bleiben so an/aus geschaltet wie am Anfang ich es mal hatte
 
AW: Statistik 1.1

Hallo ??? Noch jemand da ?

Also, STatistik läuft wieder, aber wiegesagt hatte ich ja noch den Wunsch, das man bestimmte Bereiche (z.b. Archiv) daraus deaktivieren kann...
 
AW: Statistik 1.1

Hallo, ja die sache mit den Smilies wäre genial denn danach habe ich vor kurzem gesucht.
Gibt es nicht oder nicht mehr.
Habe aber grad die letzten Stunden alle gelöscht und bin am neu sortieren.
Eine Smilie-Stat wäre obergenial ...

Gruass
 
AW: Statistik 1.1

@Stiegi
Hat die Datei ./acp/lib/options.inc.php Schreibrechte? CHMOD 666 würde gebraucht werden.

@ Smily-Statistik
Ich denke, ich werde da was basteln. Könnte die Woche werden.
 
AW: Statistik 1.1

Wie versprochen, das Smilie-Addon.

SQL-Abfrage ausführen:
Code:
ALTER TABLE bbX_smilies ADD smiliecount INT(16) NOT NULL
Das X bei bbX wie immer durch die Boardnummer ersetzen

acp/lib/functions.php, suche
PHP:
?>
davor einfügen:
PHP:
function countsmilies($post) {
    global $db, $n;
    
    $result = array();
    
    $smilies = $db->query("SELECT smilieid, smiliecode FROM bb".$n."_smilies");
    
    while($row = $db->fetch_array($smilies)) {
        $result[$row['smilieid']] = substr_count($post, $row['smiliecode']);
    }
    
    return $result;
}

function updatesmiliecount($smiliecount, $oldpost = '') {
    global $db, $n;
    
    if($oldpost != '') {
        
        $oldsmilies = countsmilies($oldpost);
        
        reset($oldsmilies);
        while (list($key, $val) = each($oldsmilies)) {
            if($val != 0)
                $db->query("UPDATE bb".$n."_smilies SET smiliecount = smiliecount - ".intval($val)." WHERE smilieid = ".intval($key)." LIMIT 1");
        }
    }
    
    reset($smiliecount);
    while (list($key, $val) = each($smiliecount)) {
        if($val != 0)
            $db->query("UPDATE bb".$n."_smilies SET smiliecount = smiliecount + ".intval($val)." WHERE smilieid = ".intval($key)." LIMIT 1");
    }
    
}
Nun die im Anhang befindliche Datei install_smilieaddon.php in den Board-Ordner laden, aufrufen und wenns fertig ist, dann die Datei löschen.

statistics.php, suche:
PHP:
// TOPPOSTERS
davor einfügen:
PHP:
// SMILIES
$i = 0;
$x = 0;
$rank = 0;
$max_value = 0;
    
$max_value = $db->query_first("SELECT max(smiliecount) as cnt FROM bb".$n."_smilies");
$max_value = $max_value['cnt'];

$topsmilies = $db->query("SELECT smiliepath, smilietitle, smiliecount FROM bb".$n."_smilies ORDER BY smiliecount DESC LIMIT $topx_limit;");
while($row = $db->fetch_array($topsmilies)) {
    $rank++;
    $i++;
    $tdclass = getone($i, "tablea", "tableb");
    
    $smiliepath = str_replace("{imagefolder}", $style['imagefolder'], $row['smiliepath']);
    $smilietitle = htmlentities($row['smilietitle']);
    $smiliecount = number_format($row['smiliecount'], 0, $lang->get("LANG_GLOBAL_DEC_POINT"), $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
    
    // Grafik
    if($rank == 1) {
        $gfx = 90;
        $max_value = $row['smiliecount'];
    } else {
        if($max_value == 0) $gfx = 90;
        else $gfx = ceil($row['smiliecount']*90/$max_value);
    }

    if ($x == 5) $x = 0;
    $x++;
    
    eval("\$top_smilies_bit .= \"".$tpl->get("statistics_top_smilies_bit")."\";");
    
}
addreply.php, suche:
PHP:
$db->query("UPDATE bb".$n."_statistics SET posts=posts+1 WHERE date>='".mktime(0,0,0, date(m, time()), date(d, time()), date(Y, time()))."';");
danach einfügen:
PHP:
updatesmiliecount(countsmilies($message));
newthread.php, suche:
PHP:
$db->query("UPDATE bb".$n."_statistics SET posts=posts+1 WHERE date>='".mktime(0,0,0, date(m, time()), date(d, time()), date(Y, time()))."';");
danach einfügen:
PHP:
updatesmiliecount(countsmilies($message));
editpost.php, suche:
PHP:
if ($parseurl == 1 && $allowbbcode == 1) $message = parseURL($message);
danach einfügen:
PHP:
            // *** STATISTIK ***
            $oldmessage = $db->query_first("SELECT message FROM bb".$n."_posts WHERE postid = '$postid'");
            $oldmessage = $oldmessage['message'];
            updatesmiliecount(countsmilies($message), $oldmessage);
            // *** STATISTIK ***
Erstelle ein Template
Name: statistics_top_smilies_bit
Inhalt:
Code:
<tr align="left" class="smallfont">
<td class="$tdclass" align="center">$rank</td>
<td class="$tdclass"><img src="$smiliepath" alt="$smilietitle" tile="$smilietitle" /></td>
<td class="$tdclass"><div><span style="float:right">$smiliecount</span></div><img src="{$style['imagefolder']}/vote_middle$x.gif" style="width:$gfx%; height:9px" alt="" /></td>
</tr>
Template "statistics", suche:
Code:
<if($statistics_enable_top_posters == 1 && $wbbuserdata['can_view_statistics_top_posters'] == 1)><then>
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:100%" class="tableinborder">
<tr class="smallfont">
 <td class="tabletitle" align="center" colspan="3"><span class="normalfont"><b>{$lang->items['LANG_STATISTICS_TOP_POSTER']}</b></span></td>
</tr>
<tr class="smallfont">
 <td class="tabletitle" align="center" style="width:2%"><b>#</b></td>
 <td class="tabletitle" align="center" style="width:23%"><b>{$lang->items['LANG_STATISTICS_TOP_POSTER_USER']}</b></td>
 <td class="tabletitle" align="center" style="width:75%"><b>{$lang->items['LANG_STATISTICS_TOP_BOARDS_POSTS_POSTS']}</b></td>
</tr>
$top_posters_bit
</table>
<br />
</then></if>
danach einfügen:
Code:
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:100%" class="tableinborder">
<tr class="smallfont">
 <td class="tabletitle" align="center" colspan="3"><span class="normalfont"><b>Top-Smilies</b></span></td>
</tr>
<tr class="smallfont">
 <td class="tabletitle" align="center" style="width:2%"><b>#</b></td>
 <td class="tabletitle" align="center" style="width:23%"><b>Smilie</b></td>
 <td class="tabletitle" align="center" style="width:75%"><b>Anzahl</b></td>
</tr>
$top_smilies_bit
</table>
<br />
Das müsste es gewesen sein. Wäre nett, wenns mal jemand testen könnte 🙂
 

Anhänge

Zuletzt bearbeitet:
Zurück
Oben