Foren per Script erstellen und füllen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
FePs
Mitglied
Beiträge: 1
Registriert: 05.11.2014 14:13

Foren per Script erstellen und füllen

Beitragvon FePs » 05.11.2014 14:52

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!

Verschoben von [3.0.x] Administration und Benutzung nach [3.0.x] Mod Bastelstube am 05.11.2014 19:02 durch Elsensee

Benutzeravatar
Elsensee
Ehemaliger
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Foren per Script erstellen und füllen

Beitragvon Elsensee » 05.11.2014 19:17

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.
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)


Zurück zu „[3.0.x] Mod Bastelstube“