📄 smarty.addons.php
字号:
<?php
function smarty_mod_escape( $string, $esc_type = "html" )
{
switch ( $esc_type )
{
case "html" :
return htmlspecialchars( $string, ENT_QUOTES );
case "url" :
return urlencode( $string );
case "quotes" :
return preg_replace( "%(?<!\\\\)'%", "\\'", $string );
default :
return $string;
}
}
function smarty_mod_truncate( $string, $length = 80, $etc = "...", $break_words = false )
{
if ( $length == 0 )
{
return "";
}
if ( $length < strlen( $string ) )
{
$length -= strlen( $etc );
$fragment = substr( $string, 0, $length + 1 );
if ( $break_words )
{
$fragment = substr( $fragment, 0, -1 );
}
else
{
$fragment = preg_replace( "/\\s+(\\S+)?\$/", "", $fragment );
}
return $fragment.$etc;
}
else
{
return $string;
}
}
function smarty_mod_spacify( $string, $spacify_char = " " )
{
return implode( $spacify_char, preg_split( "//", $string, -1, PREG_SPLIT_NO_EMPTY ) );
}
function smarty_mod_date_format( $string, $format = "%b %e, %Y" )
{
return strftime( $format, smarty_make_timestamp( $string ) );
}
function smarty_make_timestamp( $string )
{
if ( empty( $string ) )
{
$string = "now";
}
$time = strtotime( $string );
if ( is_numeric( $time ) && $time != -1 )
{
return $time;
}
if ( is_numeric( $string ) && strlen( $string ) == 14 )
{
$time = mktime( substr( $string, 8, 2 ), substr( $string, 10, 2 ), substr( $string, 12, 2 ), substr( $string, 4, 2 ), substr( $string, 6, 2 ), substr( $string, 0, 4 ) );
return $time;
}
return $string;
}
function smarty_mod_string_format( $string, $format )
{
return sprintf( $format, $string );
}
function smarty_mod_replace( $string, $search, $replace )
{
return str_replace( $search, $replace, $string );
}
function smarty_mod_regex_replace( $string, $search, $replace )
{
return preg_replace( $search, $replace, $string );
}
function smarty_mod_strip_tags( $string, $replace_with_space = true )
{
if ( $replace_with_space )
{
return preg_replace( "!<[^>]*?>!", " ", $string );
}
else
{
return strip_tags( $string );
}
}
function smarty_mod_default( $string, $default = "" )
{
if ( empty( $string ) )
{
return $default;
}
else
{
return $string;
}
}
function smarty_func_um_welcome_message( $args, &$smarty_obj )
{
extract( $args );
$config_vars = $smarty_obj->_config[0]['vars'];
$array_keys = array_keys( $args );
if ( empty( $var ) )
{
$smarty_obj->_trigger_error_msg( "um_welcome_message: missing 'var' parameter" );
}
else if ( !in_array( "messages", $array_keys ) )
{
$smarty_obj->_trigger_error_msg( "um_welcome_message: missing 'messages' parameter" );
}
else if ( !in_array( "unread", $array_keys ) )
{
$smarty_obj->_trigger_error_msg( "um_welcome_message: missing 'unread' parameter" );
}
else if ( !in_array( "var", $array_keys ) )
{
$smarty_obj->_trigger_error_msg( "um_welcome_message: missing 'var' parameter" );
}
else if ( !in_array( "boxname", $array_keys ) )
{
$smarty_obj->_trigger_error_msg( "um_welcome_message: missing 'boxname' parameter" );
}
else
{
$wlcmessage = $config_vars['msg_you_have']." <b>{$messages}</b> ";
if ( $messages == 1 )
{
$wlcmessage .= $config_vars['msg_message'].", ";
}
else
{
$wlcmessage .= $config_vars['msg_messages'].", ";
}
if ( $unread == 0 )
{
$wlcmessage .= $config_vars['msg_none_unread']." ";
}
else if ( $unread == 1 )
{
$wlcmessage .= "<b>{$unread}</b> ".$config_vars['msg_one_unread']." ";
}
else
{
$wlcmessage .= "<b>{$unread}</b> ".$config_vars['msg_more_unread']." ";
}
$wlcmessage .= $config_vars['msg_in_the_folder']." <b>{$boxname}</b>";
$smarty_obj->assign( $var, $wlcmessage );
return true;
}
}
function smarty_func_um_translatebox( $args, &$smarty_obj )
{
extract( $args );
$config_vars = $smarty_obj->_config[0]['vars'];
if ( empty( $var ) )
{
$smarty_obj->_trigger_error_msg( "um_translatebox: missing 'var' parameter" );
}
else if ( !in_array( "value", array_keys( $args ) ) )
{
$smarty_obj->_trigger_error_msg( "um_translatebox: missing 'value' parameter" );
}
else
{
switch ( strtolower( $value ) )
{
case "inbox" :
$value = $config_vars['inbox_extended'];
break;
case "sent" :
$value = $config_vars['sent_extended'];
break;
case "trash" :
$value = $config_vars['trash_extended'];
}
$smarty_obj->assign( $var, $value );
return true;
}
}
function smarty_func_assign( $args, &$smarty_obj )
{
extract( $args );
if ( empty( $var ) )
{
$smarty_obj->_trigger_error_msg( "assign: missing 'var' parameter" );
}
else if ( !in_array( "value", array_keys( $args ) ) )
{
$smarty_obj->_trigger_error_msg( "assign: missing 'value' parameter" );
}
else
{
$smarty_obj->assign( $var, $value );
return true;
}
}
function smarty_func_html_options( )
{
$print_result = true;
extract( func_get_arg( 0 ) );
$html_result = "";
settype( $selected, "array" );
if ( isset( $options ) )
{
settype( $options, "array" );
foreach ( $options as $key => $value )
{
$html_result .= "<option value=\"{$key}\"";
if ( in_array( $key, $selected ) )
{
$html_result .= " selected=\"selected\"";
}
$html_result .= ">{$value}</option>\n";
}
}
else
{
settype( $output, "array" );
settype( $values, "array" );
$i = 0;
for ( ; $i < count( $output ); ++$i )
{
$sel_check = $values[$i];
$html_result .= "<option";
if ( $i < count( $values ) )
{
$html_result .= " value=\"".$values[$i]."\"";
}
else
{
$sel_check = $output[$i];
}
if ( in_array( $sel_check, $selected ) )
{
$html_result .= " selected";
}
$html_result .= ">".$output[$i]."</option>\n";
}
}
if ( $print_result )
{
print $html_result;
}
else
{
return $html_result;
}
}
function smarty_func_html_select_date( )
{
$prefix = "Date_";
$time = time( );
$start_year = strftime( "%Y" );
$end_year = $start_year;
$display_days = true;
$display_months = true;
$display_years = true;
$month_format = "%B";
$day_format = "%02d";
$year_as_text = false;
$reverse_years = false;
$field_array = null;
$day_size = null;
$month_size = null;
$year_size = null;
$all_extra = null;
$day_extra = null;
$month_extra = null;
$year_extra = null;
$field_order = "MDY";
$field_separator = "\n";
extract( func_get_arg( 0 ) );
$time = smarty_make_timestamp( $time );
$field_order = strtoupper( $field_order );
$html_result = $month_result = $day_result = $year_result = "";
if ( $display_months )
{
$month_names = array( );
$i = 1;
for ( ; $i <= 12; ++$i )
{
$month_names[] = strftime( $month_format, mktime( 0, 0, 0, $i, 1, 2000 ) );
}
$month_result .= "<select name=";
if ( null !== $field_array )
{
$month_result .= "\"".$field_array."[".$prefix."Month]\"";
}
else
{
$month_result .= "\"".$prefix."Month\"";
}
if ( null !== $month_size )
{
$month_result .= " size=\"".$month_size."\"";
}
if ( null !== $month_extra )
{
$month_result .= " ".$month_extra;
}
if ( null !== $all_extra )
{
$month_result .= " ".$all_extra;
}
$month_result .= ">\n";
$month_result .= smarty_func_html_options( array(
"output" => $month_names,
"values" => range( 1, 12 ),
"selected" => strftime( "%m", $time ),
"print_result" => false
) );
$month_result .= "</select>";
}
if ( $display_days )
{
$days = range( 1, 31 );
$i = 0;
for ( ; $i < count( $days ); ++$i )
{
$days[$i] = sprintf( $day_format, $days[$i] );
}
$day_result .= "<select name=";
if ( null !== $field_array )
{
$day_result .= "\"".$field_array."[".$prefix."Day]\"";
}
else
{
$day_result .= "\"".$prefix."Day\"";
}
if ( null !== $day_size )
{
$day_result .= " size=\"".$day_size."\"";
}
if ( null !== $all_extra )
{
$day_result .= " ".$all_extra;
}
if ( null !== $day_extra )
{
$day_result .= " ".$day_extra;
}
$day_result .= ">\n";
$day_result .= smarty_func_html_options( array(
"output" => $days,
"values" => range( 1, 31 ),
"selected" => strftime( "%d", $time ),
"print_result" => false
) );
$day_result .= "</select>";
}
if ( $display_years )
{
if ( null !== $field_array )
{
$year_name = $field_array."[".$prefix."Year]";
}
else
{
$year_name = $prefix."Year";
}
if ( $year_as_text )
{
$year_result .= "<input type=\"text\" name=\"".$year_name."\" value=\"".strftime( "%Y", $time )."\" size=\"4\" maxlength=\"4\"";
if ( null !== $all_extra )
{
$year_result .= " ".$all_extra;
}
if ( null !== $year_extra )
{
$year_result .= " ".$year_extra;
}
$year_result .= ">";
}
else
{
$years = range( ( integer )$start_year, ( integer )$end_year );
if ( $reverse_years )
{
rsort( $years, SORT_NUMERIC );
}
$year_result .= "<select name=\"".$year_name."\"";
if ( null !== $year_size )
{
$year_result .= " size=\"".$year_size."\"";
}
if ( null !== $all_extra )
{
$year_result .= " ".$all_extra;
}
if ( null !== $year_extra )
{
$year_result .= " ".$year_extra;
}
$year_result .= ">\n";
$year_result .= smarty_func_html_options( array(
"output" => $years,
"values" => $years,
"selected" => strftime( "%Y", $time ),
"print_result" => false
) );
$year_result .= "</select>";
}
}
$i = 0;
for ( ; $i <= 2; ++$i )
{
$c = substr( $field_order, $i, 1 );
switch ( $c )
{
case "D" :
$html_result .= $day_result;
break;
case "M" :
$html_result .= $month_result;
break;
case "Y" :
$html_result .= $year_result;
}
$html_result .= $field_separator;
}
print $html_result;
}
function smarty_func_html_select_time( )
{
$prefix = "Time_";
$time = time( );
$display_hours = true;
$display_minutes = true;
$display_seconds = true;
$display_meridian = true;
$use_24_hours = true;
$minute_interval = 1;
$second_interval = 1;
$field_array = null;
extract( func_get_arg( 0 ) );
$time = smarty_make_timestamp( $time );
$html_result = "";
if ( $display_hours )
{
$hours = $use_24_hours ? range( 0, 23 ) : range( 1, 12 );
$hour_fmt = $use_24_hours ? "%H" : "%I";
$i = 0;
for ( ; $i < count( $hours ); ++$i )
{
$hours[$i] = sprintf( "%02d", $hours[$i] );
}
$html_result .= "<select name=";
if ( null !== $field_array )
{
$html_result .= "\"".$field_array."[".$prefix."Hour]\">"."\n";
}
else
{
$html_result .= "\"".$prefix."Hour\">"."\n";
}
$html_result .= smarty_func_html_options( array(
"output" => $hours,
"values" => $hours,
"selected" => strftime( $hour_fmt, $time ),
"print_result" => false
) );
$html_result .= "</select>\n";
}
if ( $display_minutes )
{
$all_minutes = range( 0, 59 );
$i = 0;
for ( ; $i < count( $all_minutes ); $i += $minute_interval )
{
$minutes[] = sprintf( "%02d", $all_minutes[$i] );
}
$selected = intval( floor( strftime( "%M", $time ) / $minute_interval ) * $minute_interval );
$html_result .= "<select name=";
if ( null !== $field_array )
{
$html_result .= "\"".$field_array."[".$prefix."Minute]\">"."\n";
}
else
{
$html_result .= "\"".$prefix."Minute\">"."\n";
}
$html_result .= smarty_func_html_options( array(
"output" => $minutes,
"values" => $minutes,
"selected" => $selected,
"print_result" => false
) );
$html_result .= "</select>\n";
}
if ( $display_seconds )
{
$all_seconds = range( 0, 59 );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -