Seite 1 von 1

Änderung an einer phpBB mySQL Tabelle (Einfügen von Spalten)

Verfasst: 23.08.2012 12:58
von Chrissi007
Hi zusammen,

ich bin derzeit am Überlegen meine Website und Forum besser miteinander zu verknüpfen.

Bei einem meiner Gedanken müsste ich für die Funktionssteigerung eine mySQL phpBB-Tabelle um ein paar Spalten erweitern. Jetzt wollte ich nachfragen: Kann das zu Problemen führen? Eventuell zu Komplikationen bei zukünftigen Updates der Forensoftware?

Ein Beispiel, das ich mir überlegt hatte:
Ich möchte im Forum die "Beitrags-Verfassen-Page" um eine Häkchenoption erweitern: "diesen Beitrag als News auf Website veröffentlichen". Den Status, ob der Haken gesetzt ist, möchte ich in einer seperaten Spalte der mySQL phpbb Tabelle abspeichern (als News veröffentlichen: Wert = 1; ansonsten: Wert = 0). Die Website wiederum zeigt alle Beiträge an, die den Wert 1 in dieser neu angelegten Spalte tragen.

Oder empfiehlt ihr sogar andere Variante zur Umsetzung dieser Idee? :)

Re: Änderung an einer phpBB mySQL Tabelle (Einfügen von Spal

Verfasst: 23.08.2012 13:08
von Nuramon
Generell ist es natürlich möglich, die Tabellen um Spalten zu erweitern, was im aktuellen Code höchstwahrscheinlich zu keinen Fehlern führt.
Aber wie du selbst schon sagtest, sollte es beim nächsten Update Datenbankänderungen geben, dann wird es schwieriger, das anzugleichen.

Musst du das denn zwingend in dieselbe Tabelle packen?
Ich persönlich würde eine eigene Tabelle für die zusätzlichen Spalten anlegen, ganz am Anfang eine Spalte 'user_id' setzen und dort dieselbe ID wie in der users-Tabelle nehmen.
Dann kannst du bei Abfragen, wo du die Werte brauchst, einfach mit INNER JOIN und dem Abgleich der User-IDs die Gesamttabelle erzeugen.

Ist natürlich etwas arbeitslastiger bei den SQL-Abfragen, aber das halte ich für die sauberste Lösung.

Re: Änderung an einer phpBB mySQL Tabelle (Einfügen von Spal

Verfasst: 23.08.2012 13:32
von Chrissi007
super Idee! Vielen Dank! :)

Re: Änderung an einer phpBB mySQL Tabelle (Einfügen von Spal

Verfasst: 23.08.2012 13:43
von Pyramide
Da in der 3.0.x Reihe wenn überhaupt nur noch minimale neue Features hinzukommen, ist die Wahrscheinlichkeit, dass in der posts/topics Tabelle neue Spalten hinzukommen, eher gering. Die Wahrscheinlichkeit für einen Konflikt kannst du noch weiter senken, indem du deinen eigenen Spalten einen Präfix gibst, z.B. name_deiner_homepage_news oder einen deutschen Spaltennamen verwendest (z.B. ankuendigung_auf_homepage).

Re: Änderung an einer phpBB mySQL Tabelle (Einfügen von Spal

Verfasst: 11.09.2012 18:18
von Chrissi007
Hi,

kurze Frage: Ist die posting.php Datei alleine verantwortlich für das Schreiben neuer Beiträge in die Datenbank? Ich hab gerade drübergeschaut und versucht die Passagen zu entdecken, die für a) Erstellen b) Editieren und c) Löschen verantwortlich sind.

Ab Zeile 62 hab ich ein großes Switch-Konstrukt entdeckt, das dem Ganzen ähnelt. Ist das auch verantwortlich für die Beitragserstellung? Mich wundert das ein bisschen, weil die ein oder andere Sicherheitsabfrage erst weiter unten im Script durchgeführt wird. Könnte ich hier meinen Code einfügen ohne dass dann dort die Sicherheit drunter leidet?

Unter anderem habe ich auch versucht an das Ende der Datei posting.php eine Anweisung einzufügen á la include(mein_script.php);. Diese Scriptzeile wird aber scheinbar nie erreicht. Von daher weiß ich nicht so genau, wo ich dort am besten meinen Programmcode einfügen soll? Wie gesagt - ich möchte nur zum Erstellen, Editieren, Löschen zusätzliche Zeilen an Code abrufen - ich würde die auch via include() einbinden, damit die posting.php möglichst in ihrer Originalfassung verbleibt und nicht allzu sehr verunstaltet wird ;)

Eine Frage hätte ich noch: Kann ich in der posting.php die ID des Topics bzw. des Beitrags abrufen, den ich gerade in der Datenbank erstellt habe? Ich frage deswegen, weil ich gern dem Vorschlag von Nuramon folgen möchte und die Verknüpfung von News und Beiträgen in einer seperaten Tabelle vornehmen möchte. Dazu muss ich aber immer die ID des Beitrags wissen, der gerade erstellt wurde.

Ich hoffe, ihr könnt mir weiterhelfen :)

Re: Änderung an einer phpBB mySQL Tabelle (Einfügen von Spal

Verfasst: 11.09.2012 18:29
von Pyramide
Das eigentliche Einfügen in die Datenbank erfolgt in der Funktion submit_post(); den Code fürs Löschen fügst du am besten in die delete_posts() ein, da die auch von anderen Stellen (MCP, ACP) aus aufgerufen wird.

Re: Änderung an einer phpBB mySQL Tabelle (Einfügen von Spal

Verfasst: 11.09.2012 18:34
von Nuramon
Und die ID wird in einer Variable gespeichert aus der Rückgabe der Funktion submit_post.
Welche das jetzt genau ist oder an welcher stelle müsste ich nachher mal suchen, falls du es nicht selbst findest.

Re: Änderung an einer phpBB mySQL Tabelle (Einfügen von Spal

Verfasst: 11.09.2012 21:13
von Chrissi007
perfekt, hat funktioniert :) vielen Dank euch beiden!