richardhj/contao-knp-menu
Composer 安装命令:
composer require richardhj/contao-knp-menu
包简介
Wrapper extension for knp-menu.
README 文档
README
Provides Contao navigation modules as instances of KnpMenu.
This extension is stable and supported from Contao >=4.9 and will be integrated into the Contao Core at some time, see contao/contao#3838.
Install
Via Composer
$ composer require richardhj/contao-knp-menu
Usage
Retrieve a navigation module by its alias
For any navigation module in the Contao backend, you can define an alias. You can now retrieve this navigation by its alias:
{% set menu = knp_menu_get('main_navigation') %}
You can also override some settings in the navigation module:
{% set menu = knp_menu_get('main_navigation', [], { 'showHidden': true, 'showProtected': true }) %}
Use a default navigation
You don't necessarily need to create a navigation module. Just use the special key 'contao' and configure it with the
third parameter where necessary.
{% set menu = knp_menu_get('contao', [], { 'defineRoot': 1 }) %}
Render a menu within a twig template
This extension was created to have maximum flexibility in rendering the navigation, thus the extension does not provide a base template. This is an example of retrieving and parsing a simple navigation within a twig template.
<div class="flex items-center justify-between py-2"> {% set menu = knp_menu_get('main_navigation') %} <nav itemscope itemtype="http://schema.org/SiteNavigationElement"> {% block navigation %} {% import '@KnpMenu/menu.html.twig' as knp_menu %} <div class="flex"> {% for item in menu.children|filter(v => v.isDisplayed) %} {% if item.current %} <strong class="inline-block font-bold text-blue-800 px-3 py-2 leading-5" aria-current="page"> <span {{ knp_menu.attributes(item.labelAttributes) }}>{{ item.label }}</span> </strong> {% else %} <a href="{{ item.uri }}" {{ knp_menu.attributes(item.linkAttributes) }} class="inline-block px-3 py-2 font-normal leading-5 text-gray-500 hover:text-gray-700 focus:outline-none focus:text-blue-400 transition duration-150 ease-in-out" itemprop="url"> <span itemprop="name" {{ knp_menu.attributes(item.labelAttributes) }}>{{ item.label }}</span> </a> {% endif %} {% endfor %} </div> {% endblock %} </nav> </div>
Development notes:
Code style:
vendor/bin/ecs check --fix
richardhj/contao-knp-menu 适用场景与选型建议
richardhj/contao-knp-menu 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 19.33k 次下载、GitHub Stars 达 7, 最近一次更新时间为 2020 年 08 月 17 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 richardhj/contao-knp-menu 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 richardhj/contao-knp-menu 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 19.33k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 7
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2020-08-17