43 'tt_content' => array(
46 'titleTexts' =>
'titleText',
47 'captions' =>
'imagecaption',
48 'links' =>
'image_link',
49 'alternativeTexts' =>
'altText',
50 '__typeMatch' => array(
51 'typeField' =>
'CType',
52 'types' => array(
'image',
'textpic'),
57 'captions' =>
'imagecaption',
58 '__typeMatch' => array(
59 'typeField' =>
'CType',
60 'types' => array(
'uploads'),
83 static public function modifyDBRow(&$row, $table) {
84 if (isset($row[
'_MIGRATED']) && $row[
'_MIGRATED'] === TRUE) {
87 if (array_key_exists($table, static::$migrateFields)) {
88 foreach (static::$migrateFields[$table] as $migrateFieldName => $oldFieldNames) {
89 if ($row !== NULL && isset($row[$migrateFieldName]) && self::fieldIsInType($migrateFieldName, $table, $row)) {
90 $files = self::getPageRepository()->getFileReferences($table, $migrateFieldName, $row);
91 $fileFieldContents = array(
93 'titleTexts' => array(),
94 'captions' => array(),
96 'alternativeTexts' => array(),
97 $migrateFieldName .
'_fileUids' => array(),
98 $migrateFieldName .
'_fileReferenceUids' => array(),
100 $oldFieldNames[$migrateFieldName .
'_fileUids'] = $migrateFieldName .
'_fileUids';
101 $oldFieldNames[$migrateFieldName .
'_fileReferenceUids'] = $migrateFieldName .
'_fileReferenceUids';
103 foreach ($files as $file) {
105 $fileProperties = $file->getProperties();
106 $fileFieldContents[
'paths'][] =
'../../' . $file->getPublicUrl();
107 $fileFieldContents[
'titleTexts'][] = $fileProperties[
'title'];
108 $fileFieldContents[
'captions'][] = $fileProperties[
'description'];
109 $fileFieldContents[
'links'][] = $fileProperties[
'link'];
110 $fileFieldContents[
'alternativeTexts'][] = $fileProperties[
'alternative'];
111 $fileFieldContents[$migrateFieldName .
'_fileUids'][] = $file->getOriginalFile()->getUid();
112 $fileFieldContents[$migrateFieldName .
'_fileReferenceUids'][] = $file->getUid();
114 foreach ($oldFieldNames as $oldFieldType => $oldFieldName) {
115 if ($oldFieldType ===
'__typeMatch') {
118 if ($oldFieldType ===
'paths' || substr($oldFieldType, -9) ==
'_fileUids' || substr($oldFieldType, -18) ==
'_fileReferenceUids') {
120 $fieldContents = implode(
',', $fileFieldContents[$oldFieldType]);
124 $value = $fileFieldContents[$oldFieldType];
131 $value = str_replace(CRLF, CR, $value);
132 $value = str_replace(LF, CR, $value);
134 $fieldContents = implode(LF, $value);
136 $row[$oldFieldName] = $fieldContents;
141 $row[
'_MIGRATED'] = TRUE;
157 if (!isset(static::$migrateFields[$table][$field][
'__typeMatch'])) {
158 throw new \RuntimeException(
'Additional types can only be added when there is already an existing type match configuration for the given table and field.', 1377600978);
161 self::$migrateFields[$table][$field][
'__typeMatch'][
'types'][] = $additionalType;
177 static public function registerFieldForMigration($table, $field, $migrationField, $oldFieldName, $typeField = NULL, array $types = array()) {
179 if (array_search($migrationField, static::$availableMigrationFields) === FALSE) {
180 throw new \InvalidArgumentException(
'The value for $migrationField is invalid. Valid values can be found in the $availableMigrationFields array.', 1377600978);
183 self::$migrateFields[$table][$field][$migrationField] = $oldFieldName;
185 if (isset($typeField) && (count($types) > 0)) {
186 self::$migrateFields[$table][$field][
'__typeMatch'][
'types'] = $types;
187 self::$migrateFields[$table][$field][
'__typeMatch'][
'typeField'] = (string)$typeField;
200 $fieldConfiguration = static::$migrateFields[$table][$fieldName];
201 if (empty($fieldConfiguration[
'__typeMatch'])) {
204 return in_array($row[$fieldConfiguration[
'__typeMatch'][
'typeField']], $fieldConfiguration[
'__typeMatch'][
'types']);
static registerAdditionalTypeForMigration($table, $field, $additionalType)
static fieldIsInType($fieldName, $table, array $row)
static $availableMigrationFields
static getPageRepository()
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]
static registerFieldForMigration($table, $field, $migrationField, $oldFieldName, $typeField=NULL, array $types=array())