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
Automatisch Thread eröffnen?
#1
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?
Zitieren
#2
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.
Zitieren
#3
Danke schon mal werde ich machen.
In welcher Datei finde ich dieses Objekt? Kann ich das dann einfach so ansprechen?
Zitieren
#4
inc/datahandlers/post.php
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#5
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).
Zitieren
#6
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?
Zitieren
#7
Kommt drauf an. Ist es immer die selbe Datei?
Zitieren
#8
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.
Zitieren
#9
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.
Zitieren
#10
@querschlaeger: Eins hast Du nicht beachtet: Wenn in der Nachricht Sonderzeichen sind, werden diese abgeschnitten. Ich habe es getestet.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Seltsamer Wunsch, ja: Thread-ID automatisch auslesen Ishiro 2 1.502 17.03.2007, 18:11
Letzter Beitrag: Ishiro