MyBB.de Forum
Task - Automatische Bewertung - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Entwicklung (https://www.mybb.de/forum/forum-74.html)
+--- Thema: Task - Automatische Bewertung (/thread-33417.html)



Task - Automatische Bewertung - cthulhu - 18.04.2016

Vorab, ich dachte in dieses Forum passt es am besten, falls nicht, bitte einfach verschieben.

Hallo,

ich möchte gerne eine Task für Mybb erstellen,
die alle XY Minuten die letzten XY User checkt,
ob diese <2 Likes haben, wenn ja schauen ob ein Avatar hochgeladen wurden,
falls wieder ja, Bewertung hinzufügen +2.

Leider scheitert es schon daran, dass ich die js Funktion submitReputation nicht aufgerufen bekomme,
um überhaupt automatisiert eine Bewertung abzugeben.
Das hier ist mein "Anfang":
PHP-Code:
<script type="text/javascript" src="{$mybb->asset_url}/jscripts/general.js?ver=1800"></script>
<?
php
echo "test";
MyBB.submitReputation(6010);
?>

Leider bekomme ich die Meldung, dass die Funktion submitReputation nicht bekannt sei,
obwohl doch oben die js Datei eingebunden wurde!?
Hab  es auch schon mit kompletter Adresse http://.... versucht, da hat sich nichts geändert.


RE: Task - Automatische Bewertung - StefanT - 18.04.2016

Du kannst in PHP keine Javascript-Funktionen aufrufen. Javascript wird nur vom Browser interpretiert.


RE: Task - Automatische Bewertung - cthulhu - 18.04.2016

Besteht dann überhaupt die Möglichkeit, die Bewertungen zu automatisieren?
Aus der reputation.php finde ich auch nich raus, wass ich aufrufen müsste,
um eine Bewertung zu erstellen...


RE: Task - Automatische Bewertung - StefanT - 19.04.2016

Natürlich kannst du die Bewertung direkt in die Datenbank einfügen. Schau dir am besten einmal die reputation.php an.


RE: Task - Automatische Bewertung - cthulhu - 20.04.2016

Ok, geht also doch nicht ohne Datenbank.
Dachte es würde auch durch eine url mit mehreren post Daten gehen.

Werde mich dann mal ran machen, bei Fragen meld ich mich hier wieder.


RE: Task - Automatische Bewertung - cthulhu - 15.05.2016

So, das mit den automatischen Bewertungen habe ich mitlerweile hinbekommen in 4 verschiedenen Ausführungen.

Jetzt möchte ich allerdings noch, dass das Skript automatisch einen Beitrag postet,
Da komm ich allerdings nicht so wirklich klar, weil ich in "newreply.php" nicht so wirklich was finde,
was mir so eindeutig erscheint wie bei den Bewertungen.

Kann mir hier jemand einen Tipp dazu geben, welche Funktion oder Datenbankquery ich verwenden muss um einen Post hinzuzufügen?


RE: Task - Automatische Bewertung - cthulhu - 16.05.2016

Dank eines plugins, konnte ich mir das ganz ein bischen besser erklären.
Hab mir jetzt folgende Funktion gebaut:
PHP-Code:
    function sendPost($message,$forumid,$threadid,$uid,$db){
        $userarray=get_user($uid);
        $new_post = array(
            "tid" => $threadid//1468
            "fid" => $forumid//134
            "subject" => "",
            "icon" => 0,
            "uid" => $uid,
            "username" => $userarray[username],
            "dateline" => TIME_NOW,
            "message" => $db->escape_string($message),
            "ipaddress" => "",
            "includesig" => 1,
            "smilieoff" => 0,
            "visible" => 1
        
);
        $db->insert_query("posts"$new_post);
    



RE: Task - Automatische Bewertung - cthulhu - 17.05.2016

Die Beiträge werden so allerdings nicht mehr zusammengeführt, wenn mehrere in einer gewissen Zeit erstellt werden.

Wie bekomme ich das noch hin?
Jaja^^

Erst fertig suchen und ausprobieren bevor man fragt Big Grin

Habs jetzt hin bekommen, natürlich sollte man den Posthandler verwenden und nicht einfach in die DB schreiben.
PHP-Code:
    function sendPost($message,$forumid,$threadid,$uid,$db){
        
$posthandler = new PostDataHandler("insert");
        
$userarray=get_user($uid);
        
$new_post = array(
            
"tid" => $threadid//1468
            
"fid" => $forumid//134
            
"subject" => "",
            
"icon" => 0,
            
"uid" => $uid,
            
"username" => $userarray[username],
            
"dateline" => TIME_NOW,
            
"message" => $db->escape_string($message),
            
"ipaddress" => ""
        
);
        
$new_post['options']=array(
            
"signature" => 1,
            
"subscriptionmethod" => 0,
            
"disablesmilies" => 0
        
);
        
$posthandler->set_data($new_post);
        
$valid_post $posthandler->validate_post();
        
$posthandler->insert_post();
    } 



RE: Task - Automatische Bewertung - StefanT - 17.05.2016

Wenn du stattdessen den Datahandler verwendest, kümmert sich dieser um alles: https://crossreference.mybb.de/nav.html?inc/datahandlers/post.php.source.html#l825