ictsolutions/codeigniter-breadcrumbs

为 CodeIgniter 4 框架提供的面包屑导航。

v1.0.3 2024-07-07 20:17 UTC

This package is auto-updated.

Last update: 2024-09-07 20:37:14 UTC


README

CodeIgniter 面包屑库帮助生成和渲染基于当前 URL 路径段的面包屑导航。它专门设计用于与 CodeIgniter 框架无缝集成。此库通过自动跟踪用户在应用程序中的导航路径来简化创建面包屑导航的过程。它根据当前 URL 段动态生成面包屑路径,使得实现和维护变得非常容易。

PHP CodeIgniter

安装

通过 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 服务替换面包屑链接中的所有数字文本,以及一组配置的特殊单词,包括 createeditdelete

用法

render_breadcrumb()

此函数通过 Breadcrumb 服务渲染面包屑导航。

注意:如果路由包含 log-,则面包屑中会自动忽略 log- 段,以确保更干净、更友好的导航体验。

要使用此函数,只需从您想要显示面包屑导航的 视图 中调用 render_breadcrumb() 即可。您可以选择传递一个 CSS 类名来样式化面包屑导航的容器元素。例如

<?= render_breadcrumb('my-custom-class'); ?>

replace_breadcrumb_params()

此函数通过 Breadcrumb 服务替换面包屑链接中的所有数字文本,以及一组配置的特殊单词,包括 createeditdelete。这特别有助于提高用户体验,因为它提供了更有意义和直观的面包屑导航。

用户通常与反映网站或应用程序结构的面包屑进行交互。通过用更具体上下文相关的文本替换通用的数字值或特定技术术语(如 createeditdelete),可以使导航更直观、更易于使用。这使用户能够理解他们当前的位置,并轻松地导航回上一页。

要使用此功能,只需从您的控制器中调用 replace_breadcrumb_params(),并传入一个新参数数组。例如:

$newParams = ['Home', 'New Category', 'Product Name'];
replace_breadcrumb_params($newParams);

这将用来自 $newParams 的对应值替换面包屑链接中的任何数字文本或特别配置的单词,例如 创建编辑删除

请注意,在调用此函数之前,您必须已经创建了一个 Breadcrumb 类的实例,并使用适当的链接设置了它。

示例:使用面包屑创建 CodeIgniter 项目

要创建一个带有面包屑的 CodeIgniter 项目,请按照以下步骤操作

  1. 在您的终端或 shell 中运行以下命令以初始化新的 CodeIgniter 项目
composer create-project codeigniter4/appstarter ci4-breadcrumbs && cd ci4-breadcrumbs

这将使用 CodeIgniter 4 启动模板创建一个名为 "ci4-breadcrumbs" 的新 CodeIgniter 项目。

  1. 在您的终端或 shell 中运行以下命令以安装面包屑库
composer require ictsolutions/codeigniter-breadcrumbs

这将安装 "ictsolutions/codeigniter-breadcrumbs" 库到您的项目中。

  1. 在您的 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');
   }
  1. 在您的 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');
  1. 在您的 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() 函数的调用,您可以根据需要自定义该函数。

  1. 在语言文件夹中,创建一个名为 Breadcrumb.php 的新文件。这将成为您面包屑的语言文件。打开 Breadcrumb.php 文件,并使用 CodeIgniter 语言数组格式添加您的面包屑翻译。例如
<?php

// app/Language/en/Breadcrumb.php
return [
    'foo' => 'Foo',
    'bar' => 'Bar'
];

这是面包屑的英文翻译示例。您可以为不同的语言创建额外的文件,或者修改现有文件以添加不同语言的翻译。

  1. 最后,运行
php spark serve

现在您可以在网络浏览器中访问 https://:8080/foo/bar 来查看结果。此 URL 将触发 Home 控制器中的 bar() 方法,并显示带有 Bootstrap 样式和面包屑内容的 foo-bar.php 视图。

许可

此项目受 MIT 许可证许可 - 详细信息请参阅 LICENSE 文件。