{"id":13805777,"url":"https://github.com/sergeyklay/breadcrumbs","last_synced_at":"2025-08-25T06:38:43.437Z","repository":{"id":48636134,"uuid":"52214289","full_name":"sergeyklay/breadcrumbs","owner":"sergeyklay","description":"Powerful and flexible component for building site breadcrumbs.","archived":false,"fork":false,"pushed_at":"2021-07-16T15:04:19.000Z","size":106,"stargazers_count":39,"open_issues_count":3,"forks_count":13,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-08-01T04:25:26.426Z","etag":null,"topics":["breadcrumbs","crumbs","phalcon","php"],"latest_commit_sha":null,"homepage":"https://packagist.org/packages/sergeyklay/breadcrumbs","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sergeyklay.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-21T15:59:08.000Z","updated_at":"2025-05-04T11:45:17.000Z","dependencies_parsed_at":"2022-09-03T08:52:32.562Z","dependency_job_id":null,"html_url":"https://github.com/sergeyklay/breadcrumbs","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/sergeyklay/breadcrumbs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeyklay%2Fbreadcrumbs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeyklay%2Fbreadcrumbs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeyklay%2Fbreadcrumbs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeyklay%2Fbreadcrumbs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sergeyklay","download_url":"https://codeload.github.com/sergeyklay/breadcrumbs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeyklay%2Fbreadcrumbs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272014492,"owners_count":24858709,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["breadcrumbs","crumbs","phalcon","php"],"created_at":"2024-08-04T01:01:04.767Z","updated_at":"2025-08-25T06:38:43.404Z","avatar_url":"https://github.com/sergeyklay.png","language":"PHP","funding_links":[],"categories":["Miscellaneous"],"sub_categories":[],"readme":"# Phalcon Breadcrumbs [![Build Status][:travis-badge:]][:travis-url:]\n\n![Breadcrumbs Screenshot][:screenshot:]\n\nPhalcon Breadcrumbs is a powerful and flexible component for building site breadcrumbs.\nYou can adapt it to your own needs or improve it if you want.\n\nPlease write us if you have any feedback.\n\nThanks!\n\n## NOTE\n\nThe `master` branch will always contain the latest stable version. If you wish\nto check older versions or newer ones currently under development, please\nswitch to the relevant branch/tag.\n\n## Getting Started\n\n### Requirements\n\nTo use this component, you need at least:\n\n* [Composer][:composer:]\n* PHP \u003e= 5.5\n* [Phalcon Framework release][:phalcon:] extension enabled \u003e= 2.x \u003c 4.x\n\n**NOTE:** Support for legacy PHP versions (down to 7.0) is provided on a best-effort basis.\n\n### Installing\n\n```sh\n$ composer require sergeyklay/breadcrumbs\n```\n\n### Define your breadcrumbs\n\nWe recommend registering it with your application's services for even easier use:\n\n```php\n\u003c?php\n\nuse Phalcon\\Breadcrumbs;\n\n// Initialize the Breadcrumbs component.\n$di-\u003esetShared('breadcrumbs', function () {\n    return new Breadcrumbs;\n});\n```\n\n**Adding a crumb with a link:**\n\n```php\n\u003c?php\n\n$this-\u003ebreadcrumbs-\u003eadd('Home', '/');\n```\n\n**Adding a crumb without a link (normally the last one):**\n\n```php\n\u003c?php\n\n$this-\u003ebreadcrumbs-\u003eadd('User', null, ['linked' =\u003e false]);\n```\n\n**Output crumbs:**\n\nPhp Engine\n```html\n\u003col class=\"breadcrumb\"\u003e\n    \u003c?php $this-\u003ebreadcrumbs-\u003eoutput(); ?\u003e\n\u003c/ol\u003e\n```\n\nVolt Engine\n```volt\n\u003col class=\"breadcrumb\"\u003e\n  {{ breadcrumbs.output() }}\n\u003c/ol\u003e\n```\n\n**Change crumb separator:**\n\n```php\n\u003c?php\n\n$this-\u003ebreadcrumbs-\u003esetSeparator(' \u0026raquo; ');\n```\n\n**Make The last element is always not a link:**\n\n```php\n\u003c?php\n\n$this-\u003ebreadcrumbs-\u003esetLastNotLinked(true);\n```\n\n**Delete a crumb (by url):**\n\n```php\n\u003c?php\n\n$this-\u003ebreadcrumbs-\u003eremove('/admin/user/create');\n\n// remove a crumb without an url\n$this-\u003ebreadcrumbs-\u003eremove(null);\n```\n\n**Update an existing crumb:**\n\n```php\n\u003c?php\n\n$this-\u003ebreadcrumbs-\u003eupdate('/admin/user/remove', ['label' =\u003e '\u003cstrong class=\"red\"\u003eRemove\u003c/strong\u003e']);\n```\n\n**Count crumbs:**\n```php\n\u003c?php\n\n$this-\u003ebreadcrumbs-\u003ecount();\n```\n\n**Sets rendering template:**\n\n```php\n\u003c?php\n\n$this-\u003ebreadcrumbs-\u003esetTemplate(\n    '\u003cli\u003e\u003ca href=\"{{link}}\"\u003e{{icon}}{{label}}\u003c/a\u003e\u003c/li\u003e', // linked\n    '\u003cli class=\"active\"\u003e{{icon}}{{label}}\u003c/li\u003e',         // not linked\n    '\u003ci class=\"fa fa-dashboard\"\u003e\u003c/i\u003e'                    // first icon\n);\n```\n\n**Multi-language support:**\n\n```php\n\u003c?php\n\nuse Phalcon\\Translate\\Adapter\\NativeArray as Translator;\nuse Phalcon\\Breadcrumbs;\n\n$messages = [\n    'crumb-home'     =\u003e 'Home',\n    'crumb-user'     =\u003e 'User',\n    'crumb-settings' =\u003e 'Settings',\n    'crumb-profile'  =\u003e 'Profile',\n];\n\n// Initialize the Translate adapter.\n$di-\u003esetShared('translate', function () use ($messages) {\n    return new Translator(['content' =\u003e $messages]);\n});\n\n// Initialize the Breadcrumbs component.\n$di-\u003esetShared('breadcrumbs', function () {\n    return new Breadcrumbs;\n});\n```\n\n**Errors logging:**\n\n```php\n\u003c?php\n\nuse Phalcon\\Logger\\Formatter\\Line as FormatterLine;\nuse Phalcon\\Logger\\Adapter\\File as FileLogger;\nuse Phalcon\\Breadcrumbs;\n\n/**\n * Initialize the Logger.\n *\n * @var $config array\n * @var $di \\Phalcon\\Di\n */\n$di-\u003esetShared('logger', function ($filename = null, $format = null) use ($config) {\n    $formatter = new FormatterLine($config-\u003eget('logger')-\u003eformat, $config-\u003eget('logger')-\u003edate);\n    $logger = new FileLogger($config-\u003eget('logger')-\u003epath . $config-\u003eget('logger')-\u003efilename);\n\n    $logger-\u003esetFormatter($formatter);\n    $logger-\u003esetLogLevel($config-\u003eget('logger')-\u003elogLevel);\n\n    return $logger;\n});\n\n// Initialize the Breadcrumbs component.\n$di-\u003esetShared('breadcrumbs', function () {\n    return new Breadcrumbs;\n});\n```\n\n### Events\n\n```php\n\u003c?php\n\nuse Phalcon\\Breadcrumbs;\nuse Phalcon\\Events\\Manager as EventsManager;\n\n// Initialize the Events Manager.\n$di-\u003esetShared('eventsManager', function () {\n    return new EventsManager;\n});\n\n// Initialize the Breadcrumbs component.\n$di-\u003esetShared('breadcrumbs', function () use ($di) {\n    $manager = $di-\u003egetShared('eventsManager');\n    $manager-\u003eattach('breadcrumbs', function ($event, $connection) {\n        // We stop the event if it is cancelable\n        if ($event-\u003eisCancelable()) {\n            // Stop the event, so other listeners will not be notified about this\n            $event-\u003estop();\n        }\n\n        // Receiving the data from the event context\n        print_r($event-\u003egetData());\n    });\n\n    $breadcrumbs = new Breadcrumbs;\n    $breadcrumbs-\u003esetEventsManager($manager);\n\n    return $breadcrumbs;\n});\n```\n\nAvailable events:\n\n```\nbreadcrumbs:beforeAdd\nbreadcrumbs:afterAdd\nbreadcrumbs:beforeOutput\nbreadcrumbs:afterOutput\nbreadcrumbs:beforeTranslate\nbreadcrumbs:afterTranslate\nbreadcrumbs:beforeLogging\nbreadcrumbs:afterLogging\nbreadcrumbs:beforeRemove\nbreadcrumbs:afterRemove\nbreadcrumbs:beforeUpdate\nbreadcrumbs:afterUpdate\nbreadcrumbs:beforeSetTemplate\nbreadcrumbs:afterSetTemplate\n```\n\n## Copyright\n\nPhalcon Breadcrumbs is open-sourced software licensed under the [New BSD License][:license:].\n© Serghei Iakovlev\n\n[:composer:]: https://getcomposer.org/\n[:phalcon:]: https://github.com/sergeyklay/cphalcon/releases\n[:license:]: https://github.com/sergeyklay/breadcrumbs/blob/master/LICENSE.txt\n[:screenshot:]: https://github.com/sergeyklay/breadcrumbs/blob/master/docs/breadcrumbs.png\n[:travis-url:]: https://travis-ci.com/sergeyklay/breadcrumbs\n[:travis-badge:]: https://travis-ci.com/sergeyklay/breadcrumbs.svg?branch=master\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergeyklay%2Fbreadcrumbs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsergeyklay%2Fbreadcrumbs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergeyklay%2Fbreadcrumbs/lists"}