loadPlugin('smarty_function_query'); if (is_array($params)) { if (! isset($content)) { $content = ''; } if (! isset($params['_ajax'])) { $params['_ajax'] = 'y'; } if (! isset($params['_script'])) { $params['_script'] = ''; } if (! isset($params['_tag'])) { $params['_tag'] = 'y'; } if (! empty($params['_anchor'])) { $anchor = $params['_anchor']; } else { $anchor = ''; } if (empty($params['_disabled'])) { if (! isset($params['_sort_arg'])) { $params['_sort_arg'] = 'sort'; } if (! isset($params['_sort_field'])) { $params['_sort_field'] = ''; } elseif ($params['_sort_arg'] != '' and ! isset($params[$params['_sort_arg']])) { if (preg_match('/(_nasc|_ndesc)$/', $params['_sort_field'])) { $params['_sort_field'] = preg_replace('/(_nasc|_ndesc)$/', '', $params['_sort_field']); $params[$params['_sort_arg']] = $params['_sort_field'] . '_nasc,' . $params['_sort_field'] . '_ndesc'; } else { $params[$params['_sort_arg']] = $params['_sort_field'] . '_asc,' . $params['_sort_field'] . '_desc'; } } // Complete _script path if needed (not empty, not an anchor, ...) if (! empty($params['_script']) && $params['_script'][0] != '#' && $params['_script'] != 'javascript:void(0)' && stripos($params['_script'], 'mailto:') !== 0) { if ($_SERVER['PHP_SELF'][0] == '/' && strpos($params['_script'], '/') === false) { $self_dir = str_replace('\\', '/', dirname($_SERVER['PHP_SELF'])); $params['_script'] = ( $self_dir == '/' ? '' : $self_dir ) . '/' . $params['_script']; } if ($params['_script'] == $_SERVER['PHP_SELF']) { $params['_script'] = ''; } } $dataAttributes = ''; if (! empty($params['data'])) { parse_str($params['data'], $attrs); foreach ($attrs as $attr => $value) { $dataAttributes .= " data-$attr=\"$value\""; } } unset($params['data']); $params['_type'] = $default_type; $ret = smarty_function_query($params, $smarty); } if ($params['_tag'] == 'y') { if (empty($params['_disabled'])) { if ($params['_ajax'] === 'y' && $params['_script'] === '') { $smarty->loadPlugin('smarty_block_ajax_href'); if (! isset($params['_htmlelement'])) { $params['_htmlelement'] = 'role_main'; } if (! isset($params['_onclick'])) { $params['_onclick'] = ''; } if (! isset($params['_template'])) { $params['_template'] = basename($_SERVER['PHP_SELF'], '.php') . '.tpl'; if ($params['_template'] == 'tiki-index.tpl') { $params['_template'] = 'tiki-show_page.tpl'; } } if (! file_exists('templates/' . $params['_template']) || $params['_template'] == 'noauto') { $params['_htmlelement'] = ''; $params['_template'] = ''; } $ret = smarty_block_ajax_href( [ 'template' => $params['_template'], 'htmlelement' => $params['_htmlelement'], '_onclick' => $params['_onclick'], '_anchor' => $anchor ], $ret, $smarty, $tmp = false ); unset($params['_onclick']); // Prevent addition to $link later } else { $ret = 'href="' . $ret . '"'; } } if (isset($params['_icon']) || isset($params['_icon_name'])) { if ( ! isset($params['_title']) && $content != '' && (! isset($params['_rel']) || strpos($params['_rel'], 'box') === false) ) { $params['_title'] = $content; } $smarty->loadPlugin('smarty_function_icon'); if (isset($params['_icon'])) { $icon_params['_id'] = $params['_icon']; } else { $icon_params['name'] = $params['_icon_name']; } $icon_params['_type'] = $default_icon_type; if (isset($params['_alt'])) { $icon_params['alt'] = $params['_alt']; } elseif (isset($params['_title'])) { $icon_params['alt'] = $params['_title']; $icon_params['title'] = ''; // will already be included in the surrounding A tag } if (isset($params['_menu_text']) && $params['_menu_text'] == 'y') { $icon_params['_menu_text'] = $params['_menu_text']; $icon_params['title'] = $params['_title']; // Used as the menu text $params['_title'] = ''; // will already be displayed as the menu text } if (isset($params['_menu_icon'])) { $icon_params['_menu_icon'] = $params['_menu_icon']; } if (isset($params['_icon_class'])) { $icon_params['class'] = $params['_icon_class']; } if (isset($params['_icon_size'])) { $icon_params['size'] = $params['_icon_size']; } if (isset($params['_width'])) { $icon_params['width'] = $params['_width']; } if (isset($params['_height'])) { $icon_params['height'] = $params['_height']; } $content = smarty_function_icon($icon_params, $smarty); if (isset($params['_text'])) { $content .= ' ' . $params['_text']; } } $link = ( ! empty($params['_class']) ? 'class="' . $params['_class'] . '" ' : '' ) . ( ! empty($params['_style']) ? 'style="' . $params['_style'] . '" ' : '' ) . ( ! empty($params['_title']) ? 'title="' . str_replace('"', '\"', $params['_title']) . '" ' : '' ) . $dataAttributes; if (! empty($params['_rel'])) { if (strpos($params['_rel'], 'box') !== false) { $rel = 'data-box="box" '; } else { $rel = 'rel="' . str_replace('"', '\"', $params['_rel']) . '" '; } } else { $rel = ''; } $link .= $rel; foreach ($params as $k => $v) { if (strlen($k) > 3 && substr($k, 0, 3) == '_on' && ! empty($v)) { $link .= htmlentities(substr($k, 1)) . '="' . $v . '" '; // $v should be already htmlentitized in the template unset($params[$k]); } } $link .= $ret; if (isset($params['_confirm'])) { $link .= ' data-confirm="' . smarty_modifier_escape($params['_confirm']) . '"'; } $ret = "" . $content . ''; if (! empty($params['_sort_field'])) { $smarty->loadPlugin('smarty_function_show_sort'); $ret = "" . $content . smarty_function_show_sort( ['sort' => $params['_sort_arg'], 'var' => $params['_sort_field']], $smarty ) . ''; } } } else { $params = ['_type' => $default_type]; $ret = smarty_function_query($params, $smarty); } return $ret; }