TYPO3 DataHandler:PHP-以编程方式获取一些 ContentElement 的已翻译 ContentElement UID
TYPO3 DataHandler: PHP-programmatically get some ContentElement's translated ContentElement UID
我正在使用 TYPO3 9 LTS 的 CommandController infrastructure for preparing a "batch script" which will update a bunch of pages and content elements in my TYPO3 installation. For these updates I'm levaraging TYPO3's DataHandler。
我的 TYPO3 安装对页面和内容元素进行了德语(规范)和英语本地化,并且这些页面和内容元素处于连接模式,即英语内容元素连接到其 "original" 德语内容元素.
我知道要更新的德语和英语内容元素的 UID,但为了在我的脚本中保持简洁,我认为仅引用 "canonical" 德语内容元素 UID 就足够了,并以编程方式派生其英语本地化对应 UID。
是否有 TYPO3 PHP API 通过提供原始内容元素的 UID 来获取翻译内容元素的 UID?
例如,我正在寻找类似
的东西
$languageIdDe = 0; // in my installation/site, German language has languageId: '0'
$languageIdEn = 1; // in my installation/site, English language has languageId: '1'
$originalContentElementUidDe = 1234;
$translatedContentElementUidEn = ContentElementTranslationUtil::getTranslatedContentElementUid($originalContentElementUidDe, $languageIdEn);
是的,是:
\TYPO3\CMS\Backend\Utility\BackendUtility::getRecordLocalization($table, $uid, $language, $andWhereClause = '');
这个函数returns一个"mixed Multidimensional array with selected records; if none exist, FALSE is returned".
所以要根据问题获取翻译内容元素的 UID:
use TYPO3\CMS\Backend\Utility\BackendUtility;
$languageIdDe = 0; // German language has languageId: '0'
$languageIdEn = 1; // English language has languageId: '1'
$originalContentElementUidDe = 1234;
$translatedContentElementUidEn = BackendUtility::getRecordLocalization(
'tt_content',
$originalContentElementUidDe,
$languageIdEn
)[0]['uid'];
您还可以在 TYPO3 Slack 中更快地获得此类问题的答案。
我正在使用 TYPO3 9 LTS 的 CommandController infrastructure for preparing a "batch script" which will update a bunch of pages and content elements in my TYPO3 installation. For these updates I'm levaraging TYPO3's DataHandler。
我的 TYPO3 安装对页面和内容元素进行了德语(规范)和英语本地化,并且这些页面和内容元素处于连接模式,即英语内容元素连接到其 "original" 德语内容元素.
我知道要更新的德语和英语内容元素的 UID,但为了在我的脚本中保持简洁,我认为仅引用 "canonical" 德语内容元素 UID 就足够了,并以编程方式派生其英语本地化对应 UID。
是否有 TYPO3 PHP API 通过提供原始内容元素的 UID 来获取翻译内容元素的 UID?
例如,我正在寻找类似
的东西$languageIdDe = 0; // in my installation/site, German language has languageId: '0'
$languageIdEn = 1; // in my installation/site, English language has languageId: '1'
$originalContentElementUidDe = 1234;
$translatedContentElementUidEn = ContentElementTranslationUtil::getTranslatedContentElementUid($originalContentElementUidDe, $languageIdEn);
是的,是:
\TYPO3\CMS\Backend\Utility\BackendUtility::getRecordLocalization($table, $uid, $language, $andWhereClause = '');
这个函数returns一个"mixed Multidimensional array with selected records; if none exist, FALSE is returned".
所以要根据问题获取翻译内容元素的 UID:
use TYPO3\CMS\Backend\Utility\BackendUtility;
$languageIdDe = 0; // German language has languageId: '0'
$languageIdEn = 1; // English language has languageId: '1'
$originalContentElementUidDe = 1234;
$translatedContentElementUidEn = BackendUtility::getRecordLocalization(
'tt_content',
$originalContentElementUidDe,
$languageIdEn
)[0]['uid'];
您还可以在 TYPO3 Slack 中更快地获得此类问题的答案。