Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

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


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Bedankungen zählen
#1
Question 
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 ?
Zitieren
#2
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.
Zitieren
#3
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 ...
Zitieren
#4
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.
Zitieren
#5
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
Zitieren
#6
Nehme meinen Code: https://www.mybb.de/forum/showthread.php...2#pid59542
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#7
@ 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 !
Zitieren
#8
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?
Zitieren
#9
Question 
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 ?
Zitieren
#10
Aktivieren kannst du die Debug-Infos im ACP unter Foreneinstellungen -> Ändern -> Server- und Optimierungsoptionen. Danach werden die Infos rechts im Footer angezeigt.
Zitieren