Beiträge: 149
Themen: 47
Registriert seit: 08.03.2010
MyBB-Version: 1.8.*
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?
Beiträge: 1.443
Themen: 95
Registriert seit: 15.12.2005
MyBB-Version: 1.6.x
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.
Beiträge: 149
Themen: 47
Registriert seit: 08.03.2010
MyBB-Version: 1.8.*
Danke schon mal werde ich machen.
In welcher Datei finde ich dieses Objekt? Kann ich das dann einfach so ansprechen?
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
inc/datahandlers/post.php
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 1.443
Themen: 95
Registriert seit: 15.12.2005
MyBB-Version: 1.6.x
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).
Beiträge: 149
Themen: 47
Registriert seit: 08.03.2010
MyBB-Version: 1.8.*
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?
Beiträge: 1.443
Themen: 95
Registriert seit: 15.12.2005
MyBB-Version: 1.6.x
Kommt drauf an. Ist es immer die selbe Datei?
Beiträge: 149
Themen: 47
Registriert seit: 08.03.2010
MyBB-Version: 1.8.*
25.05.2010, 16:48
(Dieser Beitrag wurde zuletzt bearbeitet: 25.05.2010, 20:22 von baeckerman83.)
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.
Beiträge: 1.443
Themen: 95
Registriert seit: 15.12.2005
MyBB-Version: 1.6.x
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.
Beiträge: 391
Themen: 79
Registriert seit: 27.04.2007
MyBB-Version: 1.6.10
@querschlaeger: Eins hast Du nicht beachtet: Wenn in der Nachricht Sonderzeichen sind, werden diese abgeschnitten. Ich habe es getestet.