/**
  * @param array $pa_options Supported options are
  *		asHTML = if set, URL is returned as a simple HTML link with target set to _url_details (deprecated)
  *		returnAsLink = if set, URL is returned as a link formatted according to settings in the other returnAsLink* options described below
  *		returnAsLinkText = text to use a content of HTML link. If omitted the url itself is used as the link content.
  *		returnAsLinkAttributes = array of attributes to include in link <a> tag. Use this to set class, alt and any other link attributes.
  *		
  * @return string The url or link HTML
  */
 public function getDisplayValue($pa_options = null)
 {
     if (isset($pa_options['asHTML']) && $pa_options['asHTML']) {
         return caHTMLLink($this->ops_text_value, array('href' => $this->ops_text_value, 'target' => '_url_details'));
     }
     $vs_return_as_link = isset($pa_options['returnAsLink']) ? (bool) $pa_options['returnAsLink'] : false;
     if ($vs_return_as_link) {
         $vs_return_as_link_text = isset($pa_options['returnAsLinkText']) ? (string) $pa_options['returnAsLinkText'] : '';
         $va_return_as_link_attributes = isset($pa_options['returnAsLinkAttributes']) && is_array($pa_options['returnAsLinkAttributes']) ? $pa_options['returnAsLinkAttributes'] : array();
         $va_return_as_link_attributes['href'] = $this->ops_text_value;
         if (!$vs_return_as_link_text) {
             $vs_return_as_link_text = $this->ops_text_value;
         }
         return caHTMLLink($vs_return_as_link_text, $va_return_as_link_attributes);
     }
     return $this->ops_text_value;
 }
 private function _genMenuItem(&$pa_iteminfo, $ps_key, $ps_base_path, $ps_cur_selection, $ps_css_id = '', $pa_options = null, $pa_attributes = null)
 {
     $vs_buf = '';
     if (!is_array($pa_options)) {
         $pa_options = array();
     }
     if (!isset($pa_options['has_children'])) {
         $pa_options['has_children'] = false;
     }
     if (!is_array($pa_attributes)) {
         $pa_attributes = array();
     }
     $pa_attributes['id'] = $ps_css_id;
     $vb_no_access = false;
     if (!($vb_disabled = isset($pa_iteminfo['disabled']) && $pa_iteminfo['disabled'] ? true : false)) {
         if (is_array($va_requirements = $pa_iteminfo['requires'])) {
             // DOES THIS USER HAVE PRIVS FOR THIS MENU ITEM?
             if (!$this->_evaluateRequirements($va_requirements)) {
                 $vb_disabled = $vb_no_access = true;
             }
         }
     }
     $va_defaults = $pa_iteminfo['default'];
     if (!($vs_display_name = $pa_iteminfo['displayName'])) {
         $vs_display_name = $ps_key;
     }
     if ($pa_options['has_children']) {
         $vs_display_name .= ' &rsaquo;';
     }
     $va_additional_params = $this->_parseAdditionalParameters(isset($pa_iteminfo['parameters']) ? $pa_iteminfo['parameters'] : null);
     if ($vb_disabled) {
         if (!($vb_no_access && (isset($pa_iteminfo['hideIfNoAccess']) && $pa_iteminfo['hideIfNoAccess']))) {
             $vs_buf .= caHTMLLink($vs_display_name, array('href' => '#', 'class' => $ps_cur_selection == $ps_base_path . '/' . $ps_key ? 'sf-menu-disabled-selected' : 'sf-menu-disabled', 'title' => _t('Disabled')));
         }
     } else {
         if ($this->opo_request->getParameter('rel', pInteger)) {
             // if rel parameter is set, keep it
             $va_additional_params['rel'] = true;
         }
         $vs_buf .= caNavLink($this->opo_request, $vs_display_name, $ps_cur_selection == $ps_base_path . '/' . $ps_key ? 'sf-menu-selected' : '', $va_defaults['module'], $va_defaults['controller'], $va_defaults['action'], $va_additional_params, $pa_attributes) . "\n";
         if (is_array($pa_iteminfo['typeRestrictions']) && $pa_iteminfo['typeRestrictions']) {
             TooltipManager::add("#" . $pa_attributes['id'], sizeof($pa_iteminfo['typeRestrictions']) == 1 ? _t("For type <em>%1</em>", join(", ", $pa_iteminfo['typeRestrictions'])) : _t("For types <em>%1</em>", join(", ", $pa_iteminfo['typeRestrictions'])));
         }
         if ($ps_cur_selection == $ps_base_path . '/' . $ps_key) {
             if (!is_array($va_nav_defaults = $this->opo_request->session->getVar('ca_app_nav_defaults'))) {
                 $va_nav_defaults = array();
             }
             $va_nav_defaults[$ps_base_path] = $ps_key;
             $this->opo_request->session->setVar('ca_app_nav_defaults', $va_nav_defaults);
         }
     }
     return $vs_buf;
 }
Example #3
0
 /**
  *
  */
 private function _getAttributeAsHTMLLink($ps_val, $ps_field, $pa_attributes = array(), $pa_options = null)
 {
     if (!is_array($pa_attributes)) {
         $pa_attributes = array();
     }
     $vs_return_as_link_class = isset($pa_options['returnAsLinkClass']) ? (string) $pa_options['returnAsLinkClass'] : '';
     $vs_return_as_link_get_text_from = isset($pa_options['returnAsLinkGetTextFrom']) ? (string) $pa_options['returnAsLinkGetTextFrom'] : '';
     $vs_val = $va_subvalues[$vn_attribute_id];
     $va_tmp = explode(".", $ps_field);
     array_pop($va_tmp);
     $vs_link_text = $vs_return_as_link_get_text_from ? $this->get(join(".", $va_tmp) . ".{$vs_return_as_link_get_text_from}") : $ps_val;
     $va_link_attr = $pa_attributes;
     $va_link_attr['href'] = $ps_val;
     if ($vs_return_as_link_class) {
         $va_link_attr['class'] = $vs_return_as_link_class;
     }
     return caHTMLLink($vs_link_text, $va_link_attr);
 }