JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
clean up my urls
[wfpl.git] / encode.php
index e79dae2..9a9bdbc 100644 (file)
@@ -69,13 +69,13 @@ function enc_htmlbr($str) {
 }
 
 # Encode for output in html. Preserves newlines and indentation by converting
-# newlines to <br> and spaces at the begining of lines to &nbsp;&nbsp;
+# newlines to <br> and spaces/tabs at the begining of lines to &nbsp;s
 #
 # Example: <p>~foo htmlbrtab~</p>
 function enc_htmlbrtab($str) {
        $str = enc_htmlbr($str);
-       $space_to_nbsp = create_function('$matches', 'return str_repeat(\'&nbsp;\', 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("&nbsp;", $count);');
+       $str = preg_replace_callback("|^[ \t]+|m", $whitespace_to_nbsp, $str);
        return $str;
 }
 
@@ -268,12 +268,12 @@ function pulldown($name, $in_options, $multiple = false) {
 # output a bunch of <option> tags
 function enc_options($values, $name) {
        if(!isset($GLOBALS[$name . '_options'])) {
-               die("pulldown('$name') must be called before this template can be run. See code/wfpl/encode.php");
+               die("pulldown('$name') must be called before this template can be run. See wfpl/encode.php");
        }
        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:
@@ -281,7 +281,7 @@ function enc_options($values, $name) {
 # 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");
+               die("pulldown('$name') must be called before this template can be run. See wfpl/encode.php");
        }
        foreach($GLOBALS[$name . '_options']['options'] as &$kv) {
                if($kv[0] == $str) {
@@ -293,7 +293,7 @@ function enc_pulled($str, $name) {
 
 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");
+               die("pulldown('$name') must be called before this template can be run. See wfpl/encode.php");
        }
 
        if(!isset($GLOBALS[$name . '_options']['options'][$n])) {
@@ -320,7 +320,7 @@ function enc_radio_7($str, $name) { return enc_radio_n($str, $name, 7); }
 
 function enc_radio_caption_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");
+               die("pulldown('$name') must be called before this template can be run. See wfpl/encode.php");
        }
 
        if(!isset($GLOBALS[$name . '_options']['options'][$n])) {
@@ -345,16 +345,12 @@ 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 $option) {
                list($value, $display, $arg3) = $option;
@@ -382,22 +378,22 @@ function encode_options($selected, $options, $keys_from) {
        return $out;
 }
 
-$GLOBALS['wfpl_states_assoc'] = array("AL" => "Alabama", "AK" => "Alaska", "AZ" => "Arizona", "AR" => "Arkansas", "CA" => "California", "CO" => "Colorado", "CT" => "Connecticut", "DE" => "Delaware", "FL" => "Florida", "GA" => "Georgia", "HI" => "Hawaii", "ID" => "Idaho", "IL" => "Illinois", "IN" => "Indiana", "IA" => "Iowa", "KS" => "Kansas", "KY" => "Kentucky", "LA" => "Louisiana", "ME" => "Maine", "MD" => "Maryland", "MA" => "Massachusetts", "MI" => "Michigan", "MN" => "Minnesota", "MS" => "Mississippi", "MO" => "Missouri", "MT" => "Montana", "NE" => "Nebraska", "NV" => "Nevada", "NH" => "New Hampshire", "NJ" => "New Jersey", "NM" => "New Mexico", "NY" => "New York", "NC" => "North Carolina", "ND" => "North Dakota", "OH" => "Ohio", "OK" => "Oklahoma", "OR" => "Oregon", "PA" => "Pennsylvania", "RI" => "Rhode Island", "SC" => "South Carolina", "SD" => "South Dakota", "TN" => "Tennessee", "TX" => "Texas", "UT" => "Utah", "VT" => "Vermont", "VA" => "Virginia", "WA" => "Washington", "DC" => "Washington, DC", "WV" => "West Virginia", "WI" => "Wisconsin", "WY" => "Wyoming");
+$GLOBALS['wfpl_states_assoc'] = array(array("AL", "Alabama"), array("AK", "Alaska"), array("AZ", "Arizona"), array("AR", "Arkansas"), array("CA", "California"), array("CO", "Colorado"), array("CT", "Connecticut"), array("DE", "Delaware"), array("FL", "Florida"), array("GA", "Georgia"), array("HI", "Hawaii"), array("ID", "Idaho"), array("IL", "Illinois"), array("IN", "Indiana"), array("IA", "Iowa"), array("KS", "Kansas"), array("KY", "Kentucky"), array("LA", "Louisiana"), array("ME", "Maine"), array("MD", "Maryland"), array("MA", "Massachusetts"), array("MI", "Michigan"), array("MN", "Minnesota"), array("MS", "Mississippi"), array("MO", "Missouri"), array("MT", "Montana"), array("NE", "Nebraska"), array("NV", "Nevada"), array("NH", "New Hampshire"), array("NJ", "New Jersey"), array("NM", "New Mexico"), array("NY", "New York"), array("NC", "North Carolina"), array("ND", "North Dakota"), array("OH", "Ohio"), array("OK", "Oklahoma"), array("OR", "Oregon"), array("PA", "Pennsylvania"), array("RI", "Rhode Island"), array("SC", "South Carolina"), array("SD", "South Dakota"), array("TN", "Tennessee"), array("TX", "Texas"), array("UT", "Utah"), array("VT", "Vermont"), array("VA", "Virginia"), array("WA", "Washington"), array("DC", "Washington, DC"), array("WV", "West Virginia"), array("WI", "Wisconsin"), array("WY", "Wyoming"));
 
 # display <option>s
 function enc_states($str) {
        $ret = '';
 
-       return encode_options($str, $GLOBALS['wfpl_states_assoc'], PULLDOWN_HASH);
+       return encode_options($str, $GLOBALS['wfpl_states_assoc']);
 }
 
-$GLOBALS['wfpl_provinces_assoc'] = array("AB" => "Alberta", "BC" => "British Columbia", "MB" => "Manitoba", "NF" => "Newfoundland", "NB" => "New Brunswick", "NS" => "Nova Scotia", "NT" => "Northwest Territories", "NU" => "Nunavut", "ON" => "Ontario", "PE" => "Prince Edward Island", "QC" => "Quebec", "SK" => "Saskatchewan", "YT" => "Yukon Territory");
+$GLOBALS['wfpl_provinces_assoc'] = array(array("AB", "Alberta"), array("BC", "British Columbia"), array("MB", "Manitoba"), array("NF", "Newfoundland"), array("NB", "New Brunswick"), array("NS", "Nova Scotia"), array("NT", "Northwest Territories"), array("NU", "Nunavut"), array("ON", "Ontario"), array("PE", "Prince Edward Island"), array("QC", "Quebec"), array("SK", "Saskatchewan"), array("YT", "Yukon Territory"));
 
 # display <option>s
 function enc_provinces($str) {
        $ret = '';
 
-       return encode_options($str, $GLOBALS['wfpl_provinces_assoc'], PULLDOWN_HASH);
+       return encode_options($str, $GLOBALS['wfpl_provinces_assoc']);
 }
 
 # returns "odd", then "even", then "odd" etc.