/** * @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 .= ' ›'; } $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; }
/** * */ 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); }