Lucas: MySQL-Prefix für Wiki-Engine wie in phpBB

Hallo,

für ein Projekt habe ich die frei erhältiche Wiki-Engine auf meinem Server installiert. Nun finde ich es aber sehr unvorteilhaft, dass die Menge an MySQL-Tabellen, die für die Artikel ect. genutzt werden, keine Prefixe haben können, wie man es vom freien Forum phpBB her kennt.

Das heisst, ich wünsche mir vor jeden Wiki-Tabellennamen ein Prefix wie z.B. "projekt_", sodass sowohl einerseits Ordnung in der Datenbank herrscht und andererseits es möglich wird, mit einer Datenbank die Wiki mehrfach zu installieren (für kommende Projekte).

In einem ersten Anlauf habe ich versucht, den Quellcode umzuschreiben, bin aber nicht weit gekommen, da es zwar eine zentrale Befehls-Datei für die Datenbankanbingung gibt, die einzelnen Befehle (die jeweils um eine Variable mit dem Prefix ergänzt werden müssten) jedoch über hunderte von Dateien verteilt sind.

Auch wenn ich kaum glaube, dass das mögich ist, habe ich über eine weitere Möglichkeit zur Umsetzung nachgedacht: Wiki sendet wie üblich seine SQL-Befehle, diese werden jedoch an einer Stelle abgefangen und um das Prefix für die Tabellen ergänzt. So werden schon bei der Installation vernünftige Tabellen erzeugt und im Weiteren genutzt. Geht so was?

Oder gibt es andere Möglichkeiten, für die man sich nicht völlig in die Programmierung der Wiki einarbeiten muss?

Kann mir jemand weiter helfen? Bin für jeden weiterführenden Gedanken und Hinweis dankbar!!!

Mit freundlichen Grüßen, Lucas

--
selfcode: sh:( fo:| ch:? rl:° br:& n4:° ie:| va:| de:< zu:) fl:| ss:) ls:< js:|
  1. Hallo!

    Auch wenn ich kaum glaube, dass das mögich ist, habe ich über eine weitere Möglichkeit zur Umsetzung nachgedacht: Wiki sendet wie üblich seine SQL-Befehle, diese werden jedoch an einer Stelle abgefangen und um das Prefix für die Tabellen ergänzt. So werden schon bei der Installation vernünftige Tabellen erzeugt und im Weiteren genutzt. Geht so was?

    Wenn Du die Namen der Tabellen kennst, kann man da was über reguläre Ausdrücke und Suchen+Ersetzen machen. Jedes SQL-Statement wird bevor es auf die DB gefeuert wird geparst. Klingt einfacher als es ist, ein wenig Arbeit ist es schon.

    Hast Du mal drüber nachgedacht die Wike-Tabellen in eine separate DB zu packen?

    MfG, André Laugks

    --
    L-Andre @ gmx.de
    1. Hallo André,

      Wenn Du die Namen der Tabellen kennst, kann man da was über reguläre Ausdrücke und Suchen+Ersetzen machen. Jedes SQL-Statement wird bevor es auf die DB gefeuert wird geparst. Klingt einfacher als es ist, ein wenig Arbeit ist es schon.

      Hm also da hab ich ehrlich gesagt nicht grade viel Ahnung von, bzw weiss nicht, wie das umzusetzen ist. Wo finde ich da weitere Infos, oder kannst du mir vielleicht mal posten, wie das geht?

      Hast Du mal drüber nachgedacht die Wike-Tabellen in eine separate DB zu packen?

      Ja habe ich, aber das ist wie gesagt auf Dauer auch keine gute Lösung, hab nämlich nur 2 DBs zur Verfügung....

      Mit freundlichen Grüßen, Lucas

      --
      selfcode: sh:( fo:| ch:? rl:° br:& n4:° ie:| va:| de:< zu:) fl:| ss:) ls:< js:|
      1. Hallo!

        Hm also da hab ich ehrlich gesagt nicht grade viel Ahnung von, bzw weiss nicht, wie das umzusetzen ist. Wo finde ich da weitere Infos, oder kannst du mir vielleicht mal posten, wie das geht?

        Hier mal ein kleines Beispiel zu posten wird Dir nicht weiter helfen.

        Wenn Du mit regulären Ausdrücken arbeiten möchtest, wird das sehr komplex werden müssen. Ich kenne die SQL-Statements von Wiki-Egine nicht, aber sicherlich kommen das INNER- und LEFT-JOINs vor. Die richtig zu parsen benötigt fundierte Kenntnisse in regulären Ausdrücken.

        Mehr Infos unter:  http://de.php.net/manual/de/ref.pcre.php

        Ja habe ich, aber das ist wie gesagt auf Dauer auch keine gute Lösung, hab nämlich nur 2 DBs zur Verfügung....

        Dann schaffe Dir eine 3. an...! Das wird auf alle Fälle einfacher sein.

        MfG, André Laugks

        --
        L-Andre @ gmx.de