function smarty_function_mtcommentreplytolink($args, &$ctx) { $comment = $ctx->stash('comment'); if (!$comment) { return ''; } global $mt; $label = $args['label']; $label or $label = $args['text']; $label or $label = $mt->translate("Reply"); $onclick = $args['onclick']; $onclick or $onclick = "mtReplyCommentOnClick(%d, '%s')"; $comment_author = $comment['comment_author']; require_once "MTUtil.php"; $comment_author = encode_html(encode_js($comment_author)); $onclick = sprintf($onclick, $comment['comment_id'], $comment_author); return sprintf("<a title=\"%s\" href=\"javascript:void(0);\" onclick=\"{$onclick}\">%s</a>", $label, $label); }
function smarty_function_mtcommentreplytolink($args, &$ctx) { $comment = $ctx->stash('comment'); if (!$comment) { return ''; } $mt = MT::get_instance(); $label = $args['label']; $label or $label = $args['text']; $label or $label = $mt->translate("Reply"); $onclick = $args['onclick']; $onclick or $onclick = "mtReplyCommentOnClick(%d, '%s')"; $comment_author = $comment->comment_author; if ($comment->comment_commenter_id) { $cmtr = $comment->commenter(); if (!empty($cmtr)) { $comment_author = $cmtr->nickname; } } require_once "MTUtil.php"; $comment_author = encode_html(encode_js($comment_author)); $onclick = sprintf($onclick, $comment->comment_id, $comment_author); return sprintf("<a title=\"%s\" href=\"javascript:void(0);\" onclick=\"{$onclick}\">%s</a>", $label, $label); }
function smarty_function_mtvar($args, &$ctx) { // status: complete // parameters: name if (array_key_exists('value', $args) && !array_key_exists('op', $args)) { require_once "function.mtsetvar.php"; return smarty_function_mtsetvar($args, $ctx); } require_once "MTUtil.php"; $vars =& $ctx->__stash['vars']; $value = ''; $name = $args['name']; $name or $name = $args['var']; if (preg_match('/^(config|request)\\.(.+)$/i', $name, $m)) { if (strtolower($m[1]) == 'config') { if (!preg_match('/password/i', $m[2])) { global $mt; return $mt->config[strtolower($m[2])]; } } elseif (strtolower($m[1]) == 'request') { return $_REQUEST[$m[2]]; } } if (!$name) { return ''; } if (preg_match('/^(\\w+)\\((.+)\\)$/', $name, $matches)) { $func = $matches[1]; $name = $matches[2]; } else { if (array_key_exists('function', $args)) { $func = $args['function']; } } # pick off any {...} or [...] from the name. if (preg_match('/^(.+)([\\[\\{])(.+)[\\]\\}]$/', $name, $matches)) { $name = $matches[1]; $br = $matches[2]; $ref = $matches[3]; if (preg_match('/^\\\\\\$(.+)/', $ref, $ref_matches)) { $ref = $vars[$ref_matches[1]]; if (!isset($ref)) { $ref = chr(0); } } $br == '[' ? $index = $ref : ($key = $ref); } else { if (array_key_exists('index', $args)) { $index = $args['index']; } else { if (array_key_exists('key', $args)) { $key = $args['key']; } } } if (preg_match('/^\\$/', $name)) { $name = $vars[$name]; if (!isset($name)) { return $ctx->error($ctx->mt->translate("You used a [_1] tag without a valid name attribute.", "<MT{$tag}>")); } } if (isset($vars[$name])) { $value = $vars[$name]; } if (!is_array($value) && preg_match('/^smarty_fun_[a-f0-9]+$/', $value)) { if (function_exists($value)) { ob_start(); $value($ctx, array()); $value = ob_get_contents(); ob_end_clean(); } else { $value = ''; } } $return_val = $value; if (isset($name)) { if (is_hash($value)) { if (isset($key)) { if (isset($func)) { if ('delete' == strtolower($func)) { $return_val = $value[$key]; unset($value[$key]); $vars[$name] = $value; } else { return $ctx->error($ctx->mt->translate("'[_1]' is not a valid function for a hash.", $func)); } } else { if ($key != chr(0)) { $return_val = $value[$key]; } else { unset($value); } } } elseif (isset($func)) { if ('count' == strtolower($func)) { $return_val = count(array_keys($value)); } else { return $ctx->error($ctx->mt->translate("'[_1]' is not a valid function for a hash.", $func)); } } else { if (array_key_exists('to_json', $args) && $args['to_json']) { if (function_exists('json_encode')) { $return_val = json_encode($value); } else { $return_val = ''; } } } } elseif (is_array($value)) { if (isset($index)) { if (is_numeric($index)) { $return_val = $value[$index]; } else { unset($value); # fall through to any 'default' } } elseif (isset($func)) { $func = strtolower($func); if ('pop' == $func) { $return_val = array_pop($value); $vars[$name] = $value; } elseif ('shift' == $func) { $return_val = array_shift($value); $vars[$name] = $value; } elseif ('count' == $func) { $return_val = count($value); } else { return $ctx->error($ctx->mt->translate("'[_1]' is not a valid function for an array.", $func)); } } else { if (array_key_exists('to_json', $args) && $args['to_json']) { if (function_exists('json_encode')) { $return_val = json_encode($value); } else { $return_val = ''; } } } } if (array_key_exists('op', $args)) { $op = $args['op']; $rvalue = $args['value']; if ($op && isset($value) && !is_array($value)) { $return_val = _math_operation($op, $value, $rvalue); if (!isset($return_val)) { return $ctx->error($ctx->mt->translate("[_1] [_2] [_3] is illegal.", $value, $op, $rvalue)); } } } } if ($return_val == '') { if (isset($args['default'])) { $return_val = $args['default']; } } if (isset($args['escape'])) { $esc = strtolower($args['escape']); if ($esc == 'js') { $return_val = encode_js($return_val); } elseif ($esc == 'html') { if (version_compare(phpversion(), '4.3.0', '>=')) { global $mt; $charset = $mt->config('PublishCharset'); $return_val = htmlentities($return_val, ENT_COMPAT, $charset); } else { $return_val = htmlentities($return_val, ENT_COMPAT); } } elseif ($esc == 'url') { $return_val = urlencode($return_val); $return_val = preg_replace('/\\+/', '%20', $return_val); } } return $return_val; }
function smarty_modifier_encode_js($text) { require_once "MTUtil.php"; return encode_js($text); }