the-coding-owl/easy-navigation

一个使标记TYPO3页面记录为菜单入口点变得简单的扩展

安装: 497

依赖关系: 1

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 1

开放问题: 2

类型:typo3-cms-extension

2.2.1 2023-05-22 21:41 UTC

This package is auto-updated.

Last update: 2024-09-23 00:41:26 UTC


README

一个使标记TYPO3页面记录为菜单入口点变得简单的扩展

安装

安装此扩展有两种方式,要么通过composer,要么通过TYPO3扩展管理器。如果您正在使用composer并且已经设置了composer项目,您可以简单地这样做

composer require the-coding-owl/easy-navigation

将此软件包集成到您的项目中。

从版本1.1.2起,此扩展也可在https://extensions.typo3.org上获取,并可从TER或从TYPO3后端下载。

要求

PHP7.1
TYPO3 9.5

使用方法

安装后,您需要将扩展的静态TypoScript模板添加到您的模板中。它为您提供5种不同的数据处理器配置,用于主导航、元导航、页脚导航、语言导航和面包屑导航。您可以通过将它们添加到您的FLUIDTEMPLATE来使用这些数据处理器

page = PAGE
page{
  10 = FLUIDTEMPLATE
  10{
    ...
    dataProcessors{
      # Main Navigation
      10 < plugin.tx_easynavigation.main
      # Meta Navigation
      20 < plugin.tx_easynavigation.meta
      # Footer Navigation
      30 < plugin.tx_easynavigation.footer
      # Language Navigation
      40 < plugin.tx_easynavigation.language
      # Breadcrumb Navigation
      50 < plugin.tx_easynavigation.breadcrumb
    }
  }
}

在流体模板中,导航可用作{mainNavigation}{metaNavigation}{footerNavigation}{languageNavigation}{breadcrumbNavigation}。以下是一个示例,您可以这样构建主导航

<nav class="page-navigation-main">
  <ul class="navigation">
    <f:for each="{mainNavigation}" as="page">
      <li class="item{f:if(condition:'{page.active}',then:' active')}{f:if(condition:'{page.current}',then:' current')}{f:if(condition:'{page.class}',then:' {page.class}')}">
        <a href="{page.link}" target="{page.target}" title="{page.title}">
          <span>{page.title}</span>
        </a>
      </li>
    </f:for>
  </ul>
</nav>

要确定主导航的开始位置,您需要在您的页树中添加一个类型为Main Navigation的页面记录,并将该菜单作为此页的子页面构建。您可以添加任意数量的页面。主导航的默认深度为2,其他导航为1。您可以通过更改TypoScript常量plugin.tx_easynavigation.settings.main.levels来更改深度,有关如何配置导航菜单的更多信息,请参阅constants.typoscript。面包屑导航生成一个链接序列,指向页树中向上的页面,作为一种“返回导航”。它只能配置为排除某些页面包含在导航中。语言导航由位于TYPO3实例根页面(pid 0)的sys_language记录生成。它获取记录并生成适合当前页面的链接。以下是一个此导航的流体模板示例

<nav class="page-navigation-language">
  <ul class="navigation">
    <f:for each="{languageNavigation}" as="language">
      <f:for each="{language.sysLanguages}" as="sysLanguage">
        <f:if condition="{language.languageUid}=={sysLanguage.data.uid}">
          <li class="item language-{sysLanguage.data.language_isocode}{f:if(condition:'{language.active}',then:' active')}">
            <a href="{page.link}" target="{page.target}" title="{sysLanguage.data.title}">
              <span class="flag-{sysLanguage.data.flag}">
                <f:render partial="Navigation" section="languageFlag" arguments="{flag: sysLanguage.data.flag, flagWidth: 50}" />
              </span>
              <span>{sysLanguage.data.title}</span>
            </a>
          </li>
        </f:if>
      </f:for>
    </f:for>
  </ul>
</nav>

有一个默认的导航部分,可以很容易地通过添加提供的常量到站点部分在站点模板中使用。只需将其添加到您的PAGE配置中,如下所示

page = PAGE
page.10 = FLUIDTEMPLATE
page.10 {
    partialRootPaths {
        10 = {$plugin.tx_easynavigation.view.partialRootPath}
    }
    ...
}

有关更多信息,请参阅setup.typoscript,其中包含导航配置。为了使这些导航非常灵活和可适应,尽可能少地使用PHP代码来生成它们。您可以在任何时候更改导航生成中的TypoScript部分。

请随意使用此扩展,但请注意,不能保证它在任何可能的环境中都能正常工作。

问题

如果您在此软件中发现错误、功能请求或其他想法,我将非常感激。如果您想参与,请在此GitHub上创建一个问题票据。