geeklabs/ci4-breadcrumbs

CodeIgniter 4 的面包屑导航

v2.0.9 2022-12-18 12:10 UTC

This package is auto-updated.

Last update: 2024-09-18 16:14:20 UTC


README

code score code grade

CI4-Breadcrumbs

Codeigniter 4 的简单面包屑库

即将推出 V3.0

支持生成主流 CSS 框架的面包屑。

V2.0.9 已发布

版本 2.0.9 进行了一些重大更改。主要在于安装库的方式。整个库已经重新打包,现在支持将核心文件发布到您的应用程序中。

发布命令将在您的应用文件夹中创建一个名为 'modules' 的新目录。为什么是 'modules'?因为我们计划发布几个易于安装的模块,这些模块可以安装并保持您的应用程序结构整洁有序。

您现在可以选择手动构建面包屑或使用自动构建器。自动构建器将您的 URI 字符串分解成 Bootstrap 面包屑。

我们还添加了使用令人惊叹的 HalfMoon CSS 框架构建面包屑的选项。V3.0 将添加更多 CSS 框架。

通过 Composer 安装

composer require geeklabs/ci4-breadcrumbs

然后运行

php spark breadcrumbs:publish

您将被要求选择您正在使用的 CSS 框架。请选择并按回车键

目前您可以选择 Bootstrap 或令人惊叹的 HalfMoon 框架。V3.0 将添加更多框架。

What css framework are you using?:
  [0]  Bootstrap
  [1]  Halfmoon

加载到控制器中

use  App\Modules\Breadcrumbs\Breadcrumbs;

如果您不想将库发布到项目中,而希望将其保持在 'vendors' 文件夹中,您可以使用 namespace 并省略 'php spark breadcrumbs:publish' 命令。

use  Geeklabs\Breadcrumbs\Core\Breadcrumbs;

如果您不将库发布到项目中,并从 'vendors' 文件夹中调用它,您需要手动修改位于 'vendor/geeklabs/ci4-breadcrumbs/src/config/config.php' 的配置文件以选择正确的 CSS 框架。

用法

开箱即用的面包屑使用 Bootstrap 样式设置,例如。

<nav aria-label="breadcrumb">
  <ol class="breadcrumb">
    <li class="breadcrumb-item"><a href="#">Home</a></li>
    <li class="breadcrumb-item active" aria-current="page">Library</li>
  </ol>
</nav>

如果您想覆盖这些样式,添加额外的类等,您可以在 Breadcrumbs.php 的 __construct 函数中做到这一点。

V3.0 将添加更多 CSS 框架支持。如果您想添加特定的框架,请提交一个问题,我们将添加它。

要使用此库,首先将其加载到您的控制器中。

use App\libraries\Breadcrumb;

创建一个实例

$this->breadcrumb = new Breadcrumb();

自动构建

如果您希望简单的面包屑自动根据您的 URL 构建面包屑,您可以调用

$data['breadcrumbs'] = $this->breadcrumb->buildAuto();

然后简单地将其输出到您的视图中

 <?php echo $breadcrumbs; ?> 

完成了!就这么简单。

几乎完成了。现在,您的面包屑是根据您的 URI 自动生成的,当您构建路由时,您需要考虑一些额外的因素。例如,如果您有一个路由如

 $routes->add('admin/customers/profile', 'Controller::index')

您的面包屑将是

Admin / Customer / Profile

因此,admin 和 customer 也必须为它们设置路由。

如果您希望您的面包屑保持可读性,您可以在 URI 分段中添加一个 - 来强制空格,例如

edit-customer = Edit Customer

手动构建

如果您想对面包屑有更多控制,您仍然可以手动构建它们。

构建您的面包屑

 $this->breadcrumb->add('Home', '/');
 $this->breadcrumb->add('Dashboard', '/dashboard');  
 $this->breadcrumb->add('Customers', '/customers');  

确保在您的 URL 前包含 /

使用以下方式构建面包屑

$data['breadcrumbs'] = $this->breadcrumb->render();

将数据传递到您的视图中,然后

<?php echo $breadcrumbs; ?>

示例控制器

namespace App\Controllers;

use CodeIgniter\Controller;
use App\Modules\Breadcrumbs\Breadcrumbs;

class Home extends Controller{

   public $breadcrumb;

   public function __construct()
   {        
       $this->breadcrumb = new Breadcrumb();
   }

   public function index(){

       $this->breadcrumb->add('Home', '/');
       $this->breadcrumb->add('Dashboard', '/dashboard');
       $this->breadcrumb->add('Customer', '/dashboard/customer');

       $data['breadcrumbs'] = $this->breadcrumb->render();

       return view('home', $data);

   }

}