cscfa/navbar-bundle

NavBarBundle 是一个 symfony2 导航栏管理器,它使用 Resources/config/navbar.yml 文件来管理导航栏的显示

1.0.5 2015-12-17 00:00 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:26:09 UTC


README

版本:1.0.5-dev

NavBarBundle 允许从 Resources/config 目录下放置的 navbar.yml 文件创建导航栏。

#####安装

在 app/appKernel.php 中注册该包

// app/AppKernel.php
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            [...]
            new Cscfa\Bundle\NavBarBundle\CscfaNavBarBundle(),
        );
        
        [...]
    }
}

#####navbar.yml 文件结构

'navbar.yml' 文件的默认位置在 'Resources/config' 目录。可以通过以下配置更改此位置

cscfa_nav_bar:
    files_path: "path"

注意给定的路径必须以 '/' 开头,并包含完整的文件名。(例如默认配置:'/Resources/config/navbar.yml')

######文件格式是

navbar:
	name:
		label: ""
		roles: []
		parent: ""
		path: {route: "", param: {}}
		url: ""
		options: mixed
		position: integer

'navbar' 元素是根元素。

'name' 元素是导航栏元素的标识符,它可以用来定义父元素,如果没有定义 'label',它将被用作标签。

'label' 元素用于渲染元素文本。这是一个可选元素。

'roles' 元素用于根据当前用户角色渲染或显示元素。这是一个可选元素。

'parent' 元素用于定义当前元素的父元素,用于渲染逻辑。这是一个可选元素。

'path' 和 'url' 元素用于定义导航栏元素的目标。'path' 元素是一个生成应用程序路由,其中 'route' 是路由名称,'param' 是路由参数。这是一个可选元素。

'options' 元素用于向渲染模板发送选项。这是一个可选元素。

'position' 元素用于在导航栏中设置元素的位置。它对头部元素进行排序,而不是在父元素内部对子元素进行排序。注意默认位置可以通过配置中的 'default_position' 参数设置。

#####模板

使用 twig 函数 '{{ renderNavbar() }}' 显示使用默认模板的导航栏。

要使用个人模板,请使用 app/config/config.yml 中的以下参数

cscfa_nav_bar:
    template: "bundleName:directory:template.html.twig"
    child_template: "bundleName:directory:template.html.twig"

'template' 参数定义导航栏的根模板。模板接受导航栏元素作为 'element' 变量。

'child_template' 参数定义导航栏每个元素的渲染模板。此模板接受一个子元素作为 'element' 变量,以及导航栏嵌套级别作为 'nestedLevel' 变量。

#####使用缓存

默认情况下,导航栏加载器将使用缓存来存储构建的导航栏。请在 'app/config/config.yml' 中进行以下配置

cscfa_nav_bar:
    cache:
		enable: true|false
		id:		'the_cache_id'