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;
}