2016-08-26 8 views
0

Некоторые из моих новостей используются на разных языках. Чтобы архивировать, мне нужно установить язык этой новости для ВСЕ (ID: -1). Когда я делаю это, работа работает, но изображение не работает, потому что изображение является sys_file_reference, и это не меняет язык. Также нет поля для изменения языка изображения вообще в бэкэнд, поэтому мне нужно сделать это в базе данных.tx_news: Измените язык новостей на ВСЕ, sys_file_reference не изменится

Я нашел сообщение об ошибке для этой проблемы:
https://forge.typo3.org/issues/48883

И я использую «исправить» из отчета об ошибке, так что, по крайней мере, можно изменить LANGAUGE во внутреннем интерфейсе:

$TCA['sys_file_reference']['palettes']['filePalette']['isHiddenPalette'] = 0; 

(Это входит в шаблон ext_tables.php).

В любом случае, это нехорошее решение, и редакторы часто забудут изменить язык (всего) изображения (ов).

Кто-нибудь нашел/знал об этом лучше?

ответ

0

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

Трудная часть здесь заключается в том, что вам необходимо изменить соответствующую запись (sys_file_reference) в зависимости от типа вашей оригинальной записи (запись tx_news). DataHandler обрабатывает записи последовательно, поскольку они отправляются HTML-формой. Фокус в том, что запись базы (новости в вашем случае) всегда на первом месте, поэтому вы можете использовать эту информацию, чтобы узнать, когда ваша пользовательская логика должна быть использована.

В пользовательском ходу вы можете использовать язык из базовой записи, чтобы установить язык дочерних записей. Один из возможных крючков будет processDatamap_postProcessFieldArray. Регистрация такого крючка задокументирована в основных документах TYPO3: https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Hooks/Configuration/Index.html

+0

Спасибо за информацию. Я еще никогда не использовал крючок, и сначала мне нужно пройти тестирование. Я оставлю вопрос открытым до тех пор, пока не найду время проверить его. Могу я попросить вас взглянуть на другой вопрос? Любая идея, если использование крючка или так может решить эту проблему? http://stackoverflow.com/questions/37393398/backend-user-translate-content-from-default-language-was-not-allowed – nbar