phalcon/breadcrumbs

该软件包已被废弃,不再维护。作者建议使用 sergeyklay/breadcrumbs 软件包。

Phalcon 2+ 中构建网站面包屑的强大且灵活的组件。

v1.4.2 2019-09-26 15:12 UTC

This package is auto-updated.

Last update: 2019-11-29 09:51:11 UTC


README

Breadcrumbs Screenshot

Phalcon Breadcrumbs 是构建网站面包屑的强大且灵活的组件。您可以根据自己的需求进行修改或改进。

如果您有任何反馈,请告诉我们。

谢谢!

注意

主分支将始终包含最新稳定版本。如果您希望检查旧版本或正在开发中的新版本,请切换到相应的分支/标签。

入门指南

要求

要使用此组件,您至少需要

注意:对旧 PHP 版本(直至 7.0)的支持将尽力提供。

安装

$ composer require sergeyklay/breadcrumbs

定义您的面包屑

我们建议将其与您的应用程序服务一起注册,以便更容易使用

<?php

use Phalcon\Breadcrumbs;

// Initialize the Breadcrumbs component.
$di->setShared('breadcrumbs', function () {
    return new Breadcrumbs;
});

添加带有链接的面包屑

<?php

$this->breadcrumbs->add('Home', '/');

添加不带链接的面包屑(通常是最后一个)

<?php

$this->breadcrumbs->add('User', null, ['linked' => false]);

输出面包屑

PHP 引擎

<ol class="breadcrumb">
    <?php $this->breadcrumbs->output(); ?>
</ol>

Volt 引擎

<ol class="breadcrumb">
  {{ breadcrumbs.output() }}
</ol>

更改面包屑分隔符

<?php

$this->breadcrumbs->setSeparator(' &raquo; ');

确保最后一个元素始终不是链接

<?php

$this->breadcrumbs->setLastNotLinked(true);

删除一个面包屑(通过 URL)

<?php

$this->breadcrumbs->remove('/admin/user/create');

// remove a crumb without an url
$this->breadcrumbs->remove(null);

更新现有的面包屑

<?php

$this->breadcrumbs->update('/admin/user/remove', ['label' => '<strong class="red">Remove</strong>']);

计算面包屑数量

<?php

$this->breadcrumbs->count();

设置渲染模板

<?php

$this->breadcrumbs->setTemplate(
    '<li><a href="{{link}}">{{icon}}{{label}}</a></li>', // linked
    '<li class="active">{{icon}}{{label}}</li>',         // not linked
    '<i class="fa fa-dashboard"></i>'                    // first icon
);

多语言支持

<?php

use Phalcon\Translate\Adapter\NativeArray as Translator;
use Phalcon\Breadcrumbs;

$messages = [
    'crumb-home'     => 'Home',
    'crumb-user'     => 'User',
    'crumb-settings' => 'Settings',
    'crumb-profile'  => 'Profile',
];

// Initialize the Translate adapter.
$di->setShared('translate', function () use ($messages) {
    return new Translator(['content' => $messages]);
});

// Initialize the Breadcrumbs component.
$di->setShared('breadcrumbs', function () {
    return new Breadcrumbs;
});

错误日志

<?php

use Phalcon\Logger\Formatter\Line as FormatterLine;
use Phalcon\Logger\Adapter\File as FileLogger;
use Phalcon\Breadcrumbs;

/**
 * Initialize the Logger.
 *
 * @var $config array
 * @var $di \Phalcon\Di
 */
$di->setShared('logger', function ($filename = null, $format = null) use ($config) {
    $formatter = new FormatterLine($config->get('logger')->format, $config->get('logger')->date);
    $logger = new FileLogger($config->get('logger')->path . $config->get('logger')->filename);

    $logger->setFormatter($formatter);
    $logger->setLogLevel($config->get('logger')->logLevel);

    return $logger;
});

// Initialize the Breadcrumbs component.
$di->setShared('breadcrumbs', function () {
    return new Breadcrumbs;
});

事件

<?php

use Phalcon\Breadcrumbs;
use Phalcon\Events\Manager as EventsManager;

// Initialize the Events Manager.
$di->setShared('eventsManager', function () {
    return new EventsManager;
});

// Initialize the Breadcrumbs component.
$di->setShared('breadcrumbs', function () use ($di) {
    $manager = $di->getShared('eventsManager');
    $manager->attach('breadcrumbs', function ($event, $connection) {
        // We stop the event if it is cancelable
        if ($event->isCancelable()) {
            // Stop the event, so other listeners will not be notified about this
            $event->stop();
        }

        // Receiving the data from the event context
        print_r($event->getData());
    });

    $breadcrumbs = new Breadcrumbs;
    $breadcrumbs->setEventsManager($manager);

    return $breadcrumbs;
});

可用事件

breadcrumbs:beforeAdd
breadcrumbs:afterAdd
breadcrumbs:beforeOutput
breadcrumbs:afterOutput
breadcrumbs:beforeTranslate
breadcrumbs:afterTranslate
breadcrumbs:beforeLogging
breadcrumbs:afterLogging
breadcrumbs:beforeRemove
breadcrumbs:afterRemove
breadcrumbs:beforeUpdate
breadcrumbs:afterUpdate
breadcrumbs:beforeSetTemplate
breadcrumbs:afterSetTemplate

版权

Phalcon Breadcrumbs 是开源软件,根据 新 BSD 许可证 许可。© Serghei Iakovlev