[Typo3] „Als Startpunkt für den Seitenbaum festlegen“ wieder rückgängig machen

Derzeit arbeite ich an einem Projekt, wo aus einer alten Typo3-Installation die Seitenstruktur in eine neue Installation übernommen werden sollen. Dabei gilt es, den kompletten Page-Tree zu exportieren als *.t3d und ihn auf der neuen Installation wieder zu importieren. Wie es der Zufall nun so will hab ich auf die Option unter „Weitere Seiteneinstellungen …“ –> „Als Startpunkt für den Seitenbaum festlegen“ erwischt, statt der darunterliegenden „Exportieren in *.t3d“:

Typo3: Weitere Einstellungen...Typo3: Weitere Einstellungen... --/> Als Startpunkt für den Seitenbaum festlegen“ src=“http://blog.alexander-fischer.org/wp-content/uploads/typo3_startpunkt_festlegen.PNG“ /></p>
<p>Nun war jedoch mein Pagetree (=Seitenbaum) modifiziert. Die nette Weltkugel war weg und die Seite, die ich angeklickt hatte, war nun aktuelle Startseite des Pagetrees. Eine Option, diesen Vorgang wieder rückgängig zu machen hab ich nicht gefunden. Einziger Ausweg, den ich gesehen hab, um meinen Pagetree wieder herzustellen, war, in der Datenbank zu suchen, ob ich dort einen Wert finde, welcher die ursprünglichen Einstellungen wieder herstellt.</p>
<p>Die Lösung lag in der Tabelle „pages“. Dort gibt es einen Eintrag „shortcut“. Die erste Seite, welche meinen Pagetree darstellt, hatte den Wert auf die ID gesetzt, welche die Seite hatte, welche fälschlicherweise nun die Startseite im Pagetree war. Um also zum Ausgangszustand zurückzukommen, hab ich den Wert auf 0 gesetzt, was dem Ursprungswert entsprach und den Pagetree auf „/“ zurücksetzt. Dann noch Backend-Cache gelöscht und aus- und wieder eingeloggt und siehe da, mein Pagetree war wieder vollständig da! 🙂</p>
	</div><!-- .entry-content -->

	
	<footer class= Veröffentlicht am Kategorien MySQL, Typo3, WebprogrammierungTags , 1 Kommentar zu [Typo3] „Als Startpunkt für den Seitenbaum festlegen“ wieder rückgängig machen

Links in Posts von WordPress ersetzen in der Datenbank mit MySQL-Anweisung

Achtung! Dieser Beitrag ist ursprünglich vom Januar 2009 und damit schon sehr alt. Die hier veröffentlichten Informationen zum Umziehen berücksichtigen keine URLs, die serialisiert abgelegt werden. Bei serialisierten Daten können nicht einfach die URLs ersetzt werden, da hier die Zeichenlänge mit abgespeichert wird. Eine sicherere Variante gibt es hier: https://interconnectit.com/products/search-and-replace-for-wordpress-databases/ (in Englisch)

Der ursprüngliche Artikel:

Gerade ein akuter Fall bei mir gewesen: ich hatte zwecks Domainumzug (nicht bei mir, ich bleib hier! 🙂 ) das Problem, dass ich Artikel eines anderen Blogs in den neuen Blog importiert hatte, in denen Bilder verlinkt waren, welche jedoch noch zur alten Domain verlinkten. Via FTP hab ich das upload-Verzeichnis direkt in den neuen Blog übertragen können und somit alle hochgeladenen Bilder des alten Blogs bereits auf dem neuen Blog gehabt, jedoch nur physisch und nicht verlinkt. Nun wollte ich aber nicht die über 100 Artikel bearbeiten und die Bild-URLs aktualisieren, sondern suchte nach einer anderen Lösung. Ich wollte in der Datenbank in der Tabelle

wp_posts

in der Spalte

post_content

alle URLs mit der neuen Domain ersetzen. Auf der Suche nach einer Lösung suchte ich als erstes in der MySQL-Doku nach der

REPLACE()

-Funktion, diese jedoch liefert keine allzu guten Beispiele :-(. Glücklicherweise traf ich auf den Blog des Pfannenwenders, welcher in seinem Artikel „Suchen und Ersetzen in MySQL-Tabellen“ mir die Lösung auf dem Teller präsentierte.

 

Der entscheidende Befehl, welcher auf der MySQL-Datenbank auszuführen ist, lautet also:

 

UPDATE `wp_posts` SET `post_content` = REPLACE (
`post_content`,
'www.altedomain.de',
'www.neuedomain.de'
)

 

Dieser Befehl ersetzt alle vorkommenden www.altedomain.de mit www.neuedomain.de, beispielsweise: Im Artikel steht noch der alte Link:

<img src="http://www.altedomain.de/wp-content/uploads/bild.jpg" alt="" />

. Nach dem Ausführen des Update-Befehls steht dann statt dem alten Link dort:

<img src="http://www.neuedomain.de/wp-content/uploads/bild.jpg" alt="" />

. Und genauso wollte ich es haben! 🙂

Zu beachten sind die Backticks ( ` ) und die einfachen Anführungszeichen ( ). Die Tabelle und die Spalte der Tabelle müssen in Backticks geschrieben werden, die Suchstrings in einfachen Anführungszeichen. Falsch gesetzt wirft die Datenbank einen Fehler und führt den Update-Prozess nicht durch. Und, wie schon in Pfannenwenders Artikel: BACKUP der Datenbank vorher machen! Denn sonst ist alles schlimmstenfalls verpfuscht und nicht wiederherstellbar!

So, nun hoff ich mal, dass das jemandem hilft :-). Mir hats sehr geholfen und mindestens 600 Klicks erspart und ca. 2,5 Stunden Arbeit!