Skip to content

Commit

Permalink
Updated README & Changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
lcharette committed Apr 21, 2020
1 parent 174df9b commit d83ae58
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 17 deletions.
14 changes: 13 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
# Change Log

## 2.0.0
## 3.0.0
- Added `Crumbs` object to represent each element.
- Added `addCrumb` & `prependCrumb` method.
- Removed `active` option for each crumb. It's now automatically handled by the Twig template.
- Crumbs title is not optional anymore.
- Update to the base breadcrumb template (removal of first, last element, which is handled by Twig now).
- `BreadcrumbManager` is now `Breadcrumb/manager`.
- Removed `src/Breadcrumb.php` Sprinkle class (not needed anyway).
- Added automated tests.
- Added Travis, PHP-CS-Fixer, PHPStan, Codecov, StyleCI configuration.

## 2.0.1
- Updated Readme instructions
- Fix styling

## 2.0.0
- Updated for UserFrosting v4.1.x
Expand Down
86 changes: 70 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,39 @@
# Breadcrumb Sprinkle for [UserFrosting 4](https://www.userfrosting.com)

[![StyleCI](https://github.styleci.io/repos/70994902/shield?branch=master)](https://github.styleci.io/repos/70994902) [![UserFrosting Version](https://img.shields.io/badge/UserFrosting->=%204.1.16-brightgreen.svg)](https://github.com/userfrosting/UserFrosting) [![Donate](https://img.shields.io/badge/Donate-Buy%20Me%20a%20Coffee-brightgreen.svg)](https://ko-fi.com/A7052ICP)

Breadcrumb services provider for Sprinkle for [UserFrosting 4](https://www.userfrosting.com).
[![Donate][kofi-badge]][kofi]
[![Latest Version][releases-badge]][releases]
[![UserFrosting Version][uf-version]][uf]
[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](LICENSE)
[![Travis][travis-badge]][travis]
[![Codecov][codecov-badge]][codecov]
[![StyleCI][styleci-badge]][styleci]

[kofi]: https://ko-fi.com/A7052ICP
[kofi-badge]: https://img.shields.io/badge/Donate-Buy%20Me%20a%20Coffee-blue.svg
[releases]: https://github.com/lcharette/UF_Breadcrumb/releases
[releases-badge]: https://img.shields.io/github/release/lcharette/UF_Breadcrumb.svg
[uf-version]: https://img.shields.io/badge/UserFrosting->=%204.3-brightgreen.svg
[uf]: https://github.com/userfrosting/UserFrosting
[travis]: https://travis-ci.org/lcharette/UF_Breadcrumb
[travis-badge]: https://travis-ci.org/lcharette/UF_Breadcrumb.svg?branch=master
[codecov]: https://codecov.io/gh/lcharette/UF_Breadcrumb
[codecov-badge]: https://codecov.io/gh/lcharette/UF_Breadcrumb/branch/master/graph/badge.svg
[styleci]: https://styleci.io/repos/70994902
[styleci-badge]: https://styleci.io/repos/70994902/shield?branch=master&style=flat

This Sprinkle provides an helper service and Twig template to manage simple page breadcrumb for [UserFrosting 4](https://www.userfrosting.com).

# Help and Contributing

If you need help using this sprinkle or found any bug, feels free to open an issue or submit a pull request. You can also find me on the [UserFrosting Chat](https://chat.userfrosting.com/) most of the time for direct support.

# Installation
Edit UserFrosting `app/sprinkles.json` file and add the following to the `require` list : `"lcharette/uf_breadcrumb": "^2.0.0"`. Also add `Breadcrumb` to the `base` list. For example:
Edit UserFrosting `app/sprinkles.json` file and add the following to the `require` list : `"lcharette/uf_breadcrumb": "^3.0.0"`. Also add `Breadcrumb` to the `base` list. For example:

```json
{
"require": {
"lcharette/uf_breadcrumb": "^2.0.0"
"lcharette/uf_breadcrumb": "^3.0.0"
},
"base": [
"core",
Expand All @@ -29,30 +48,65 @@ Run `composer update` then `php bakery bake` to install the sprinkle.

## Usage

Breadcrumbs hierarchy cannot be autodetected right now. You have to define your hierarchy manually in your controllers. To dynamically add breadcrumbs to the UI, simply use the `add` method of the `breadcrumb` service:
### Adding crumbs
Breadcrumbs hierarchy needs to be manually defined in each controllers. To dynamically add breadcrumbs to the UI, simply use the `add` method of the `breadcrumb` service:

```php
// add($name = "", $uri = "", $active = true)
$this->ci->breadcrumb->add("Item name", "path/");
// add($name, $uri = "")
$this->ci->breadcrumb->add('Item name', 'path/');
```

Note that the item name can also be a translation key. Path can be optional if you don't want to provide a link with your breadcrumb.
You can also chain multiple methods :

You can also use the `prepend` method to add a new item to the beginning of the list:
```php
$this->ci->breadcrumb->add("Projects", "projects/")
->add("Project Foo", "projects/foo")
->add("Settings");
```

The crumbs can also be created using the `Crumb` object :

```php
//prepend($name = "", $uri = "", $active = true)
$this->ci->breadcrumb->prepend("Item name", "path/");
$crumb = new Crumb();
$crumb->setTitle('Item name')->setUri('path/');
$this->ci->breadcrumb->addCrumb($crumb);
```

Note that the site index is automatically added to the beginning of the list, whether you use `prepend` or not.
The item name can also be switched for a translation key :
```php
$this->ci->breadcrumb->add(['TRANSLATION_KEY', ['placeholder' => 'Value']], 'path/');

You can also chain multiple methods :
// or

$crumb = new Crumb();
$crumb->setTitle('TRANSLATION_KEY', ['placeholder' => 'Value'])->setUri('path/');
```

Path is actually optional if you don't want to provide a link with your crumb. Alternatively, a route name / route pattern placeholders can also be used :

```php
$this->ci->breadcrumb->add("Projects", "projects/")->add("Project Foo", "projects/foo");
$this->ci->breadcrumb->add('Item name', ['route_name', ['id' => '123']]);

// or

$crumb = new Crumb();
$crumb->setTitle('Item name')->setRoute('route_name', ['id' => '123']);
```

### Prepend crumbs
You can also use the `prepend` method to add a new item to the beginning of the list:

```php
//prepend($name, $uri = "")
$this->ci->breadcrumb->prepend("Item name", "path/");

// or

$this->ci->breadcrumb->prependCrumb($crumb);
```

Note that the site index is automatically added to the beginning of the list, whether you use `prepend` or not.

**If you don't add any custom breadcrumbs, it will fallback to the default UserFrosting behaviour.**

## Custom style
Expand All @@ -66,4 +120,4 @@ The default UserFrosting layouts and themes will pick up the breadcrumbs automat
If you want to edit the style of the breadcrumbs, simply copy the `templates/navigation/breadcrumb.html.twig` file in your own sprinkle and edit according to your styling. No custom assets are included with this sprinkle.

# Licence
By [Louis Charette](https://github.com/lcharette). Copyright (c) 2017, free to use in personal and commercial software as per the MIT license.
By [Louis Charette](https://github.com/lcharette). Copyright (c) 2020, free to use in personal and commercial software as per the MIT license.

0 comments on commit d83ae58

Please sign in to comment.