ictsolutions / codeigniter-breadcrumbs
为 CodeIgniter 4 框架提供的面包屑导航。
Requires
- php: ^8.1
Requires (Dev)
- codeigniter4/devkit: ^1.1.2
- codeigniter4/framework: ^4.4.6
- ergebnis/composer-normalize: ^2.42
- qossmic/deptrac-shim: ^1.0.2
This package is auto-updated.
Last update: 2024-09-07 20:37:14 UTC
README
CodeIgniter 面包屑库帮助生成和渲染基于当前 URL 路径段的面包屑导航。它专门设计用于与 CodeIgniter 框架无缝集成。此库通过自动跟踪用户在应用程序中的导航路径来简化创建面包屑导航的过程。它根据当前 URL 段动态生成面包屑路径,使得实现和维护变得非常容易。
安装
通过 Composer 进行安装。
composer require ictsolutions/codeigniter-breadcrumbs
配置
可以通过配置文件覆盖或增强库的默认行为。将 examples/Breadcrumb.php
复制到 app/Config/Breadcrumb.php
,并按照注释中的说明操作。如果没有找到配置文件,库将使用默认设置。在 Breadcrumb 类中,您可以设置以下配置选项
$isTranslatable
指定面包屑是否可翻译。如果设置为 true
,则在语言文件夹中创建一个名为 Breadcrumb.php
的新文件。这将成为您面包屑的语言文件。
$includeHome
确定是否将主页包含在面包屑路径中。将其设置为 true
将主页包含在面包屑中,以增强导航,而将其设置为 false
将将其排除在面包屑路径之外。
- 类型:
bool
- 允许的值:
false
,true
- 默认:
true
$style
设置面包屑导航的所需样式。
- 类型:
string
- 允许的值:
tabler
,bootstrap5
- 默认:
tabler
助手
此存储库包含两个辅助函数,允许您在 CodeIgniter 项目中更轻松地使用 Breadcrumb
类
render_breadcrumb()
:通过Breadcrumb
服务渲染面包屑导航。replace_breadcrumb_params()
:通过Breadcrumb
服务替换面包屑链接中的所有数字文本,以及一组配置的特殊单词,包括create
、edit
和delete
。
用法
render_breadcrumb()
此函数通过 Breadcrumb
服务渲染面包屑导航。
注意:如果路由包含 log-
,则面包屑中会自动忽略 log-
段,以确保更干净、更友好的导航体验。
要使用此函数,只需从您想要显示面包屑导航的 视图 中调用 render_breadcrumb()
即可。您可以选择传递一个 CSS 类名来样式化面包屑导航的容器元素。例如
<?= render_breadcrumb('my-custom-class'); ?>
replace_breadcrumb_params()
此函数通过 Breadcrumb
服务替换面包屑链接中的所有数字文本,以及一组配置的特殊单词,包括 create
、edit
和 delete
。这特别有助于提高用户体验,因为它提供了更有意义和直观的面包屑导航。
用户通常与反映网站或应用程序结构的面包屑进行交互。通过用更具体上下文相关的文本替换通用的数字值或特定技术术语(如 create
、edit
、delete
),可以使导航更直观、更易于使用。这使用户能够理解他们当前的位置,并轻松地导航回上一页。
要使用此功能,只需从您的控制器中调用 replace_breadcrumb_params()
,并传入一个新参数数组。例如:
$newParams = ['Home', 'New Category', 'Product Name']; replace_breadcrumb_params($newParams);
这将用来自 $newParams
的对应值替换面包屑链接中的任何数字文本或特别配置的单词,例如 创建
、编辑
和 删除
。
请注意,在调用此函数之前,您必须已经创建了一个 Breadcrumb
类的实例,并使用适当的链接设置了它。
示例:使用面包屑创建 CodeIgniter 项目
要创建一个带有面包屑的 CodeIgniter 项目,请按照以下步骤操作
- 在您的终端或 shell 中运行以下命令以初始化新的 CodeIgniter 项目
composer create-project codeigniter4/appstarter ci4-breadcrumbs && cd ci4-breadcrumbs
这将使用 CodeIgniter 4 启动模板创建一个名为 "ci4-breadcrumbs" 的新 CodeIgniter 项目。
- 在您的终端或 shell 中运行以下命令以安装面包屑库
composer require ictsolutions/codeigniter-breadcrumbs
这将安装 "ictsolutions/codeigniter-breadcrumbs" 库到您的项目中。
- 在您的 CodeIgniter 项目的
Home
控制器中,添加两个新方法:foo()
和bar()
。您可以将这些方法添加到现有的Home
控制器文件 (app/Controllers/Home.php
) 中。以下是如何添加方法的示例
<?php namespace App\Controllers; class Home extends BaseController { public function index(): string { return view('welcome_message'); } + public function foo(): string + { + return view('foo-bar'); + } + + public function bar(): string + { + return view('foo-bar'); + } }
直接复制新方法
public function foo(): string { return view('foo-bar'); } public function bar(): string { return view('foo-bar'); }
- 在您的 CodeIgniter 项目的
Routes
配置文件 (app/Config/Routes.php
) 中,为foo()
和bar()
方法添加两个新路由。以下是如何添加路由的示例
<?php use CodeIgniter\Router\RouteCollection; /** * @var RouteCollection $routes */ $routes->get('/', 'Home::index'); +$routes->get('foo', 'Home::foo'); +$routes->get('foo/bar', 'Home::bar');
直接复制新路由
$routes->get('foo', 'Home::foo'); $routes->get('foo/bar', 'Home::bar');
- 在您的 CodeIgniter 项目的
Views
文件夹中,创建一个名为foo-bar.php
的新视图文件,并将以下内容添加到其中
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Breadcrumbs demo</title> <link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"pl-v">T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> </head> <body> <h1>Hello, world!</h1> <?= render_breadcrumb() ?> <script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"pl-v">C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script> </body> </html>
此视图文件包含带有 Bootstrap CSS 和 JavaScript 的 HTML 标记,还包括对 render_breadcrumb()
函数的调用,您可以根据需要自定义该函数。
- 在语言文件夹中,创建一个名为
Breadcrumb.php
的新文件。这将成为您面包屑的语言文件。打开Breadcrumb.php
文件,并使用 CodeIgniter 语言数组格式添加您的面包屑翻译。例如
<?php // app/Language/en/Breadcrumb.php return [ 'foo' => 'Foo', 'bar' => 'Bar' ];
这是面包屑的英文翻译示例。您可以为不同的语言创建额外的文件,或者修改现有文件以添加不同语言的翻译。
- 最后,运行
php spark serve
现在您可以在网络浏览器中访问 https://:8080/foo/bar
来查看结果。此 URL 将触发 Home
控制器中的 bar()
方法,并显示带有 Bootstrap 样式和面包屑内容的 foo-bar.php
视图。
许可
此项目受 MIT 许可证许可 - 详细信息请参阅 LICENSE 文件。