Есть ли способ создать доменные трансляции объектов через extbase в TYPO3 9? - PullRequest
1 голос
/ 03 апреля 2019

Я импортирую некоторые продукты с JSON в мое расширение TYPO3.

У меня проблемы с созданием перевода через мой ImportService, так как я обновил TYPO3 8 до TYPO3 9. Кажется, что l10n_parentв базе данных не может быть установлено, хотя _localizedUid и _versionedUid устанавливаются.

/**
 * @param DomainObjectInterface $object
 * @param $targetLanguageUid
 * @return DomainObjectInterface|null
 */
public function translate($object, $targetLanguageUid)
{
    /** @var AbstractDomainObject $objectCopy */
    $objectCopy = new $this->objectType;
    $properties = ObjectAccess::getGettableProperties($object);
    foreach ($properties as $propertyName => $propertyValue) {
        ObjectAccess::setProperty($objectCopy, $propertyName, $propertyValue);
    }
    $objectCopy->_setProperty('_localizedUid', $object->getUid());
    $objectCopy->_setProperty('_languageUid', $targetLanguageUid);
    $objectCopy->_setProperty('_versionedUid', $object->getUid());
    return $objectCopy;
}

Ожидаемый результат: l10n_parent в базе данных равен, например, 403 (идентификатор исходного объекта)
Фактический результат: l10n_parent в базе данных равен 0

1 Ответ

0 голосов
/ 08 апреля 2019

При работе с внутренними структурами данных TYPO3 рекомендуется использовать для этого DataHandler .В вашем случае вам просто нужно предоставить массив конфигурации и правильно установить поле localize.Вы можете использовать это в своих собственных сценариях с бэкэнд-областью, примеры приведены в документации .В вашем скрипте импорта вы должны будете сначала создать записи на языке по умолчанию, а затем создать каждый перевод для него.

...