Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #511 from tigrang/crumb-list-opt

Moving duplicate logic to a new method
  • Loading branch information...
commit e5205a8dccf3e631509f5dcdba9bd285881a9a92 2 parents cee8f2c + 95ba5f4
@markstory markstory authored
Showing with 26 additions and 28 deletions.
  1. +26 −28 lib/Cake/View/Helper/HtmlHelper.php
View
54 lib/Cake/View/Helper/HtmlHelper.php
@@ -684,21 +684,8 @@ public function style($data, $oneline = true) {
public function getCrumbs($separator = '»', $startText = false) {
if (!empty($this->_crumbs)) {
$out = array();
- if ($startText) {
- if (!is_array($startText)) {
- $startText = array(
- 'url' => '/',
- 'text' => $startText
- );
- }
- $startText += array('url' => '/', 'text' => __('Home'));
- list($url, $text) = array($startText['url'], $startText['text']);
- unset($startText['url'], $startText['text']);
-
- $out[] = $this->link($text, $url, $startText);
- }
-
- foreach ($this->_crumbs as $crumb) {
+ $crumbs = $this->_prepareCrumbs($startText);
+ foreach ($crumbs as $crumb) {
if (!empty($crumb[1])) {
$out[] = $this->link($crumb[0], $crumb[1], $crumb[2]);
} else {
@@ -727,19 +714,7 @@ public function getCrumbs($separator = '»', $startText = false) {
public function getCrumbList($options = array(), $startText = false) {
if (!empty($this->_crumbs)) {
$result = '';
- $crumbs = $this->_crumbs;
- if ($startText) {
- if (!is_array($startText)) {
- $startText = array(
- 'url' => '/',
- 'text' => $startText
- );
- }
- $startText += array('url' => '/', 'text' => __('Home'));
- list($url, $text) = array($startText['url'], $startText['text']);
- unset($startText['url'], $startText['text']);
- array_unshift($crumbs, array($text, $url, $startText));
- }
+ $crumbs = $this->_prepareCrumbs($startText);
$crumbCount = count($crumbs);
$ulOptions = $options;
foreach ($crumbs as $which => $crumb) {
@@ -763,6 +738,29 @@ public function getCrumbList($options = array(), $startText = false) {
}
/**
+ * Prepends startText to crumbs array if set
+ *
+ * @param $startText
+ * @return array Crumb list including startText (if provided)
+ */
+ protected function _prepareCrumbs($startText) {
+ $crumbs = $this->_crumbs;
+ if ($startText) {
+ if (!is_array($startText)) {
+ $startText = array(
+ 'url' => '/',
+ 'text' => $startText
+ );
+ }
+ $startText += array('url' => '/', 'text' => __('Home'));
+ list($url, $text) = array($startText['url'], $startText['text']);
+ unset($startText['url'], $startText['text']);
+ array_unshift($crumbs, array($text, $url, $startText));
+ }
+ return $crumbs;
+ }
+
+/**
* Creates a formatted IMG element.
*
* This method will set an empty alt attribute if one is not supplied.
Please sign in to comment.
Something went wrong with that request. Please try again.