oneup/contao-language-dependent-modules-bundle

配置您的 Contao 模块的语言依赖,并减少页面布局!

1.2.0 2022-09-12 14:32 UTC

This package is auto-updated.

Last update: 2024-09-12 19:03:26 UTC


README

这个 Contao 扩展包提供了一个特殊的模块,您可以基于可用的语言配置您的模块。
这个扩展包是为 Contao 4.9 及更高版本制作的。

CI Total Downloads

为什么选择这个扩展包?

想法是消除多语言的多重页面布局(或模块 ID 与 {{iflng::*}} 标签组合的插入标签)。

用法

现在您可以轻松地为您拥有的每种语言配置模块: Bildschirmfoto 2020-05-13 um 10 25 13

并在您的布局中包含此模块: Bildschirmfoto 2020-05-13 um 10 44 04

然后此模块将为每个配置的语言渲染配置的模块。

开发者

该扩展包为您自己的代码提供了一个额外的输入类型来使用。

使用默认配置(加载所有可用的模块)

<?php
// config/dca/tl_modules.php

$GLOBALS['TL_DCA']['tl_module']['fields'] += [
    'myLanguageDependentModules' => [
        'inputType' => 'languageDependentModulesSurrogate',
        'eval' => [
            'tl_class' => 'w50',
        ],
        'sql' => 'blob NULL',
    ],
];

还有更多,您可以根据需要自定义此小部件。

使用 options(用于自定义模块列表)

<?php
// config/dca/tl_modules.php

$GLOBALS['TL_DCA']['tl_module']['fields'] += [
    'myLanguageDependentModules' => [
        'inputType' => 'languageDependentModulesSurrogate',
        'options' => [
            0 => 'My module 0',
            1 => 'My module 1',
        ],
        'eval' => [
            'tl_class' => 'w50',
        ],
        'sql' => 'blob NULL',
    ],
];

使用 options_callback(用于自定义模块列表)

<?php
// config/dca/tl_modules.php

$GLOBALS['TL_DCA']['tl_module']['fields'] += [
    'myLanguageDependentModules' => [
        'inputType' => 'languageDependentModulesSurrogate',
        'options_callback' => ['my.service_id', 'methodName'],
        'eval' => [
            'tl_class' => 'w50',
        ],
        'sql' => 'blob NULL',
    ],
];

// you can also use this with service tagging, see https://docs.contao.org/dev/framework/dca/#registering-callbacks

使用 eval['modules'](用于过滤自定义类型)

<?php
// config/dca/tl_modules.php

$GLOBALS['TL_DCA']['tl_module']['fields'] += [
    'myLanguageDependentModules' => [
        'inputType' => 'languageDependentModulesSurrogate',
        'eval' => [
            'tl_class' => 'w50',
            'modules' => [
                'navigation',
                'customnav',
                'search',
                'html',
                'myCustomModule',
            ],
        ],
        'sql' => 'blob NULL',
    ],
];

更改空白选项的标签:

<?php
// config/dca/tl_modules.php

$GLOBALS['TL_DCA']['tl_module']['fields'] += [
    'myLanguageDependentModules' => [
        'inputType' => 'languageDependentModulesSurrogate',
        'eval' => [
            'tl_class' => 'w50',
            'blankOptionLabel' => 'My Label'
        ],
        'sql' => 'blob NULL',
    ],
];

注意:如果您只想更改默认字段的空白选项的标签,则键为:tl_module.languageDependentModulesBlankOptionLabel