CosmoCode
  • Great software.

  • Bright people.

  • Happy customers!

CosmoCode GmbH
  • Start
  • Geschäftsfelder
  • Über uns
  • Referenzen
  • Blog
  • Open Source
←
Alle Blogposts
→

TYPO3 TemplaVoila Datenstrukturen einfach sichern

TYPO3 TemplaVoila Datenstrukturen einfach sichern

Wer mit TYPO3 und TemplaVoila arbeitet, dem ist es wahrscheinlich auch schonmal passiert, dass mühsame Anpassungen in dem XML der Datenstruktur nach einem erneuten Mapping wieder überschrieben wurden. Da die Datenstrukturen in der Datenbank liegen, ist eine Wiederherstellung aus einem vorhandenem Dump doch recht mühsam.

Marco Z., 12.02.2010 10:56

TYPO3 TemplaVoila Datenstrukturen einfach sichern

Wer mit TYPO3 und TemplaVoila arbeitet, dem ist es wahrscheinlich auch schonmal passiert, dass mühsame Anpassungen in dem XML der Datenstruktur nach einem erneuten Mapping wieder überschrieben wurden. Da die Datenstrukturen in der Datenbank liegen, ist eine Wiederherstellung aus einem vorhandenem Dump doch recht mühsam.

Folgendes kleines PHP-Skript legt sämtliche Datenstrukturen als einfache Textfiles im Dateisystem ab. Diese Dateien können nun auch einfach gesichert bzw. unter Versionskontrolle gestellt werden.

<?php

  // DB-Verbindung hier konfigurieren
  $dbname   = 'typo3_db';
  $dbserver = 'localhost';
  $dbuser   = 'abc';
  $dbpass   = '123';
  
  $con = mysql_connect($dbserver, $dbuser, $dbpass);
  mysql_query("set names utf8");   // wenn DB UTF-8
  $res = mysql_query("SELECT title,dataprot FROM  {$dbname}.tx_templavoila_datastructure");
  
  if(!$res) {
    echo "Abfrage konnte nicht ausgeführt werden: ".mysql_error()."\n";
    exit;
  }
  
  while($row = mysql_fetch_array($res)) {
    // Dateinamen formatieren
    $file = getFilename($row['title']);
    // Datenstruktur in Datei schreiben
    if(writeFile($file, $row['dataprot']))
      echo "DS in $file geschrieben\n";
    else
      echo "DS konnte nicht in $file geschrieben werden\n";
  }
  mysql_close($con);
  
  function getFilename($string){
    //Umlaute ersetzen
    $upas = Array("ä" => "ae", "ü" => "ue", "ö" => "oe", "Ä" => "Ae", "Ü" => "Ue", "Ö" => "Oe"); 
    $string = strtr($string, $upas);
    //Sonderzeichen etc. mit $sep erstetzen
    $sep = '_';
    return preg_replace("/([^\w\-,+:])/e", "'\\1'==' '?'$sep':''", $string).'.ds';
  }
  
  function writeFile($file, $content) {
    if (!$handle = fopen($file, "w")) return false;
    if (!fwrite($handle, $content)) return false;
    fclose($handle);
    return true;
  }

?>

Mehr zum Thema

Kontakt

Wir freuen uns sehr über Ihr Interesse!
Sie erreichen uns hier:

CosmoCode GmbH

Prenzlauer Allee 36G
10405 Berlin

Telefon: +49 30 814 50 40 70

Telefax: +49 30 2809 7093


mail: info@cosmocode.de

CosmoCode GmbH  
   

© CosmoCode 2021 | Impressum | Datenschutz | Cookies verwalten

Schließen
Deutsch Englisch
  • Jobs