首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TYPO3: tx-news - localize标记,呈现多语种标记,缺少步骤

TYPO3: tx-news - localize标记,呈现多语种标记,缺少步骤
EN

Stack Overflow用户
提问于 2017-02-11 09:41:51
回答 2查看 417关注 0票数 0

我在多语言站点中使用tx-news,需要将标记本地化,(从自定义扩展中编写脚本):

1)第一步:将字段添加到表中:

ext_tables.sql:

代码语言:javascript
复制
#
# Extend table structure of table 'tx_news_domain_model_tag'
#
CREATE TABLE tx_news_domain_model_tag (
    sys_language_uid int(11) DEFAULT '0' NOT NULL,
    l10n_parent int(11) DEFAULT '0' NOT NULL,
    l10n_diffsource mediumblob
);

2)第二步:TCA覆盖标签(现在完全正常,按照拉尔夫的建议添加了“allLanguages”选择)

Configuration/TCA/Overrides/tx_news_domain_model_tag.php

代码语言:javascript
复制
<?php
defined('TYPO3_MODE') or die();

/**
 * Add multilingual to tx_news_domain_model_tag
 */

$temporaryColumns = [
    'sys_language_uid' => [
        'exclude' => 1,
        'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.language',
        'config' => [
            'type' => 'select',
            'renderType' => 'selectSingle',
            'special' => 'languages',
            'items' => [
                [
                    'LLL:EXT:lang/locallang_general.xlf:LGL.allLanguages',
                    -1,
                    'flags-multiple'
                ],
            ],
            'default' => 0,
        ],
    ],
    'l10n_parent' => [
        'displayCond' => 'FIELD:sys_language_uid:>:0',
        'exclude' => 1,
        'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.l18n_parent',
        'config' => [
            'type' => 'select',
            'renderType' => 'selectSingle',
            'items' => [
                   ['', 0],
            ],
            'foreign_table' => 'tx_news_domain_model_tag',
            'foreign_table_where' => 'AND tx_news_domain_model_tag.pid=###CURRENT_PID### AND tx_news_domain_model_tag.sys_language_uid IN (-1,0)',
        ],
    ],
    'l10n_diffsource' => [
        'config' => [
            'type' => 'passthrough',
        ],
    ],
];

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
        'tx_news_domain_model_tag',
        $temporaryColumns
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
        'tx_news_domain_model_tag',
        'paletteCore',
        'sys_language_uid, l10n_parent, l10n_diffsource',
        'before:hidden'
);
/* ADDED MISSING SYNTAX AFTER PAUL'S ANSWER */
$GLOBALS['TCA']['tx_news_domain_model_tag']['ctrl']['languageField'] = 'sys_language_uid';
$GLOBALS['TCA']['tx_news_domain_model_tag']['ctrl']['transOrigPointerField'] = 'l10n_parent';
$GLOBALS['TCA']['tx_news_domain_model_tag']['ctrl']['transOrigDiffSourceField'] = 'l10n_diffsource';

3)第三步:TCA覆盖新闻以将标记限制在语言上

Configuration/TCA/Overrides/tx_news_domain_model_news.php

代码语言:javascript
复制
/**
 * Add This to the original **`tags`** column
 */

...

'foreign_table_where' => ' AND tx_news_domain_model_tag.sys_language_uid IN (-1, 0) ORDER BY tx_news_domain_model_tag.title',

...

4)第四步:将本地化添加到tx_news_domain_model_tag 的TCA (添加保罗对步骤2的回答,这不再缺少)

下面应该添加,但我不知道如何.(通过自定义扩展,我显然可以在‘news’中直接添加它)

代码语言:javascript
复制
'ctrl' => [
    'languageField' => 'sys_language_uid',
    'transOrigPointerField' => 'l10n_parent',
    'transOrigDiffSourceField' => 'l10n_diffsource'
    ],
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-11 20:15:58

您是否尝试过像这样在重写/tx_news_domain_model_tag.php中的TCA数组中重写它?

代码语言:javascript
复制
$GLOBALS['TCA']['tx_news_domain_model_tag']['ctrl']['languageField'] = 'sys_language_uid';
$GLOBALS['TCA']['tx_news_domain_model_tag']['ctrl']['transOrigPointerField'] = 'l10n_parent';
$GLOBALS['TCA']['tx_news_domain_model_tag']['ctrl']['transOrigDiffSourceField'] = 'l10n_diffsource';
票数 1
EN

Stack Overflow用户

发布于 2018-05-03 14:00:25

..。只是一个小小的补充。要在语言选择器中获得"All“选项,您必须像这样更改Configuration/TCA/Overrides/tx_news_domain_model_tag.php中的数组sys_language_uid .

代码语言:javascript
复制
'sys_language_uid' => [
    'exclude' => 1,
    'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.language',
    'config' => [
        'type' => 'select',
        'renderType' => 'selectSingle',
        'special' => 'languages',
        'items' => [
            [
                'LLL:EXT:lang/locallang_general.xlf:LGL.allLanguages',
                -1,
                'flags-multiple'
            ],
        ],
        'default' => 0,
    ],
],

..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42174412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档