smarty.addons.php
来自「通达OA2007SE源代码 非常好的」· PHP 代码 · 共 1,011 行 · 第 1/2 页
PHP
1,011 行
$selected = intval ((floor ((strftime ('%S', $time) / $second_interval)) * $second_interval));
($html_result .= '<select name=');
if ((null !== $field_array))
{
($html_result .= ((((('"'.$field_array).'[').$prefix).'Second]">').'
'));
}
else
{
($html_result .= ((('"'.$prefix).'Second">').'
'));
}
($html_result .= smarty_func_html_options (array ('output' => $seconds, 'values' => $seconds, 'selected' => $selected, 'print_result' => false)));
($html_result .= '</select>
');
}
if (($display_meridian AND !$use_24_hours))
{
($html_result .= '<select name=');
if ((null !== $field_array))
{
($html_result .= ((((('"'.$field_array).'[').$prefix).'Meridian]">').'
'));
}
else
{
($html_result .= ((('"'.$prefix).'Meridian">').'
'));
}
($html_result .= smarty_func_html_options (array ('output' => array ('AM', 'PM'), 'values' => array ('am', 'pm'), 'selected' => strtolower (strftime ('%p', $time)), 'print_result' => false)));
($html_result .= '</select>
');
}
print $html_result;
}
function smarty_func_math ($args, &$smarty_obj)
{
if (empty ($args['equation']))
{
$smarty_obj->_trigger_error_msg ('math: missing equation parameter');
return null;
}
$equation = $args['equation'];
if ((substr_count ($equation, '(') != substr_count ($equation, ')')))
{
$smarty_obj->_trigger_error_msg ('math: unbalanced parenthesis');
return null;
}
preg_match_all ('![a-zA-Z][a-zA-Z0-9]*!', $equation, $match);
$allowed_funcs = array ('int', 'abs', 'ceil', 'cos', 'exp', 'floor', 'log', 'log10', 'max', 'min', 'pi', 'pow', 'rand', 'round', 'sin', 'sqrt', 'srand', 'tan');
foreach ($match[0] as $curr_var)
{
if ((!in_array ($curr_var, array_keys ($args)) AND !in_array ($curr_var, $allowed_funcs)))
{
$smarty_obj->_trigger_error_msg ((((''.'math: parameter ').$curr_var).' not passed as argument'));
return null;
continue;
}
}
foreach ($args as $key => $val)
{
if (((($key != 'equation') AND ($key != 'format')) AND ($key != 'assign')))
{
if ((strlen ($val) == 0))
{
$smarty_obj->_trigger_error_msg ((((''.'math: parameter ').$key).' is empty'));
return null;
}
if (!is_numeric ($val))
{
$smarty_obj->_trigger_error_msg ((((''.'math: parameter ').$key).': is not numeric'));
return null;
}
$equation = preg_replace ((((''.'/\\b').$key).'\\b/'), $val, $equation);
continue;
}
}
eval ((('$smarty_math_result = '.$equation).';'));
if (empty ($args['format']))
{
if (empty ($args['assign']))
{
echo $smarty_math_result;
}
else
{
$smarty_obj->assign ($args['assign'], $smarty_math_result);
}
}
else
{
if (empty ($args['assign']))
{
printf ($args['format'], $smarty_math_result);
}
else
{
$smarty_obj->assign ($assign, sprintf ($args['format'], $smarty_math_result));
}
}
}
function smarty_func_fetch ($args, &$smarty_obj)
{
extract ($args);
if (empty ($file))
{
$smarty_obj->_trigger_error_msg ('parameter \'file\' cannot be empty');
return null;
}
if (($smarty_obj->security AND !preg_match ('!^(http|ftp)://!', $file)))
{
foreach ($smarty_obj->secure_dir as $curr_dir)
{
if ((substr (realpath ($file), 0, strlen (realpath ($curr_dir))) == realpath ($curr_dir)))
{
$resource_is_secure = true;
break;
}
}
if (!$resource_is_secure)
{
$smarty_obj->_trigger_error_msg ((((''.'(secure mode) fetch \'').$file).'\' is not allowed'));
return null;
}
if (!is_readable ($file))
{
$smarty_obj->_trigger_error_msg ((((''.'fetch cannot read file \'').$file).'\''));
return null;
}
}
if (!empty ($assign))
{
ob_start ();
readfile ($file);
$smarty_obj->assign ($assign, ob_get_contents ());
ob_end_clean ();
}
else
{
readfile ($file);
}
}
function smarty_mod_count_characters ($string, $include_spaces = false)
{
if ($include_spaces)
{
return strlen ($string);
}
return preg_match_all ('/[^\\s]/', $string, $match);
}
function smarty_mod_count_words ($string)
{
$split_array = preg_split ('/\\s+/', $string);
$word_count = preg_grep ('/[a-zA-Z0-9]/', $split_array);
return count ($word_count);
}
function smarty_mod_count_sentences ($string, $include_spaces = false)
{
return preg_match_all ('/[^\\s]\\.(?!\\w)/', $string, $match);
}
function smarty_mod_count_paragraphs ($string, $include_spaces = false)
{
return count (preg_split ('/[
]+/', $string));
}
function smarty_func_counter ($args, &$smarty_obj)
{
static $count = array ();
static $skipval = array ();
static $dir = array ();
static $id = 'default';
static $printval = array ();
static $assign = '';
extract ($args);
if (!isset ($id))
{
$id = 'default';
}
if (isset ($start))
{
$count[$id] = $start;
}
else
{
if (!isset ($count[$id]))
{
$count[$id] = 1;
}
}
if (!isset ($print))
{
$printval[$id] = true;
}
else
{
$printval[$id] = $print;
}
if (!empty ($assign))
{
$printval[$id] = false;
$smarty_obj->assign ($assign, $count[$id]);
}
if ($printval[$id])
{
echo $count[$id];
}
if (isset ($skip))
{
$skipval[$id] = $skip;
}
else
{
if (empty ($skipval[$id]))
{
$skipval[$id] = 1;
}
}
if (isset ($direction))
{
$dir[$id] = $direction;
}
else
{
if (!isset ($dir[$id]))
{
$dir[$id] = 'up';
}
}
if (($dir[$id] == 'down'))
{
($count[$id] -= $skipval[$id]);
}
else
{
($count[$id] += $skipval[$id]);
}
return true;
}
function smarty_func_assign_debug_info ($args, &$smarty_obj)
{
$assigned_vars = $smarty_obj->_tpl_vars;
ksort ($assigned_vars);
if (is_array ($smarty_obj->_config[0]))
{
$config_vars = $smarty_obj->_config[0];
ksort ($config_vars);
$smarty_obj->assign ('_debug_config_keys', array_keys ($config_vars));
$smarty_obj->assign ('_debug_config_vals', array_values ($config_vars));
}
$included_templates = $smarty_obj->_smarty_debug_info;
$smarty_obj->assign ('_debug_keys', array_keys ($assigned_vars));
$smarty_obj->assign ('_debug_vals', array_values ($assigned_vars));
$smarty_obj->assign ('_debug_tpls', $included_templates);
return true;
}
function smarty_mod_debug_print_var ($var, $depth = 0, $length = 40)
{
if (is_array ($var))
{
$results = (('<b>Array ('.count ($var)).')</b>');
foreach ($var as $curr_key => $curr_val)
{
$return = smarty_mod_debug_print_var ($curr_val, ($depth + 1));
($results .= (('<br>\\r'.str_repeat (' ', ($depth * 2))).((((''.'<b>').$curr_key).'</b> => ').$return)));
}
return $results;
}
else
{
if (empty ($var))
{
return '<i>empty</i>';
}
if (($length < strlen ($var)))
{
$results = (substr ($var, 0, ($length - 3)).'...');
}
else
{
$results = $var;
}
$results = preg_replace ('![
]!', ' ', $results);
$results = htmlspecialchars (htmlspecialchars ($results));
return $results;
}
}
function smarty_func_overlib_init ($args, &$smarty_obj)
{
echo '<DIV ID="overDiv" STYLE="position:absolute; visibility:hidden; z-index:1000;"></DIV>
<SCRIPT LANGUAGE=javascript>
<!--
';
readfile ((SMARTY_DIR.'overlib.js'), 1);
echo '// -->
</SCRIPT>
';
return null;
}
function smarty_func_overlib ($args, &$smarty_obj)
{
extract ($args);
if (empty ($text))
{
$smarty_obj->_trigger_error_msg ('overlib: attribute \'text\' required');
return false;
}
if (empty ($trigger))
{
$trigger = 'onMouseOver';
}
echo ((($trigger.'="return overlib(\'').str_replace ('\'', '\\\'', $text)).'\'');
if ($sticky)
{
echo ',STICKY';
}
if (!empty ($caption))
{
echo ((',CAPTION,\''.str_replace ('\'', '\\\'', $caption)).'\'');
}
if (!empty ($fgcolor))
{
echo (((''.',FGCOLOR,\'').$fgcolor).'\'');
}
if (!empty ($bgcolor))
{
echo (((''.',BGCOLOR,\'').$bgcolor).'\'');
}
if (!empty ($textcolor))
{
echo (((''.',TEXTCOLOR,\'').$textcolor).'\'');
}
if (!empty ($capcolor))
{
echo (((''.',CAPCOLOR,\'').$capcolor).'\'');
}
if (!empty ($closecolor))
{
echo (((''.',CLOSECOLOR,\'').$closecolor).'\'');
}
if (!empty ($textfont))
{
echo (((''.',TEXTFONT,\'').$textfont).'\'');
}
if (!empty ($captionfont))
{
echo (((''.',CAPTIONFONT,\'').$captionfont).'\'');
}
if (!empty ($closefont))
{
echo (((''.',CLOSEFONT,\'').$closefont).'\'');
}
if (!empty ($textsize))
{
echo (((''.',TEXTSIZE,\'').$textsize).'\'');
}
if (!empty ($captionsize))
{
echo (((''.',CAPTIONSIZE,\'').$captionsize).'\'');
}
if (!empty ($closesize))
{
echo (((''.',CLOSESIZE,\'').$closesize).'\'');
}
if (!empty ($width))
{
echo (((''.',WIDTH,\'').$width).'\'');
}
if (!empty ($height))
{
echo (((''.',HEIGHT,\'').$height).'\'');
}
if (!empty ($left))
{
echo ',LEFT';
}
if (!empty ($right))
{
echo ',RIGHT';
}
if (!empty ($center))
{
echo ',CENTER';
}
if (!empty ($above))
{
echo ',ABOVE';
}
if (!empty ($below))
{
echo ',BELOW';
}
if (!empty ($border))
{
echo (((''.',BORDER,\'').$border).'\'');
}
if (!empty ($offsetx))
{
echo (((''.',OFFSETX,\'').$offsetx).'\'');
}
if (!empty ($offsety))
{
echo (((''.',OFFSETY,\'').$offsetxy).'\'');
}
if (!empty ($fgbackground))
{
echo (((''.',FGBACKGROUND,\'').$fgbackground).'\'');
}
if (!empty ($bgbackground))
{
echo (((''.',BGBACKGROUND,\'').$bgbackground).'\'');
}
if (!empty ($closetext))
{
echo ((',CLOSETEXT,\''.str_replace ('\'', '\\\'', $closetext)).'\'');
}
if (!empty ($noclose))
{
echo ',NOCLOSE';
}
if (!empty ($status))
{
echo ((',STATUS,\''.str_replace ('\'', '\\\'', $status)).'\'');
}
if (!empty ($autostatus))
{
echo ',AUTOSTATUS';
}
if (!empty ($autostatuscap))
{
echo ',AUTOSTATUSCAP';
}
if (!empty ($inarray))
{
echo (((''.',INARRAY,\'').$inarray).'\'');
}
if (!empty ($caparray))
{
echo (((''.',CAPARRAY,\'').$caparray).'\'');
}
if (!empty ($capicaon))
{
echo (((''.',CAPICON,\'').$capicon).'\'');
}
if (!empty ($snapx))
{
echo (((''.',SNAPX,\'').$snapx).'\'');
}
if (!empty ($snapy))
{
echo (((''.',SNAPY,\'').$snapy).'\'');
}
if (!empty ($fixx))
{
echo (((''.',FIXX,\'').$fixx).'\'');
}
if (!empty ($fixy))
{
echo (((''.',FIXY,\'').$fixy).'\'');
}
if (!empty ($background))
{
echo (((''.',BACKGROUND,\'').$background).'\'');
}
if (!empty ($padx))
{
echo (((''.',PADX,\'').$padx).'\'');
}
if (!empty ($pady))
{
echo (((''.',PADY,\'').$pady).'\'');
}
if (!empty ($fullhtml))
{
echo ',FULLHTML';
}
if (!empty ($frame))
{
echo (((''.',FRAME,\'').$frame).'\'');
}
if (!empty ($timeout))
{
echo (((''.',TIMEOUT,\'').$timeout).'\'');
}
if (!empty ($function))
{
echo (((''.',FUNCTION,\'').$function).'\'');
}
if (!empty ($delay))
{
echo (((''.',DELAY,\'').$delay).'\'');
}
if (!empty ($hauto))
{
echo ',HAUTO';
}
if (!empty ($vauto))
{
echo ',VAUTO';
}
echo ');" onMouseOut="nd();"';
return null;
}
?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?