X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=encode.php;h=ca4a9191b39587f51296289ffeabb184bd6f732d;hb=eecd5e3576866afc8091abe9b74352130fd8e6cc;hp=6e57c36a0c9a39b0e7263f55c1525dc865e71a84;hpb=d3416270f26f08e34ff1748e1ee1fef7a15e79db;p=wfpl.git
diff --git a/encode.php b/encode.php
index 6e57c36..ca4a919 100644
--- a/encode.php
+++ b/encode.php
@@ -28,10 +28,18 @@ function enc_cap($str) {
return $str;
}
+# quote for placing between single quotes in php
+function enc_phpsq($str) {
+ $str = str_replace("\\", "\\\\", $str);
+ $str = str_replace("'", "\\'", $str);
+ return $str;
+}
+
function enc_jsdq($str) {
$str = enc_sql($str);
$str = str_replace("\n", "\\n", $str);
- return str_replace("\r", "\\r", $str);
+ $str = str_replace("\r", "\\r", $str);
+ return $str;
}
# encode for putting within double-quotes in SQL
@@ -61,13 +69,13 @@ function enc_htmlbr($str) {
}
# Encode for output in html. Preserves newlines and indentation by converting
-# newlines to
and spaces at the begining of lines to
+# newlines to
and spaces/tabs at the begining of lines to s
#
# Example:
~foo htmlbrtab~
function enc_htmlbrtab($str) { $str = enc_htmlbr($str); - $space_to_nbsp = create_function('$matches', 'return str_repeat(\' \', strlen($matches[0]) * 2);'); - $str = preg_replace_callback("|^ *|m", $space_to_nbsp, $str); + $whitespace_to_nbsp = create_function('$matches', '$count = 0; $chars = str_split($matches[0]); foreach ($chars as $c) { if ($c == " ") { $count += 2; } else if ($c == "\t") { $count += 8; } } return str_repeat(" ", $count);'); + $str = preg_replace_callback("|^[ \t]+|m", $whitespace_to_nbsp, $str); return $str; } @@ -138,24 +146,24 @@ function enc_yesno($str) { } -# add a tab at the begining of each non-empty line +# add a tab at the begining of each line function enc_tab($str) { - $lines = explode("\n", $str); - $out = ''; - foreach($lines as $line) { - if($line) { - $out .= "\t$line"; - } - $out .= "\n"; + if('' . $str === '') { + return ''; } - - # remove the extra newline added above - return substr($out, 0, -1); + return "\t" . implode("\n\t", explode("\n", $str)); } -function enc_upper($str) { +function enc_uppercase($str) { return strtoupper($str); } +function enc_upper($str) { # depricated + return enc_uppercase($str); +} + +function enc_lowercase($str) { + return strtolower($str); +} # pass date in the form 2008-05-23 # ercodes date as 05/23/2008 @@ -174,11 +182,16 @@ function enc_mdy($str) { return enc_mmddyyyy($str); } -function enc_mmddyyyyhhmm($seconds) { - return date('m/d/Y g:ia', (int)$seconds); +# pass unix timestamp or "2012-12-20 22:23:34" +function enc_mmddyyyyhhmm($str) { + if(is_numeric($str)) { + return date('m/d/Y g:ia', (int)$str); + } else { + return enc_mmddyyyy(substr($str, 0, 10)) . substr($str, 10, 6); + } } -# takes decimal +# takes decimal number of hours # returns hh:mm function enc_hhmm($str) { if(strlen($str) == 0) { @@ -190,7 +203,7 @@ function enc_hhmm($str) { return $str; } -# takes decimal +# takes decimal number of hours # returns hh:mm followed by "am" or "pm" with no space function enc_12hr($str) { if(strlen($str) == 0) { @@ -260,7 +273,22 @@ function enc_options($values, $name) { if($GLOBALS[$name . '_options']['multiple']) { # FIXME test this $values = explode(', ', $values); } - return encode_options($values, $GLOBALS[$name . '_options']['options'], PULLDOWN_2D); + return encode_options($values, $GLOBALS[$name . '_options']['options']); +} + +# for radios and pulldowns: +# pass posted value +# returns what the user sees in the pulldown or on the radio button caption +function enc_pulled($str, $name) { + if(!isset($GLOBALS[$name . '_options'])) { + die("pulldown('$name') must be called before this template can be run. See code/wfpl/encode.php"); + } + foreach($GLOBALS[$name . '_options']['options'] as &$kv) { + if($kv[0] == $str) { + return $kv[1]; + } + } + return $str; } function enc_radio_n($str, $name, $n) { @@ -317,23 +345,21 @@ function enc_radio_caption_7($str, $name) { return enc_radio_caption_n($str, $na # # selected: can be a string or (for multiple-selects) an array # -# options, keys_from: see documentation for pulldown() above -function encode_options($selected, $options, $keys_from) { +# options: see documentation for pulldown() above +function encode_options($selected, $options) { if(!is_array($selected)) { $selected = array($selected); } - if($keys_from != PULLDOWN_2D) { - $options = pulldown_options_to_2d($options, $keys_from); - } - $out = ''; - foreach($options as $valdisp) { - list($value, $display) = $valdisp; + foreach($options as $option) { + list($value, $display, $arg3) = $option; $out .= '