lcharette / uf_breadcrumb
UserFrosting V4 的面包屑服务提供商
Requires
- php: >=7.1
This package is auto-updated.
Last update: 2024-08-27 05:34:06 UTC
README
本Sprinkle提供辅助服务和Twig模板,用于管理UserFrosting 4的简单页面面包屑。
帮助和贡献
如果您需要使用此Sprinkle的帮助或发现任何错误,请随时提交问题或拉取请求。您也可以在大多数时间在UserFrosting Chat上找到我以获得直接支持。
安装
编辑UserFrosting app/sprinkles.json
文件,并将以下内容添加到require
列表中: "lcharette/uf_breadcrumb": "^3.0.0"
。同时将Breadcrumb
添加到base
列表中。例如
{ "require": { "lcharette/uf_breadcrumb": "^3.0.0" }, "base": [ "core", "account", "admin", "Breadcrumb" ] }
运行 composer update
然后 php bakery bake
以安装Sprinkle。
使用方法
添加面包屑
面包屑层次结构需要在每个控制器中手动定义。为了动态地将面包屑添加到UI中,只需使用breadcrumb
服务的add
方法。
// add($name, $uri = "") $this->ci->breadcrumb->add('Item name', 'path/');
您也可以链式调用多个方法。
$this->ci->breadcrumb->add("Projects", "projects/") ->add("Project Foo", "projects/foo") ->add("Settings");
您也可以使用Crumb
对象创建面包屑。
$crumb = new Crumb(); $crumb->setTitle('Item name')->setUri('path/'); $this->ci->breadcrumb->addCrumb($crumb);
项目名称也可以切换为翻译键。
$this->ci->breadcrumb->add(['TRANSLATION_KEY', ['placeholder' => 'Value']], 'path/'); // or $crumb = new Crumb(); $crumb->setTitle('TRANSLATION_KEY', ['placeholder' => 'Value'])->setUri('path/');
路径实际上是可选的,如果您不想为面包屑提供链接。或者,也可以使用路由名称/路由模式占位符。
$this->ci->breadcrumb->add('Item name', ['route_name', ['id' => '123']]); // or $crumb = new Crumb(); $crumb->setTitle('Item name')->setRoute('route_name', ['id' => '123']);
预置面包屑
您还可以使用prepend
方法将新项目添加到列表的开头。
//prepend($name, $uri = "") $this->ci->breadcrumb->prepend("Item name", "path/"); // or $this->ci->breadcrumb->prependCrumb($crumb);
请注意,无论是否使用prepend
,网站索引都会自动添加到列表的开头。
如果您没有添加任何自定义面包屑,它将回退到默认的UserFrosting行为。
自定义样式
默认的UserFrosting布局和主题将自动获取面包屑。如果您的UserFrosting主题没有自动包含面包屑,只需将此行添加到您的twig文件中。
{% include 'navigation/breadcrumb.html.twig' with {page_title: block('page_title')} %}
如果您想编辑面包屑的样式,只需将templates/navigation/breadcrumb.html.twig
文件复制到您自己的Sprinkle中,并根据您的样式进行编辑。本Sprinkle不包含任何自定义资源。
许可
由Louis Charette提供。版权(c)2020,根据MIT许可,可免费用于个人和商业软件。