/** * testClass * * @since 2.2.0 * * @param array $className * @param string $expect * * @dataProvider providerClass */ public function testClass($className = array(), $expect = null) { /* setup */ $element = new Html\Element(); $element->init('a'); /* actual */ $actual = $element->addClass($className[0])->removeClass($className[1])->render(); /* compare */ $this->assertEquals($expect, $actual); }
/** * render the breadcrumb trail as an unordered list * * @since 2.1.0 * * @return string */ public function render() { $output = Hook::trigger('breadcrumbStart'); $outputItem = null; /* breadcrumb keys */ $breadcrumbKeys = array_keys($this->_breadcrumbArray); $lastKey = end($breadcrumbKeys); /* html elements */ $linkElement = new Html\Element(); $linkElement->init('a'); $itemElement = new Html\Element(); $itemElement->init('li'); $listElement = new Html\Element(); $listElement->init('ul', ['class' => $this->_optionArray['className']['list']]); /* collect item output */ foreach ($this->_breadcrumbArray as $key => $value) { $title = array_key_exists('title', $value) ? $value['title'] : null; $route = array_key_exists('route', $value) ? $value['route'] : null; if ($title) { $outputItem .= '<li>'; /* create a link */ if ($route) { $outputItem .= $linkElement->attr('href', $this->_registry->get('parameterRoute') . $route)->text($title); } else { $outputItem .= $title; } $outputItem .= '</li>'; /* add divider */ if ($key !== $lastKey) { $outputItem .= $itemElement->addClass($this->_optionArray['className']['divider'])->text($this->_optionArray['divider']); } } } /* collect list output */ if ($outputItem) { $output = $listElement->html($outputItem); } $output .= Hook::trigger('breadcrumbEnd'); return $output; }