Seite 1 von 1

Foren per Script erstellen und füllen

Verfasst: 05.11.2014 14:52
von FePs
Hallo allerseits!

Im Rahmen des Vorhabens, eine interne Kommunikationsplattform für ein Unternehmen zu schaffen, stoße ich leider an meine Grenzen.
Das Endergebnis soll folgendermaßen aussehen:
Der Projektleiter loggt sich im Skript ein, gibt den Namen des zu erstellenden Projekts ein und der Rest passiert automatisiert. Es soll ein Forum mit dem eingegebenen Namen erstellt werden welches bereits einen, als „Bekanntmachung“ deklarierten Beitrag mit projektrelevanten Informationen beinhalten. Betroffene Personen sollen alle Fragen und Anliegen in einzelnen Themen stellen und beantworten wobei dies natürlich dann ganz normal im Frontend des Forums stattfinden wird.

Derzeitiger Status bei meinem Skript:
Es ist möglich ein Forum zu erstellen (Datenbank phpbb_forums) jedoch scheint dieses nur im Admin-Bereich auf und erst nachdem man „manuell“ in den Forumseinstellungen das „Übergeordnete Forum“ definiert wird es sichtbar.
Gibt es denn eine Möglichkeit auch diesen Schritt zu „automatisieren“?
Weiter ist es mir bereits möglich einzelne Themen mit dem Skript zu erstellen, jedoch wie man dieses Thema in der Datenbank als „Bekanntmachung“ deklariert ist mir leider auch noch unklar.
Die erstellten Themen werden zwar angezeigt, jedoch ist es nicht möglich diese als Bekanntmachund zu deklarieren dies liegt warscheinlich daran, dass als Benutzer "Gast" eingetragen ist. Doch auch wenn ich diesem Vollzugriff gebe kann man das auch nicht nach Erstellung via meines Scripts ändern.

Hier ein Teil meines Codes zur Erstellung von Themen:

Code: Alles auswählen

//TOPICS
$sql = "INSERT INTO phpbb_topics (forum_id,topic_poster,topic_last_poster_id,topic_title,topic_time,topic_last_post_time) VALUES                                                                 ($forum_id,$user_id,$user_id,'$subject',UNIX_TIMESTAMP(now()),UNIX_TIMESTAMP(now()))";

if ($connection->query($sql) === TRUE) {
    echo "<br>Erfolgreich in topics eingetragen <br>";
     
} else {
    echo "Error: " . $sql . "<br>" . $connection->error;
}

$result = mysql_query("SELECT topic_id FROM phpbb_topics ORDER BY topic_id DESC");
$row = mysql_fetch_object($result);
$topic_id = $row->topic_id;
echo "Neue Topic ID: ".$topic_id."<br>";

//POSTS

$sql_1 = "INSERT INTO phpbb_posts (forum_id,topic_id,poster_id, post_time, post_subject, post_text, post_checksum, bbcode_uid) VALUES 
($forum_id,$topic_id,$user_id, UNIX_TIMESTAMP(now()),'$subject','$text', '$checksum', '$BBC')";
                                                                                        
if ($connection->query($sql_1) === TRUE) {
    echo "<br>Erfolgreich in Posts eingetragen <br>";
     
} else {
    echo "Error: " . $sql_1 . "<br>" . $connection->error;
}

$result = mysql_query("SELECT post_id FROM phpbb_posts ORDER BY forum_id DESC");
$row = mysql_fetch_object($result);
$post_id = $row->post_id;
//$new_post_id = $highestid+1;
echo "Neue Post ID: ".$post_id;


$sql_2 = "UPDATE phpbb_topics SET topic_last_post_id=$post_id,topic_first_post_id=$post_id WHERE topic_id=$topic_id";

if ($connection->query($sql_2) === TRUE) {
    echo "<br>Update Topics erfolgreich <br>";
     
} else {
    echo "Error: " . $sql_2 . "<br>" . $connection->error;
}
        
$sql_3 = "UPDATE phpbb_forums SET forum_topics=forum_topics+1,forum_posts=forum_posts+1 WHERE forum_id=$forum_id";
if ($connection->query($sql_3) === TRUE) {
    echo "<br>Update Forum erfolgreich <br>";
     
} else {
    echo "Error: " . $sql_3 . "<br>" . $connection->error;
} 
Ich bin über jede Hilfe sehr dankbar und bedanke mich im Voraus!

Re: Foren per Script erstellen und füllen

Verfasst: 05.11.2014 19:17
von Elsensee
FePs hat geschrieben:Es ist möglich ein Forum zu erstellen (Datenbank phpbb_forums) jedoch scheint dieses nur im Admin-Bereich auf und erst nachdem man „manuell“ in den Forumseinstellungen das „Übergeordnete Forum“ definiert wird es sichtbar.
Gibt es denn eine Möglichkeit auch diesen Schritt zu „automatisieren“?
Ich würde einfach mal sagen, du nutzt bereits vorhandene Funktionen in phpBB dafür. :wink:
Du kannst die includes/acp/acp_forums.php einbinden und dann ein neues Objekt der Klasse acp_forums erstellen. Du möchtest jetzt ein neues Forum erstellen.
Da musst du erstmal ein Array mit einigen Werten füllen. Das zu erstellende Array findest du in der gleichen Datei ab etwa Zeile 115. Den Code nach dem Array kannst du ja noch etwas folgen, bis du dann zum Methodenaufruf "update_forum_data" kommst. Anders, als man anmerken könnte, erstellt diese Funktion auch Foren.. und das perfekt. :D Mit übergeordneten Foren, wenn du dies so angegeben hast, etc.
Unter dem Methodenaufruf folgt dann noch die Rechteübernahme von anderen Foren, falls man das so gewollt hat, kannst du auch so übernehmen.

Wenn du's trotzdem ohne Funktion machen möchtest, tippe ich darauf, dass du vergisst, die left- und right-id anzupassen.
FePs hat geschrieben:Weiter ist es mir bereits möglich einzelne Themen mit dem Skript zu erstellen, jedoch wie man dieses Thema in der Datenbank als „Bekanntmachung“ deklariert ist mir leider auch noch unklar.
Die erstellten Themen werden zwar angezeigt, jedoch ist es nicht möglich diese als Bekanntmachund zu deklarieren dies liegt warscheinlich daran, dass als Benutzer "Gast" eingetragen ist. Doch auch wenn ich diesem Vollzugriff gebe kann man das auch nicht nach Erstellung via meines Scripts ändern.
Auch hier muss ich wieder fragen: Warum nutzt du nicht einfach die Funktionen von phpBB? Da weiß man, dass alles so gemacht wird, wie es auch sonst gemacht wird. :D
submit_post() ist hier die Funktion deiner Wahl. Zu finden in der includes/functions_posting.php. Hat man sogar ne Dokumentation zu geschrieben.
$topic_type kann hierbei POST_NORMAL, POST_STICKY, POST_ANNOUNCE oder POST_GLOBAL sein.

Auch hier: Wenn du's trotzdem ohne Funktion machen möchtest, fehlt dir der topic_type im SQL-Befehl. Der ist für POST_NORMAL = 0 und dann aufwärts bis POST_GLOBAL = 3.