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

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 die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Chrissi007
Mitglied
Beiträge: 114
Registriert: 08.02.2003 12:43
Kontaktdaten:

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

Beitrag 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? :)
Gruß, Chrissi :D
Benutzeravatar
Nuramon
Mitglied
Beiträge: 250
Registriert: 05.02.2012 21:45
Wohnort: Solingen
Kontaktdaten:

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

Beitrag 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.
Das Pinke Forum
Das Pinke Forum - werde Teil einer freundlichen Community, die dir bei Fragen rund um Liebe, Sex, Ernährung, Schule oder bei Problemen aller Art zur Seite steht! Verfasse Beiträge, erstelle Threads und lern nette Leute kennen; kostenlos und toll betreut.
Chrissi007
Mitglied
Beiträge: 114
Registriert: 08.02.2003 12:43
Kontaktdaten:

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

Beitrag von Chrissi007 »

super Idee! Vielen Dank! :)
Gruß, Chrissi :D
Verschoben von Coding & Technik nach phpBB 3.0: Mod-Bastelstube am 23.08.2012 13:33 durch Pyramide

Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

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

Beitrag 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).
KB:knigge
Chrissi007
Mitglied
Beiträge: 114
Registriert: 08.02.2003 12:43
Kontaktdaten:

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

Beitrag 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 :)
Gruß, Chrissi :D
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

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

Beitrag 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.
KB:knigge
Benutzeravatar
Nuramon
Mitglied
Beiträge: 250
Registriert: 05.02.2012 21:45
Wohnort: Solingen
Kontaktdaten:

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

Beitrag 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.
Das Pinke Forum
Das Pinke Forum - werde Teil einer freundlichen Community, die dir bei Fragen rund um Liebe, Sex, Ernährung, Schule oder bei Problemen aller Art zur Seite steht! Verfasse Beiträge, erstelle Threads und lern nette Leute kennen; kostenlos und toll betreut.
Chrissi007
Mitglied
Beiträge: 114
Registriert: 08.02.2003 12:43
Kontaktdaten:

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

Beitrag von Chrissi007 »

perfekt, hat funktioniert :) vielen Dank euch beiden!
Gruß, Chrissi :D
Antworten

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