function smarty_block_self_link($params, $content, $smarty, &$repeat = false) { $default_type = 'absolute_path'; $default_icon_type = 'relative'; if ($repeat) { return; } $smarty->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']])) { $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'] = ''; } } $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(array('template' => $params['_template'], 'htmlelement' => $params['_htmlelement'], '_onclick' => $params['_onclick'], '_anchor' => $anchor), $ret, $smarty, $tmp = false); } else { $ret = 'href="' . $ret . '"'; } } if (isset($params['_icon'])) { if (!isset($params['_title']) && $content != '') { $params['_title'] = $content; } $smarty->loadPlugin('smarty_function_icon'); $icon_params = array('_id' => $params['_icon'], '_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['_width'])) { $icon_params['width'] = $params['_width']; } if (isset($params['_height'])) { $icon_params['height'] = $params['_height']; } $content = smarty_function_icon($icon_params, $smarty); } $link = (!empty($params['_class']) ? 'class="' . $params['_class'] . '" ' : '') . (!empty($params['_style']) ? 'style="' . $params['_style'] . '" ' : '') . (!empty($params['_title']) ? 'title="' . str_replace('"', '\\"', $params['_title']) . '" ' : '') . (!empty($params['_rel']) ? 'rel="' . str_replace('"', '\\"', $params['_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 = "<a {$link}>" . $content . '</a>'; if (!empty($params['_sort_field'])) { $smarty->loadPlugin('smarty_function_show_sort'); $ret = "<a {$link} style='text-decoration:none;'>" . $content . smarty_function_show_sort(array('sort' => $params['_sort_arg'], 'var' => $params['_sort_field']), $smarty) . '</a>'; } } } else { $params = array('_type' => $default_type); $ret = smarty_function_query($params, $smarty); } return $ret; }
function smarty_block_self_link($params, $content, &$smarty, $repeat = false) { global $prefs; $default_type = 'absolute_path'; $default_icon_type = 'relative'; if ($repeat) { return; } require_once $smarty->_get_plugin_filepath('function', 'query'); if (is_array($params)) { if (!isset($content)) { $content = ''; } if (!isset($params['_ajax'])) { $params['_ajax'] = 'y'; } if (!isset($params['_tag'])) { $params['_tag'] = 'y'; } 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']])) { $params[$params['_sort_arg']] = $params['_sort_field'] . '_asc,' . $params['_sort_field'] . '_desc'; } // Complete _script path if needed if (isset($params['_script'])) { if ($params['_script'] != '' && $_SERVER['PHP_SELF'][0] == '/' && strpos($params['_script'], '/') === false) { $self_dir = dirname($_SERVER['PHP_SELF']); $params['_script'] = ($self_dir == '/' ? '' : $self_dir) . '/' . $params['_script']; } if ($params['_script'] == $_SERVER['PHP_SELF']) { $params['_script'] = ''; } } else { $params['_script'] = ''; } $params['_type'] = $default_type; $ret = smarty_function_query($params, $smarty); if ($params['_tag'] == 'y') { if ($params['_ajax'] == 'y' && $params['_script'] == '') { require_once $smarty->_get_plugin_filepath('block', 'ajax_href'); if (!isset($params['_htmlelement'])) { $params['_htmlelement'] = 'tiki-center'; } if (!isset($params['_template'])) { $params['_template'] = basename($_SERVER['PHP_SELF'], '.php') . '.tpl'; } if (!file_exists('templates/' . $params['_template']) || $params['_template'] == 'noauto') { $params['_htmlelement'] = ''; $params['_template'] = ''; } $ret = smarty_block_ajax_href(array('template' => $params['_template'], 'htmlelement' => $params['_htmlelement']), $ret, $smarty, false); } else { $ret = 'href="' . $ret . '"'; } if (isset($params['_icon'])) { if (!isset($params['_title']) && $content != '') { $params['_title'] = $content; } require_once $smarty->_get_plugin_filepath('function', 'icon'); $icon_params = array('_id' => $params['_icon'], '_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']; } $content = smarty_function_icon($icon_params, $smarty); } $link = (isset($params['_class']) && $params['_class'] != '' ? 'class="' . $params['_class'] . '" ' : '') . (isset($params['_title']) && $params['_title'] != '' ? 'title="' . str_replace('"', '\\"', $params['_title']) . '" ' : '') . $ret; $ret = "<a {$link}>" . $content . '</a>'; if ($params['_sort_field'] != '') { require_once $smarty->_get_plugin_filepath('function', 'show_sort'); $ret .= "<a {$link} style='text-decoration:none;'>" . smarty_function_show_sort(array('sort' => $params['_sort_arg'], 'var' => $params['_sort_field']), $smarty) . '</a>'; } } } else { $params = array('_type' => $default_type); $ret = smarty_function_query($params, $smarty); } return $ret; }