[2.3] Statistik 1.1

Stiegi

New Member
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 ?
 

rellek

relativ sensationell
Teammitglied
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...
 

Stiegi

New Member
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
 

rellek

relativ sensationell
Teammitglied
AW: Statistik 1.1

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

Stiegi

New Member
AW: Statistik 1.1

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

Stiegi

New Member
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
 

Stiegi

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

Mara777

Member
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
 

rellek

relativ sensationell
Teammitglied
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.
 

rellek

relativ sensationell
Teammitglied
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

  • install_smilieaddon.php
    801 Bytes · Aufrufe: 47
Zuletzt bearbeitet:
Oben