MyBB.de Forum
Bedankungen zählen - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: Bedankungen zählen (/thread-8276.html)

Seiten: Seiten: 1 2


Bedankungen zählen - alexking - 08.01.2008

Ich habe das Thank You Plugin installiert und würde gerne wissen, wie man das so verknüpfen kann, dass man bei einer erhaltenen Bedankung auch einen Bewertungspunkt bekommen.

Sollte das nicht gehen, würde ich zumindest gerne die Anzahl der erhaltenen Danke unter der Beitragsanzahl anzeigen lassen

Könnt ihr mir da helfen ?


RE: Bedankungen zählen - Dave - 08.01.2008

Für die Ausgabe im Postbit:
Öffne die inc/functions_post.php und suche nach:
PHP-Code:
eval("\$post['user_details'] = \"".$templates->get("postbit_author_user")."\";"); 
und füge davor
PHP-Code:
$thxs $db->result($db->query("COUNT txid FROM ".TABLE_PREFIX."thx WHERE uid='".$post['uid'].""));
$thxs "Bedankungen: ".$thxs
ein.

Nun öffne im ACP dein postbit_author_user Template und {$thxs} an der richtigen Stelle.

Für das Austeilen eines Bewertungspunktes musst du einfach den entsprechenden Befehl, der den Bewertungspunkt "vergibt", aus der Datei extrahieren und in der thx.php in die Funktion do_action() setzen.


RE: Bedankungen zählen - alexking - 09.01.2008

Wie der die Anzahl der Bedankungen anzeigt, habe ich verstanden.

Kannst du mir die do action Funktion fertig geben und sagen wo ich sie in der Datei einfügen muss ? Ich kann mit php nicht viel anfangen ...


RE: Bedankungen zählen - Dave - 09.01.2008

Probier es mal hiermit:
PHP-Code:
//Do the hidden work
function do_action() 
{
    global 
$mybb$pid$tid$db$lang$theme;
    
$lang->load("thx");
    
    if (
$mybb->input['action'] == "thankyou"
    {        
        
$pid $_GET['pid'];
        
$tid $_GET['tid'];
        
$uid $_GET['uid'];

        
$check_query $db->query("SELECT * FROM ".TABLE_PREFIX."thx WHERE uid='".intval($uid)."' AND  tid='".intval($tid)."' AND pid='".intval($pid)."'");
        
$check $db->num_rows($check_query);

        if (
$check == 0
        {
            
$database = array (
                
"txid" => "NULL",
                
"uid" => $mybb->user['uid'],
                
"adduid" => $_GET['adduid'],
                
"pid" => $_GET['pid'],
                
"tid" => $_GET['tid'],
                
"time" => time()
            );
            
//Insert entry to DB
            
$query $db->insert_query(TABLE_PREFIX."thx"$database);

            
$thxuser get_user($_GET['adduid']);
            
// Build array of reputation data.
            
$reputation = array(
                
"uid" => intval($mybb->user['uid']),
                
"adduid" => $_GET['adduid'],
                
"reputation" => "Der User <a href=\"".str_replace("{uid}"$_GET['adduid'], PROFILE_URL)."\">".$thxuser['username']."</a> hat sich bedankt.",
                
"dateline" => time(),
            );

            
$plugins->run_hooks("reputation_do_add_process");

            
$db->insert_query(TABLE_PREFIX."reputation"$reputation);

            
// Recount the reputation of this user - keep it in sync.
            
$query $db->simple_select(TABLE_PREFIX."reputation""SUM(reputation) AS reputation_count""uid='".intval($_GET['adduid'])."'");
            
$reputation_value $db->fetch_field($query"reputation_count");
        
            
$db->update_query(TABLE_PREFIX."users", array('reputation' => intval($reputation_value)), "uid='".intval($_GET['adduid'])."'");

            
$plugins->run_hooks("reputation_do_add_end");
            
            
//Output entries to row
            
            
echo "<html><head><script type=\"text/javascript\" src=\"jscripts/prototype.lite.js?ver=121\"></script><script type=\"text/javascript\" src=\"jscripts/general.js?ver=121\"></script><link rel=\"stylesheet\" type=\"text/css\" href=\"{$theme['css_url']}\" /></head><body>".read_entries($pid,$tid,"p")."</body></html>";
        } 
        else  
        {
            echo 
$lang->thx_error;
        }
            
    }


Ich habe es allerdings nicht getestet. Die Funktion ist in der Plugin-Datei des Thank You-Plugins, da muss sie wieder rein, bzw. die alte muss mit meiner überschireben werden.


RE: Bedankungen zählen - ercvomnil - 09.01.2008

Wahrscheinlich bin ich mal wieder zu blöd Big Grin
Ich hab die Datei wie beschrieben verändert, der besagte Teil sieht jetz so aus:
PHP-Code:
        $thxs $db->result($db->query("COUNT txid FROM ".TABLE_PREFIX."thx WHERE uid='".$post['uid'].""));
        
$thxs "Bedankungen: ".$thxs;
        eval(
"\$post['user_details'] = \"".$templates->get("postbit_author_user")."\";");
    } 

Allerdings sagt er mir dann, wenn ich einen Thread öffnen will:

Fatal error: Call to undefined method databaseEngine::result() in /usr/export/www/vhosts/funnetwork/hosting/ercvomnil/Board/inc/functions_post.php on line 286
(und zwar nur das, kein Forum mehr, garnichts)
mfg erc


RE: Bedankungen zählen - StefanT - 09.01.2008

Nehme meinen Code: https://www.mybb.de/forum/showthread.php?tid=8224&pid=59542#pid59542


RE: Bedankungen zählen - alexking - 09.01.2008

@ Dave

Also der Code scheint ja vom Syntax richtig zu sein, weil das Forum keinen Fehler ausgibt, aber es fügt trotzdem keinen Bewertungspunkt hinzu bei einer Bedankung.
Trotzdem vielen Dank für deine Hilfe !


RE: Bedankungen zählen - Dave - 09.01.2008

Das Query steht im Code drin und wenn kein Fehler ausgegeben wird. Kannst du mal in der Debug nachschauen, ob das Query auch ausgeführt wird?


RE: Bedankungen zählen - alexking - 10.01.2008

Dave schrieb:Das Query steht im Code drin und wenn kein Fehler ausgegeben wird. Kannst du mal in der Debug nachschauen, ob das Query auch ausgeführt wird?


Wo finde ich die Debug denn ?


RE: Bedankungen zählen - Dave - 10.01.2008

Aktivieren kannst du die Debug-Infos im ACP unter Foreneinstellungen -> Ändern -> Server- und Optimierungsoptionen. Danach werden die Infos rechts im Footer angezeigt.