the-coding-owl / easy-navigation
一个使标记TYPO3页面记录为菜单入口点变得简单的扩展
Requires
- typo3/cms-backend: ^10.4.0 || ^11.5.0 || ^12.0.0
- typo3/cms-core: ^10.4.0 || ^11.5.0 || ^12.0.0
- typo3/cms-fluid: ^10.4.0 || ^11.5.0 || ^12.0.0
- typo3/cms-fluid-styled-content: ^10.4.0 || ^11.5.0 || ^12.0.0
- typo3/cms-frontend: ^10.4.0 || ^11.5.0 || ^12.0.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.2
- phpstan/extension-installer: ^1.1.0
- phpstan/phpstan: ^1.0.1
- roave/security-advisories: dev-master
- saschaegerer/phpstan-typo3: ^1.0.0
- squizlabs/php_codesniffer: ^3.6.1
Replaces
- typo3-ter/easy-navigation: 2.2.1
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上创建一个问题票据。