[BUGFIX] Fix FAL update wizards
authorIngmar Schlecht <ingmar@typo3.org>
Sun, 8 Jul 2012 09:49:22 +0000 (11:49 +0200)
committerBenjamin Mack <benni@typo3.org>
Sun, 8 Jul 2012 12:35:59 +0000 (14:35 +0200)
This patch fixes the update wizards, minor issues like the
relation count, the descriptions etc.

Change-Id: I84acfedcc673064b3f7842a8409ec99bda7c7af9
Resolves: #38749
Releases: 6.0
Reviewed-on: http://review.typo3.org/12705
Reviewed-by: Benjamin Mack
Tested-by: Benjamin Mack
typo3/sysext/install/Classes/Updates/File/InitUpdateWizard.php
typo3/sysext/install/Classes/Updates/File/TceformsUpdateWizard.php
typo3/sysext/install/Classes/Updates/File/TtContentUploadsUpdateWizard.php

index 8cfa425..cd8bac6 100644 (file)
@@ -34,7 +34,7 @@ class Tx_Install_Updates_File_InitUpdateWizard extends Tx_Install_Updates_Base {
        /**
         * @var string
         */
-       protected $title = 'Initialize FAL tables';
+       protected $title = 'Initialize database tables for the File Abstraction Layer (FAL)';
 
        /**
         * @var t3lib_install_Sql
@@ -55,7 +55,7 @@ class Tx_Install_Updates_File_InitUpdateWizard extends Tx_Install_Updates_Base {
         * @return      boolean         TRUE if an update is needed, FALSE otherwise
         */
        public function checkForUpdate(&$description) {
-               $description = 'Create the tables which are required for the file abstraction layer.';
+               $description = 'Create the database tables which are required for the File Abstraction Layer in order to work. Do this as the first step for all further wizards related to FAL.';
                return count($this->getRequiredUpdates()) > 0;
        }
 
@@ -91,7 +91,7 @@ class Tx_Install_Updates_File_InitUpdateWizard extends Tx_Install_Updates_Base {
                $update_statements = $this->installerSql->getUpdateSuggestions($diff);
 
                foreach ((array) $update_statements['create_table'] as $string) {
-                       if (preg_match('/^CREATE TABLE sys_file($|_)/', $string)) {
+                       if (preg_match('/^CREATE TABLE sys_file($|_)?/', $string)) {
                                $requiredUpdates[] = $string;
                        }
                }
index 4ef1e0c..a065700 100644 (file)
@@ -34,7 +34,7 @@ class Tx_Install_Updates_File_TceformsUpdateWizard extends Tx_Install_Updates_Ba
        /**
         * @var string
         */
-       protected $title = 'Migrate file relations';
+       protected $title = 'Migrate all file relations from tt_content.image and pages.media';
 
        /**
         * @var t3lib_file_Storage
@@ -58,9 +58,7 @@ class Tx_Install_Updates_File_TceformsUpdateWizard extends Tx_Install_Updates_Ba
         * @return      boolean         TRUE if an update is needed, FALSE otherwise
         */
        public function checkForUpdate(&$description) {
-                       // @todo Function below copied from sysext/install/updates/class.tx_coreupdates_imagelink.php, needs to be adopted
-
-               $description = 'TODO add description of FAL migration';
+               $description = 'This update wizard goes through all files that are referenced in the tt_content.image and pages.media / pages_language_overlay.media filed and adds the files to the new File Index.<br />It also moves the files from uploads/ to the fileadmin/_migrated/ path.<br /><br />This update wizard can be called multiple times in case it didn\'t finish after running once.';
 
                        // make this wizard always available
                return TRUE;
@@ -255,11 +253,11 @@ class Tx_Install_Updates_File_TceformsUpdateWizard extends Tx_Install_Updates_Ba
                        }
                }
 
-               $GLOBALS['TYPO3_DB']->exec_UPDATEquery($table, 'uid=' . $row['uid'], array($fieldname => ''));
+                       // Update referencing table's original field to now contain the count of references.
+               $GLOBALS['TYPO3_DB']->exec_UPDATEquery($table, 'uid=' . $row['uid'], array($fieldname => $i));
                $queries[] = str_replace(LF, ' ', $GLOBALS['TYPO3_DB']->debug_lastBuiltQuery);
 
                return $queries;
-               // TODO update original row
        }
 }
 
index 69589c1..f567ba2 100644 (file)
@@ -31,7 +31,7 @@
  * @license     http://www.gnu.org/copyleft/gpl.html
  */
 class Tx_Install_Updates_File_TtContentUploadsUpdateWizard extends Tx_Install_Updates_Base {
-       const FOLDER_ContentUploads = 'content_uploads';
+       const FOLDER_ContentUploads = '_migrated/content_uploads';
 
        /**
         * @var string
@@ -84,7 +84,7 @@ class Tx_Install_Updates_File_TtContentUploadsUpdateWizard extends Tx_Install_Up
                }
 
                if (!isset($this->storage)) {
-                       throw new RuntimeException('Local default storage could not be initialized - migth be due to missing sys_file* tables.');
+                       throw new RuntimeException('Local default storage could not be initialized - might be due to missing sys_file* tables.');
                }
 
                $this->fileFactory = t3lib_div::makeInstance('t3lib_file_Factory');
@@ -110,8 +110,8 @@ class Tx_Install_Updates_File_TtContentUploadsUpdateWizard extends Tx_Install_Up
                        "media <> '' AND CAST(CAST(media AS DECIMAL) AS CHAR) <> media OR (CType = 'uploads' AND select_key != '')"     // include also deleted, as they might be undeleted
                );
                if ($notMigratedRowsCount > 0) {
-                       $description = 'There are Content Elements of type "upload" which are referencing files,' .
-                               ' not using FAL. The Wizard will move the files to fileadmin/content_uploads/ and index them.';
+                       $description = 'There are Content Elements of type "upload" which are referencing files that are not using ' .
+                               ' the File Abstraction Layer. This wizard will move the files to fileadmin/' . self::FOLDER_ContentUploads . ' and index them.';
                        $updateNeeded = TRUE;
                }
 
@@ -184,7 +184,7 @@ class Tx_Install_Updates_File_TtContentUploadsUpdateWizard extends Tx_Install_Up
                                        $this->targetDirectory . $file
                                );
 
-                               $fileObject = $this->storage->getFile('content_uploads/' . $file);
+                               $fileObject = $this->storage->getFile(self::FOLDER_ContentUploads . '/' . $file);
                                $this->fileRepository->addToIndex($fileObject);
                                
                                $dataArray = array(