}
-# 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
return encode_options($values, $GLOBALS[$name . '_options']['options'], PULLDOWN_2D);
}
+# 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) {
if(!isset($GLOBALS[$name . '_options'])) {
die("pulldown('$name') must be called before this template can be run. See code/wfpl/encode.php");
}
$out = '';
- foreach($options as $valdisp) {
- list($value, $display) = $valdisp;
+ foreach($options as $option) {
+ list($value, $display, $arg3) = $option;
$out .= '<option';
- if(in_array($value, $selected)) {
- $out .= ' selected="selected"';
+ if($arg3 == 'disabled') {
+ $out .= ' disabled';
+ } elseif(in_array($value, $selected)) {
+ $out .= ' selected';
}
if($value !== $display || strpos($value, ' ') !== false) {
return 's';
}
+
+# turn http/ftp (s) urls into html links (and encode everything for html)
+# does not encode without protocol (eg "www.foo.com")
+# does not linkify email addresses
+function enc_linkify($str) {
+ $ret = '';
+ $even = true;
+ $pieces = preg_split("/((?:ht|f)tps?:\/\/[^ \,\"\n\r\t<]+)/is", $str, null, PREG_SPLIT_DELIM_CAPTURE);
+ foreach($pieces as $piece) {
+ if($even) {
+ $ret .= enc_html($piece);
+ } else {
+ $ret .= '<a href="' . enc_attr($piece) . '">' . enc_html($piece) . '</a>';
+ }
+ $even = !$even;
+ }
+ return $ret;
+}