示例#1
0
 /**
  * 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 . '>';
 }
示例#2
0
文件: Mvc.php 项目: realfluid/umbaugh
    /**
     * 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);
    }
示例#3
0
文件: Mvc.php 项目: rdallasgray/zf
 /**
  * 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);
 }
示例#4
0
文件: Mvc.php 项目: robeendey/ce
 /**
  * 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 . '>';
 }