Seite 1 von 1

Thema umbenennen - wird bei Antworten nicht übernommen

Verfasst: 27.05.2012 12:02
von sommer
Hallo zusammen,

gibt es eine Möglichkeit, dass wenn man den Thementitel ändert, diese Änderungen auf die Antworten übernommen werden?
Angenommen bei der Erstellung eines Themas wurde ein Fehler in den Thementitel eingebaut und es folgten mehrere Antworten, so zieht sich der Fehler durch alle Antworten, denn überall steht dann "Re: Fehlerhafter Thementitel" und man müsste alle Antworten ändern bzw. anpassen.

Re: Thema umbenennen - wird bei Antworten nicht übernommen

Verfasst: 27.05.2012 13:31
von Miriam
Na klar.

Im Anlehnung an dieses Snippet wäre die SQL Query für Deine DB:

Code: Alles auswählen

UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'old text', 'new text') WHERE post_subject LIKE '%old text%'
old_text und new_text müssen natürlich noch angepaßt werden.
Hinweis: DB Sicherung VORHER nicht vergessen.

Re: Thema umbenennen - wird bei Antworten nicht übernommen

Verfasst: 27.05.2012 15:43
von sommer
Eine automatisierte Lösung gibt es nicht? Oder wo müsste man die Update Anweisung im Quellcode hinterlegen?

Abgesehen davon fliegt ja dann überall "Re:" raus.

Re: Thema umbenennen - wird bei Antworten nicht übernommen

Verfasst: 27.05.2012 16:04
von Miriam
sommer hat geschrieben:Eine automatisierte Lösung gibt es nicht?
Das macht die DB dann für Dich. Ist das nicht automatisch?
sommer hat geschrieben:Oder wo müsste man die Update Anweisung im Quellcode hinterlegen?
Diese Query solltest Du im phpMyAdmin eingeben. Und natürlich vorher die Variablen anpassen.
sommer hat geschrieben:Abgesehen davon fliegt ja dann überall "Re:" raus.
Was untermauert Deine These?

Du kannst es natürlich auch anpassen und in den php-Quellcode einbauen, so daß die Änderungen für alle nachfolgenden Posts auch übernommen werden. Dazu solltest Du aber beachten, daß diese Antworten auch NUR im zu ändernden Thema übernommen werden, damit nicht pauschal alle Themen mit gleichem / ähnlichem Namen übergebügelt werden.

Also prinzipielle Vorgehensweise:
  • vergleiche den originalen (falschen) Thementitel mit dem nunmehr neuen Titel
  • Wenn die Titel sich unterscheiden, dann:
    • merke Dir die Topic-ID und
    • schicke eine Query an die DB, die die Änderungen abhängig von der Topic-ID durchführt.
  • falls keine Änderung:
    • schicke den Beitrag ganz normal ab.
Wie weit bist Du schon? :roll:

Antwort ohne "Re:"

Verfasst: 27.05.2012 16:20
von sommer
Miriam hat geschrieben:Das macht die DB dann für Dich. Ist das nicht automatisch?
Das ist insofern nicht automatisch, wenn Moderatoren her gehen und einen Thementitel ändern, muss ich immer noch her gehen und phpmyadmin öffnen und diese Anweisung eingeben.
Miriam hat geschrieben:
sommer hat geschrieben:Abgesehen davon fliegt ja dann überall "Re:" raus.
Was untermauert Deine These?
Da "Re:" immer zusätzlich in der Betreffzeile steht, wenn man eine Antwort verfasst. Zu dieser Antwort habe ich den Betreff mal geändert.
Miriam hat geschrieben:Du kannst es natürlich auch anpassen und in den php-Quellcode einbauen, so daß die Änderungen für alle nachfolgenden Posts auch übernommen werden. Dazu solltest Du aber beachten, daß diese Antworten auch NUR im zu ändernden Thema übernommen werden, damit nicht pauschal alle Themen mit gleichem / ähnlichem Namen übergebügelt werden.
Das ist mir schon klar, dass am Ende nicht jedes Thema gleich heißt, aber ein automatisierter Umbau wäre schon geschickter, als allen Titeländerungen hinter her zu laufen.

Re: Thema umbenennen - wird bei Antworten nicht übernommen

Verfasst: 27.05.2012 16:43
von Miriam
Du hast diese Query noch nicht ganz verstanden:
old_text wird gegen new_text in dem String, der den Titel widerspiegelt, ausgetauscht.

Bsp:
Also aus diesen Titeln:
  1. Der Hase frißt Kartoffelbrei
  2. Re: Der Hase frißt Kartoffelbrei
  3. Der Hase frißt Kartoffelbrei und die Schüssel gleich mit
  4. Re: Wieviel Kartoffelbrei frist so ein Hase eigentlich?
wird mittels dieser Query:

Code: Alles auswählen

UPDATE phpbb_posts SET post_subject = REPLACE( post_subject, 'Kartoffelbrei', 'Feldsalat' ) WHERE post_subject LIKE '%Kartoffelbrei%'
  1. Der Hase frißt Feldsalat
  2. Re: Der Hase frißt Feldsalat
  3. Der Hase frißt Feldsalat und die Schüssel gleich mit
  4. Re: Wieviel Feldsalat frist so ein Hase eigentlich?
Und wie weit bist Du nun mit der Umsetzung?