/** * Returns an HTML string containing an 'a' element for the given page if * the page's href is not empty, and a 'span' element if it is empty * * Overrides {@link Zend_View_Helper_Navigation_Abstract::htmlify()}. * * @param Zend_Navigation_Page $page page to generate HTML for * @return string HTML string for the given page */ public function htmlify(Zend_Navigation_Page $page) { // get label and title for translating $label = $page->getLabel(); $title = $page->getTitle(); // translate label and title? if ($this->getUseTranslator() && ($t = $this->getTranslator())) { if (is_string($label) && !empty($label)) { $label = $t->translate($label); } if (is_string($title) && !empty($title)) { $title = $t->translate($title); } } // get attribs for element $attribs = array_merge($page->getCustomProperties(), array('id' => $page->getId(), 'title' => $title, 'class' => $page->getClass())); // does page have a href? if ($href = $page->getHref()) { if ($page->isActive()) { if ($attribs['class'] != '') { $attribs['class'] .= ' '; } $attribs['class'] .= 'ui-btn-active'; } $element = 'a'; $attribs['href'] = $href; $attribs['target'] = $page->getTarget(); $attribs['accesskey'] = $page->getAccessKey(); } else { $element = 'span'; } return '<' . $element . $this->_htmlAttribs($attribs) . '>' . $this->view->escape($label) . '</' . $element . '>'; }
/** * Returns whether page should be considered active or not * * This method will compare the page properties against the request object * that is found in the front controller. * * @param bool $recursive [optional] whether page should be considered * active if any child pages are active. Default is * false. * @return bool whether page should be considered active or not */ public function isActive($recursive = false) { if (!$this->_active) { $front = Zend_Controller_Front::getInstance(); $reqParams = $front->getRequest()->getParams(); if (!array_key_exists('module', $reqParams)) { $reqParams['module'] = $front->getDefaultModule(); } $myParams = $this->_params; if (null !== $this->_module) { $myParams['module'] = $this->_module; } else { $myParams['module'] = $front->getDefaultModule(); } if (null !== $this->_controller) { $myParams['controller'] = $this->_controller; } else { $myParams['controller'] = $front->getDefaultControllerName(); } if (null !== $this->_action) { $myParams['action'] = $this->_action; } else { $myParams['action'] = $front->getDefaultAction(); } if (count(array_intersect_assoc($reqParams, $myParams)) == count($myParams)) { $this->_active = true; return true; } } return parent::isActive($recursive); }
/** * Returns whether page should be considered active or not * * This method will compare the page properties against the request object * that is found in the front controller. * * @param bool $recursive [optional] whether page should be considered * active if any child pages are active. Default is * false. * @return bool whether page should be considered active or not */ public function isActive($recursive = false) { if (!$this->_active) { $front = Zend_Controller_Front::getInstance(); $request = $front->getRequest(); $reqParams = array(); if ($request) { $reqParams = $request->getParams(); if (!array_key_exists('module', $reqParams)) { $reqParams['module'] = $front->getDefaultModule(); } } $myParams = $this->_params; if ($this->_route) { $route = $front->getRouter()->getRoute($this->_route); if (method_exists($route, 'getDefaults')) { $myParams = array_merge($route->getDefaults(), $myParams); } } if (null !== $this->_module) { $myParams['module'] = $this->_module; } elseif (!array_key_exists('module', $myParams)) { $myParams['module'] = $front->getDefaultModule(); } if (null !== $this->_controller) { $myParams['controller'] = $this->_controller; } elseif (!array_key_exists('controller', $myParams)) { $myParams['controller'] = $front->getDefaultControllerName(); } if (null !== $this->_action) { $myParams['action'] = $this->_action; } elseif (!array_key_exists('action', $myParams)) { $myParams['action'] = $front->getDefaultAction(); } foreach ($myParams as $key => $value) { if ($value == null) { unset($myParams[$key]); } } if (count(array_intersect_assoc($reqParams, $myParams)) == count($myParams)) { $this->_active = true; return true; } } return parent::isActive($recursive); }
/** * Returns whether page should be considered active or not * * This method will compare the page properties against the request object * that is found in the front controller. * * @param bool $recursive [optional] whether page should be considered * active if any child pages are active. Default is * false. * @return bool whether page should be considered active or not */ public function isActive($recursive = false) { if (!$this->_active) { $front = Zend_Controller_Front::getInstance(); $reqParams = $front->getRequest()->getParams(); if (!array_key_exists('module', $reqParams)) { $reqParams['module'] = $front->getDefaultModule(); } /* Original $myParams = $this->_params; if (null !== $this->_module) { $myParams['module'] = $this->_module; } else { $myParams['module'] = $front->getDefaultModule(); } if (null !== $this->_controller) { $myParams['controller'] = $this->_controller; } else { $myParams['controller'] = $front->getDefaultControllerName(); } if (null !== $this->_action) { $myParams['action'] = $this->_action; } else { $myParams['action'] = $front->getDefaultAction(); } */ // [START] Modified by webligo developments $myParams = $this->_params; $route = $front->getRouter()->getRoute($this->_route); $defParams = $route ? $route->getDefaults() : array(); if (null !== $this->_module) { $myParams['module'] = $this->_module; } else { if (!empty($defParams['module'])) { $myParams['module'] = $defParams['module']; } else { $myParams['module'] = $front->getDefaultModule(); } } if (null !== $this->_controller) { $myParams['controller'] = $this->_controller; } else { if (!empty($defParams['controller'])) { $myParams['controller'] = $defParams['controller']; } else { $myParams['controller'] = $front->getDefaultControllerName(); } } if (null !== $this->_action) { $myParams['action'] = $this->_action; } else { if (!empty($defParams['modactionule'])) { $myParams['action'] = $defParams['action']; } else { $myParams['action'] = $front->getDefaultAction(); } } // [END] Modified by webligo developments if (count(array_intersect_assoc($reqParams, $myParams)) == count($myParams)) { $this->_active = true; return true; } } return parent::isActive($recursive); }
/** * Returns an HTML string containing an 'a' element for the given page if * the page's href is not empty, and a 'span' element if it is empty * * Overrides {@link Zend_View_Helper_Navigation_Abstract::htmlify()}. * * @param Zend_Navigation_Page $page page to generate HTML for * @return string HTML string for the given page */ public function htmlify(Zend_Navigation_Page $page, $endOfTree = false) { // get label and title for translating $label = $page->getLabel(); $title = $page->getTitle(); // translate label and title? if ($this->getUseTranslator() && ($t = $this->getTranslator())) { if (is_string($label) && !empty($label)) { $label = $t->translate($label); } if (is_string($title) && !empty($title)) { $title = $t->translate($title); } } $hasChilds = false; if (!$endOfTree) { foreach ($page->getPages() as $child) { if ($child->isVisible()) { $hasChilds = true; break; } } } $class = $page->getClass(); // get attribs for element $attribs = array('id' => $page->getId(), 'title' => $title, 'class' => $class); // does page have a href? if ($href = $page->getHref()) { $element = 'a'; $attribs['href'] = $href; $attribs['target'] = $page->getTarget(); $attribs['accesskey'] = $page->getAccessKey(); } else { $element = 'span'; } if ($page->icon !== null) { if ($page->isActive()) { $page->icon = 'icon-white ' . $page->icon; } } return '<' . $element . $this->_htmlAttribs($attribs) . '>' . ($page->icon !== null ? '<i class="' . $page->icon . '"></i> ' : '') . $this->view->escape($label) . '</' . $element . '>'; }