qbus / contao-fallback-articles

为定义当页面特定布局部分没有文章时可以获取备用文章的方法提供基础。

安装: 67

依赖: 2

建议者: 0

安全: 0

星标: 0

关注者: 3

分支: 0

开放问题: 0

类型:contao-module

1.3.0 2020-02-17 13:23 UTC

This package is auto-updated.

Last update: 2024-09-23 00:43:10 UTC


README

此Contao扩展为开发人员提供了一个基础,以便在页面布局部分没有文章时实现获取备用文章的方法。

实现

  • qbus/contao-inherit-fallback-articles:从页面树中包含文章的下一部分继承文章。
  • qbus/contao-home-fallback-articles:从页面树主页的适当布局部分获取文章。

使用方法

备用文章提供了getFallbackArticles钩子、实现的语言标签和tl_layout中的集成选项。

钩子 getFallbackArticles

每当布局部分不包含任何文章并且布局设置中选择了该部分的备用方法时,都会调用此钩子。钩子提供页面ID和部分名称。作为返回值,它期望备用内容作为字符串,或如果备用方法无法提供内容,则返回false

您的钩子监听器必须命名,才能在布局设置中使用。

示例

注册钩子

// config/config.php
$GLOBALS['TL_HOOKS']['getFallbackArticles']['example_fallback_name'] = [
    'ExampleHookClass',
    'onGetFallbackArticles'
];

实现您的备用方法

class ExampleHookClass
{
    public function onGetFallbackArticles($pageId, $section)
    {
        return $this->exampleFallbackMethod($pageId, $section) ?? false;
    }

    protected function exampleFallbackMethod($pageId, $section): ?string
    {
        // do something, return string or null
    }
}

备用方法的语言标签

使用您的钩子实现名称作为键,在语言键fallback_articles_methods下提供您的备用方法的简短描述。

示例

// languages/en/fallback_articles_methods.php
$GLOBALS['TL_LANG']['fallback_articles_methods']['example_fallback_name'] = 'Example description';

<!-- languages/en/fallback_articles_methods.xlf -->
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.1">
  <file>
    <body>
      <trans-unit id="fallback_articles_methods.example_fallback_name">
        <target>Example description</target>
      </trans-unit>
    </body>
  </file>
</xliff>

后端集成

打开布局设置并选择复选框“定义备用文章”。在“备用文章”表单字段中,选择每个布局部分要使用的方法。方法从下到上评估。第一个返回任何内容的(从下往上)“获胜”,即随后的方法将不会使用。换句话说,当定义多个方法时,一个部分的备用内容不会累积。

待办事项

移除对Contao 3.5的支持,并使用getArticles钩子来消除核心模块组装的当前复制。