noherczeg / breadcrumb
一个简单的面包屑生成库。
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-11 11:31:11 UTC
README
#Breadcrumb
一个用于面包屑管理的包。
此包已不再维护!
##特性
- 无框架限制
- 可以使用语言文件或数组来翻译面包屑段
- 可以使用URI字符串、JSON数组或PHP数组来创建段
- 可以创建HTML、Twitter Bootstrap、Zurb Foundation面包屑
- 可以任意数量地从两端忽略/删除/添加段
- 可以覆盖翻译
- 支持用户自定义构建器
- 自定义分隔符
- 4种不同的大小写选项:null (保留原始内容),小写,大写,标题
- 在构建HTML面包屑时支持属性注入
- 可以跳过链接到最后一个元素
- 几乎一切都可以使用方法链
- 提供Laravel 4的服务提供者
##安装
此包基于composer,因此如果您已安装它,您就已经完成了大部分工作。
Composer
从 https://getcomposer.org.cn/download/
下载并安装composer
将以下内容添加到项目根目录的 composer.json
文件中
{
"require": {
"noherczeg/breadcrumb": "dev-master"
}
}
完成操作后,只需运行 php composer install
,即可使用此包!
Laravel特定设置
请注意,此包是无框架限制的!您也可以将其与任何框架一起使用!
Laravel 3配置
如果您正在使用laravel 3,您必须执行以下操作才能使用基于composer的包
- 在项目目录的
paths.php
文件中添加以下行:$paths['composer'] = 'vendor';
- 在项目目录的 public/index.php 文件中:在
require '../paths.php';
行之后添加以下内容:require path('composer').'autoload.php';
将包注册为Laravel 4的服务
在您的 app/config/app.php
文件中的 providers
数组下放置以下内容:
'Noherczeg\Breadcrumb\BreadcrumbServiceProvider'
在相同文件下的 aliases
下完成外观的别名添加
'Breadcrumb' => 'Noherczeg\Breadcrumb\Facades\Breadcrumb'
通过发布的配置文件覆盖默认配置。您可以通过键入创建它
$ php artisan config:publish noherczeg/breadcrumb
##使用示例: ###通用使用
####1) 准备包
$base_url (String|required)
:您网站的基准URL$use_language (mixed)
:语言代码(来自Languages文件夹的文件名),或用于翻译的字典数组
// Add your base url as you wish, like in Laravel's case: URL::base() or 'http://localhost/breadcrumb/' or whatever
$bc = new \Noherczeg\Breadcrumb\Breadcrumb(URL::base());
使用非默认语言(en
或您配置中设置的任何语言)
$bc = new \Noherczeg\Breadcrumb\Breadcrumb('http://localhost/breadcrumb/', 'de');
或使用自定义翻译数组(自2.0.2起)
$dictionary = array('this' => 'to_this', 'what' => 'what not?');
$bc = new \Noherczeg\Breadcrumb\Breadcrumb('http://localhost/breadcrumb/', $dictionary);
覆盖配置(可以是链式调用,也可以继续链式调用)
Breadcrumb::setConfiguration(array('language' => 'de'));
####2) 从变量输入类型注册一批段
警告:
- 从版本2.0.0开始,此方法不再尝试将第一个元素设置为根元素!如果您想添加一个(指向您网站的基准URL),请向下滚动一点,您将得到一个示例,说明如何进行操作。
- 如果翻译器在提供的字典中有匹配项,则所有给定的段都将被翻译!
支持来源: Array
、JSON Array
、String
// Using a PHP array to fill our list
$bc->from(array('test-segment', 'second', '3rd', 'Fourth-Thingy'));
// or JSON array
$bc->from('["asds", "12323", "Qw-Er-Ty"]');
// or URI String
$bc->from('First-Segment/Second/3rdWhatever');
####3) 分段注册段:您可以逐个添加段,也可以告诉面包屑将它们放在哪一侧。当您逐个处理数据,并且不一定在开始时知道最终结果顺序时,这很有用。
您可以告诉面包屑组件您不希望翻译的元素,或者希望它具有特定的值
$name (String|required)
:段/别名/URI部分本身(这部分将保持不变)$side (String)
:放置段的位置(left
/right
,默认为right
)$base (Boolean)
:此元素是否指向网站的基URL?(true
/false
,默认为false
)$translate (mixed)
:如果为true,则尝试从字典中翻译元素,如果为false,则忽略翻译,如果为String,则使用给定值(默认为true)
我们现在也使用了方法链,但这只是一个选项:)
/**
* The order in which the Segments will be stored in the list is: first, second, third, fourth.
*/
$bc->append('third');
$bc->append('fourth', 'right');
$bc->append('second', 'left')->append('first', 'left', true);
####4)添加指向基URL的段:自最新构建(2.0.0)以来,一个主要的逻辑问题已被修复。现在,无论您使用什么来源来初始化面包屑,都不会自动将第一个元素设置为根元素。这解决了链接的问题!从现在开始,如果您想添加指向基URL的元素,您必须每次都添加一个
// this way you'll have a first element 'welcome' which will point to your base url
$bc->from('/action/parameter1/parameter2')->append('welcome', 'left', true);
####5)从列表中删除段:您可以逐个从已注册的一组中删除段。
$pos (int|required)
:要删除的元素的索引$reindex (Boolean)
:一个布尔值,可能会在删除后触发剩余元素的重新索引(默认为:false
)
// we provide a base list of Segments before removal
$bc->from(array('test-segment', 'second', '3rd', 'Fourth-Thingy'));
// remove the Segment on index: 2
$bc->remove(2);
// remove the Segment on index: 0, and re-index the list after
$bc->remove(0, true);
/**
* Result will be (not an actual var_dump!)
* 0 => 'second'
* 1 => 'Fourth-Thingy'
*/
####6)添加/设置分隔符链接(禁用面包屑):现在,您可以添加或设置禁用段,这意味着在任何构建器中它们都将单独处理:它们不会进行翻译,并且将应用适当的格式化。
这当需要处理可变元素时非常有用。
添加一个新的禁用元素
// the last parameter flags the Segment as disabled
$bc->append(URI::segment(2), 'left', false, true, true);
禁用预填充的元素
// If you decide to disable or enable a Segment on the fly you can do it like this (works with enable() as well)
Breadcrumb::from(Request::path())->disable(1);
####7)覆盖翻译:自:2.0.2
// this way you can tell the translator to translate the given value to "overwritten" no matter what
$bc->append(URI::segment(3), 'left', true, 'overwritten');
####8)构建面包屑:创建面包屑可以是简单的,也可以是复杂的,如果需要的话。该包还允许您定义自己的构建器(如果您想查看,请检查 Builders 文件夹)。
$format (String)
:创建的面包屑的格式(bootstrap
、foundation
、html
)$casing (mixed)
:设置面包屑中文本的大小写(null
、upper
、lower
、title
,默认为null
,这意味着不进行转换)$last_not_link (Boolean)
:如果设置为false,则最后一个元素也将是一个链接,默认为true
$separator (String)
:面包屑之间的分隔符(仅应用于html和bootstrap风格的面包屑,因为Zurb Foundation中没有分隔符!)$customizations (Array)
:可以设置一个自定义数组到元素,其中键是属性,值是值(仅适用于html类型的面包屑!)
#####首先,我们添加一些元素来工作
// Sample list initialization
$bc->from(array('test-segment', 'second', '3rd', 'Fourth-Thingy'));
#####a)使用默认设置创建面包屑
/**
* This will build default format(html) breadcrumbs with the default separator( / )
* without any casing modification or property injection, and the last element
* won't be a link
*/
echo $bc->build();
#####b)创建Zurb Foundation风格的面包屑
/**
* This will build Zurb Foundation styled breadcrumbs with all links upper cased, and
* the last element will be a link too
*/
echo $bc->build('foundation', 'upper', false);
#####c)创建Bootstrap风格的面包屑
/**
* This way you'll get Bootstrap styled breadcrumbs with unmodified casing, the last
* element as link, and a "+" as separator
*/
echo $bc->build('bootstrap', null, false, '+');
#####d)创建复杂的HTML面包屑
/**
* This will create HTML breadcrumbs which will have lower cased links, last
* element won't be a link, default separator will be ` / `, and will inject properties
* which are in the array.
*/
echo $bc->build('html', 'lower', true, null, array('style' => 'font-family: Arial; font-size: 11px;', 'class' => 'some_class'));
####8)实用函数:这些函数存在是为了在一定程度上简化您使用此包的工作。
- 注册段列表:
var_dump($bc->registered());
- 从列表中选取一个元素:
var_dump($bc->segment(1));
- 列表中段的总数:
var_dump($bc->num_of_segments());
###Laravel 3 特定,详细
##变更日志
###面包屑 2.0.3
- 添加了在任何地方覆盖配置的能力
- 添加了对分隔符链接(启用/禁用面包屑)的支持
- 修复了配置和翻译处理
###面包屑 2.0.2
- 添加了将翻译数组(字典)作为构造函数的第二个参数提供的能力
- 现在,用户可以在构建面包屑时通过
append()
方法覆盖或忽略翻译
###面包屑 2.0.1
- 现在可以通过 artisan 将配置发布到 Laravel 4。
- 添加了 Laravel 4 服务提供者。
### Breadcrumb 2.0.0
- 现在自动获取构建器列表,不再需要手动维护列表。
- 关键:使用
from()
现在不会自动创建第一个元素作为根!如果你想始终让一个段指向根,你应该在左侧追加()一个,第二个参数设置为'left'
,第三个参数设置为true
!
示例已在本文档的相应部分中提供。
### Breadcrumb 2.0.0-alpha1
- 该捆绑包已从零开始重写,现在作为 composer 包提供。
- 修正了应用程序逻辑缺陷 (例如,基本段)
- 方法现在是可链的。
- 添加了对用户创建的构建器的支持。
- 添加了对 URI 字符串输入的支持。
- 现在与测试一起编写。
### Breadcrumb 1.2
- 重构了代码中的注释。
- 修复了捆绑初始化错误,捆绑包以自动翻译开始。
- 添加了对正确处理 slug 的支持。
- 添加了 get_raw_segments() 以便更好地进行调试。
- 添加了 append(),现在可以添加任意数量的段到工作数组的任意一侧。
- 添加了 remove(),可以移除工作数组中的任意数量的段,并提供索引处理。
- 将配置文件中的 slug_separator 和 word_separator 选项。
- 用新的、更好的、更详细的文档替换了较差的文档。
### Breadcrumb 1.1
- 重命名了方法以获得更好的可读性。
- 添加了对 Bootstrap 输出的支持。
- 添加了对外部捆绑翻译文件处理选项的支持。
- 在文档中提供了使用示例。
- 在配置文件中添加了 scan_bundles、output_format 选项。
### Breadcrumb 1.0
- 捆绑开始。
##开发人员笔记:如果您发现错误/逻辑错误或知道缺少的内容,请通过 pull requests 或 issues 告诉我。我正在跟踪这个存储库,并且会永远这样做,所以您可以联系我 :)