MyBB.de Forum
Automatisch Thread eröffnen? - 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: Automatisch Thread eröffnen? (/thread-16237.html)

Seiten: Seiten: 1 2


Automatisch Thread eröffnen? - baeckerman83 - 20.05.2010

Hiho!
Ich würde gerne im MYBB per Script automatisch jeden Montag ein Thread eröffnen. So etwas wie "Chat für KW 5".
Dazu habe ich mir überlegt muss ich ja einen Thread in der DB erstellen. Das ist kein problem. Dann brauche ich nich einen Post. Da hapert es grade etwas, denn wie erechnet sich der Posthash?


RE: Automatisch Thread eröffnen? - querschlaeger - 21.05.2010

Hallo,

nimm lieber den postDataHandler, das ist viel einfacher. Du übergibst ihm einfach ein Array mit den benötigten Daten (Benutzer, Titel, Nachricht) und er macht den Rest.

Wenn du es zu Fuß über die Datenbank machst, ist es viel viel umständlicher und du musst einiges beachten, was der postDataHandler von sich aus schon tut.


RE: Automatisch Thread eröffnen? - baeckerman83 - 22.05.2010

Danke schon mal werde ich machen.
In welcher Datei finde ich dieses Objekt? Kann ich das dann einfach so ansprechen?


RE: Automatisch Thread eröffnen? - StefanT - 23.05.2010

inc/datahandlers/post.php


RE: Automatisch Thread eröffnen? - querschlaeger - 23.05.2010

Hallo,

hier der kleine Codeschnipsel, den du brauchst um einen neuen Thread zu erstellen:

PHP-Code:
$fid 2;
$uid 1;
$subject "Hallo Welt!";
$message "Hallo, dies ist ein Test...";

define("IN_MYBB"1);
require_once 
"./global.php";
require_once 
MYBB_ROOT."inc/datahandlers/post.php";
$posthandler = new PostDataHandler("insert");
$posthandler->action "thread";
$new_thread = array(
    
"fid" => $fid,
    
"subject" => $subject,
    
"uid" => $uid,
    
"username" => get_user($uid),
    
"message" => $message,
    
"ipaddress" => get_ip(),
    
"posthash" => md5($uid.random_str())
);
$query $db->simple_select("users""signature""uid='{$uid}'");
$result $db->fetch_array($query);
if(
$result['signature'])
{
    
$new_thread['options'] = array(
        
"signature" => 1
    
);
}
$posthandler->set_data($new_thread);
$valid_thread $posthandler->validate_thread();
if(
$valid_thread)
{
    
$posthandler->insert_thread();


Kannst du ja erst einmal in einer neuen Datei abspeichern und dann damit herumspielen. (Nur) die ersten 4 Variablen musst du natürlich selbst setzen (Foren- und User-ID, Betreff und die Nachricht selbst).


RE: Automatisch Thread eröffnen? - baeckerman83 - 24.05.2010

Danke! Echt super von dir mir das zur Verfügung zu stellen.
Überlege jetzt noch ob ich eine Datei per Link einfüge oder als Anhang ins Forum einbringe.
Was ist sinnvoller?


RE: Automatisch Thread eröffnen? - querschlaeger - 24.05.2010

Kommt drauf an. Ist es immer die selbe Datei?


RE: Automatisch Thread eröffnen? - baeckerman83 - 25.05.2010

Also die Datei wird jede Woche neu erstellt und soll dann einfach von den Usern runtergeladen werden können. Es sich Statistikdaten. Daher denke ich ja ist es am einfachsten das als Link einzubinden. Nur ist das löschen dann nicht so leicht.
In dem Script ist noch ein kleiner Fehler drin.
$subject = "Hallo Welt!";
"subject" => $subject,

In diesen zwei Zeilen sollte man das $subject durch $betreff ersetzen. Denn das $subject wird irgendwie auf NULL gesetzt.


RE: Automatisch Thread eröffnen? - querschlaeger - 25.05.2010

Ich habe das Script so wie es ist getestet und es funktioniert auch. Wenn du es natürlich in einem anderen Script verwendest, indem irgendwas mit der Variablen $subject gemacht wird, dann muss du natürlich einen anderen Namen (wie z.B. $betreff) wählen. Das bleibt ganz dir überlassen.


RE: Automatisch Thread eröffnen? - Sebastian1990 - 26.05.2010

@querschlaeger: Eins hast Du nicht beachtet: Wenn in der Nachricht Sonderzeichen sind, werden diese abgeschnitten. Ich habe es getestet.