gibbs/phile-sub-navigation

此包已被废弃,不再维护。未建议替代包。

生成philecms嵌套层次结构

安装: 63

依赖: 0

建议者: 0

安全: 0

星标: 5

关注者: 4

分支: 2

开放问题: 2

类型:phile-plugin

1.0.1 2014-07-07 20:25 UTC

This package is auto-updated.

Last update: 2021-11-18 21:13:21 UTC


README

A PhileCMS 插件,用于生成可用于创建嵌套导航菜单的层次树。

1. 安装

通过 composer 安装

composer require "gibbs/phile-sub-navigation:1.*"

通过 git 安装

phile 目录克隆此存储库到 plugins/gibbs/phileSubNavigation。例如

git clone git@github.com:Gibbs/phileSubNavigation.git plugins/gibbs/phileSubNavigation

手动安装

下载并解压内容到: plugins/gibbs/phileSubNavigation

2. 插件激活

在您的 config.php 文件中激活插件

$config['plugins']['gibbs\\phileSubNavigation'] = array('active' => true);

3. 参数

此插件返回一个名为 navigation 的变量。网站层次结构中的每个项目都有以下参数

  • active - 当项目是当前页面时为真
  • level - 当前页面的嵌套深度。
  • meta - 关联的页面元信息
  • path - 当前路径,例如 blog/post
  • parent - 页面的父级
  • uri - path 的别名
  • url - 页面的完整 URL

4. 示例用法

为了灵活,此插件不会生成任何 HTML - 这取决于您使用的模板引擎。

更多示例可在 wiki 上找到

可以使用引用子键来使用特定路径的子代,例如 /blog/

Twig - 列出 /blog/ 的子代

<ul>
{% for item in navigation.blog.children %}
	<li>
		<a href="{{ item.uri }}">{{ item.meta.title }}</a>
	</li>
{% endfor %}
</ul>

Twig - 列出 /blog/archive/ 的子代

<ul>
{% for item in navigation.blog.children.archive.children %}
	{% if item.active %}
	<li class="active">
	{% else %}
	<li>
	{% endif %}
		<a href="{{ item.uri }}">{{ item.meta.title }}</a>
	</li>
{% endfor %}
</ul>

Twig - 整个网站层次结构示例

<!-- Twig Macro -->
{% macro sub_navigation(navigation) %}
	{% import _self as macros %}
	{% for item in navigation %}
		<li>
			<a href="{{ item.uri }}">{{ item.meta.title }}</a>
			{% if item.children %}
				<ul>
					{{ macros.sub_navigation(item.children) }}
				</ul>
			{% endif %}
		</li>
	{% endfor %}
{% endmacro %}

{% import _self as macros %}
<ul>{{ macros.sub_navigation(navigation) }}</ul>

要调试插件输出,请在插件 config.php 文件中设置 'print' => true

4. 缓存

默认情况下禁用缓存,并依赖于 phile\\simpleFileDataPersistence(默认启用)。

要启用缓存,请编辑插件的 config.php 文件并将 cache 设置为 true

注意:缓存会导致一些参数(如 active)停止工作。