From e4cf948c0b466aa5b030cdc718e512a24da005e8 Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Sun, 11 Jan 2015 15:16:05 +0800 Subject: [PATCH] Better code for #6106 --- framework/CHANGELOG.md | 2 +- framework/widgets/Breadcrumbs.php | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index f3ac83a537..78881e2916 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -21,7 +21,7 @@ Yii Framework 2 Change Log - Bug #6736: Removed `Content-Transfer-Encoding` from the list of default download headers (DaSourcerer) - Enh #4502: Added alias support to URL route when calling `Url::toRoute()` and `Url::to()` (qiangxue, lynicidn) - Enh #5194: `yii\console\controllers\AssetController` now handles bundle files from external resources properly (klimov-paul) -- Enh #6106: Added ability to specify `encode` for each item of `yii\widgets\Breadcrumbs` (samdark) +- Enh #6106: Added ability to specify `encode` for each item of `yii\widgets\Breadcrumbs` (samdark, aleksanderd) - Enh #6247: Logger and error handler are now using slightly less memory (stepanselyuk, samdark) - Enh #6398: Added support for specifying dependent component in terms of a configuration array for classes such as `DbCache` (qiangxue) - Enh #6434: Added `yii\behaviors\SluggableBehavior::immutable` to support keeping the generated slug unchanged (trntv) diff --git a/framework/widgets/Breadcrumbs.php b/framework/widgets/Breadcrumbs.php index 8ddf13d182..5801859eda 100644 --- a/framework/widgets/Breadcrumbs.php +++ b/framework/widgets/Breadcrumbs.php @@ -10,6 +10,7 @@ namespace yii\widgets; use Yii; use yii\base\Widget; use yii\base\InvalidConfigException; +use yii\helpers\ArrayHelper; use yii\helpers\Html; /** @@ -159,12 +160,7 @@ class Breadcrumbs extends Widget */ protected function renderItem($link, $template) { - $encodeLabel = $this->encodeLabels; - if (array_key_exists('encode', $link)) { - $encodeLabel = $link['encode']; - unset($link['encode']); - } - + $encodeLabel = $encode = ArrayHelper::remove($link, 'encode', $this->encodeLabels); if (array_key_exists('label', $link)) { $label = $encodeLabel ? Html::encode($link['label']) : $link['label']; } else {