typep3:将internal_type=file_reference迁移到FAL



我有一个旧的typed3网站,它使用带有以下代码的图像拾取器:

'tx_my_image' => array(
'label' => 'Image',
'exclude' => 1,
'config' => array(
'type' => 'group',
'internal_type' => 'file_reference',
'allowed' => 'gif,jpg,jpeg,png',
'show_thumbs' => 1,
'size' => 1,
'maxitems' => 1,
'minitems' => 0,
)
),

这在打字3 10中不再起作用(错误:表页中字段tx_my_image的TCA内部类型必须设置为"db"或"folder"。(。所以我把它改成这样:

'tx_my_image' => array(
'label' => 'Image',
'exclude' => 1,
'config' => ExtensionManagementUtility::getFileFieldTCAConfig('tx_my_image', [
'show_thumbs' => 1,
'size' => 1,
'maxitems' => 1,
'minitems' => 0
], 'gif,jpg,jpeg,png'),
),

从某种意义上说,后端不再抛出致命错误,但我现在的问题是,以前选择的所有图像都找不到了。以前,图像的路径被简单地存储在字段"0"中;tx_my_ image";在页面表中(这可能不是一个好主意,但当我开始维护网站时,已经是这样了(。

这个网站有大量的页面,所以手动重做所有的图像选择是完全不可行的。因此,我的问题是,有没有一种方法可以将我的旧数据转换为新的typeo3版本所期望的任何格式,或者更好的方法是配置表单,以便它找到当前表单中的数据?

;无论新的打字3版本期望什么格式;是文件抽象层关系;新版本";TYPO3 6.2 8年前(2014年3月25日发布(;(

因此,可以在文档中阅读FAL的基本知识,例如升级到FAL。


有几种解决方案,但其中大多数需要针对您的自定义扩展进行调整/配置:

1.扩展";连接://FAL迁移">

此扩展(适用于TYPO3 6.2(可能有助于迁移到FAL。https://extensions.typo3.org/extension/conn_falmigration

2.查看EXT:新闻

Georg已经将以前的迁移代码(用于hist-EXT:news(提取为一个额外的扩展名。查看代码可以显示必须执行哪些步骤。https://packagist.org/packages/georgringer/news-fal-migration

3.大多数是手动

只需一点PHP脚本就可以处理:

输入数据是记录的uid和文件的路径。该路径的形式现在必须用作新表sys_file中的identifier-列。

<?php
// each line: recordUid;pathOfFile
$csv = "1;/user_upload/test.pdf
2;/user_upload/image.jpg";
$lines = str_getcsv($csv, chr(10));
$pid = 123;
foreach ($lines as $line) {
$row = str_getcsv($line, ';');
$row = array_map('trim', $row);
$uid = $row[0];
$filePath = $row[1];
if ($filePath && $filePath !== '""') {
$uid = trim($uid);
echo "INSERT INTO sys_file_reference (pid, uid_local, uid_foreign, tablenames, fieldname, table_local) VALUES($pid, (SELECT uid FROM sys_file WHERE identifier="" . $filePath . ""), $uid, 'yourTable ', 'tx_my_image', 'sys_file');" . chr(10);
}
}

这将生成SQL查询,用于插入所需的FAL关系。

相关内容

最新更新