diff options
Diffstat (limited to 'include/text.php')
-rw-r--r-- | include/text.php | 66 |
1 files changed, 63 insertions, 3 deletions
diff --git a/include/text.php b/include/text.php index a22faa1a5..ea64a3d28 100644 --- a/include/text.php +++ b/include/text.php @@ -860,10 +860,16 @@ function lang_selector() { $o .= '<form action="" method="post" ><select name="system_language" onchange="this.form.submit();" >'; $langs = glob('view/*/strings.php'); if(is_array($langs) && count($langs)) { + $langs[] = ''; if(! in_array('view/en/strings.php',$langs)) $langs[] = 'view/en/'; asort($langs); foreach($langs as $l) { + if($l == '') { + $default_selected = ((! x($_SESSION,'language')) ? ' selected="selected" ' : ''); + $o .= '<option value="" ' . $default_selected . '>' . t('default') . '</option>'; + continue; + } $ll = substr($l,5); $ll = substr($ll,0,strrpos($ll,'/')); $selected = (($ll === $lang) ? ' selected="selected" ' : ''); @@ -932,6 +938,60 @@ function base64url_decode($s) { return base64_decode(strtr($s,'-_','+/')); } -function cc_license() { -return '<div class="cc-license">' . t('Shared content is covered by the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a> license.') . '</div>'; -} + +if (!function_exists('str_getcsv')) { + function str_getcsv($input, $delimiter = ',', $enclosure = '"', $escape = '\\', $eol = '\n') { + if (is_string($input) && !empty($input)) { + $output = array(); + $tmp = preg_split("/".$eol."/",$input); + if (is_array($tmp) && !empty($tmp)) { + while (list($line_num, $line) = each($tmp)) { + if (preg_match("/".$escape.$enclosure."/",$line)) { + while ($strlen = strlen($line)) { + $pos_delimiter = strpos($line,$delimiter); + $pos_enclosure_start = strpos($line,$enclosure); + if ( + is_int($pos_delimiter) && is_int($pos_enclosure_start) + && ($pos_enclosure_start < $pos_delimiter) + ) { + $enclosed_str = substr($line,1); + $pos_enclosure_end = strpos($enclosed_str,$enclosure); + $enclosed_str = substr($enclosed_str,0,$pos_enclosure_end); + $output[$line_num][] = $enclosed_str; + $offset = $pos_enclosure_end+3; + } else { + if (empty($pos_delimiter) && empty($pos_enclosure_start)) { + $output[$line_num][] = substr($line,0); + $offset = strlen($line); + } else { + $output[$line_num][] = substr($line,0,$pos_delimiter); + $offset = ( + !empty($pos_enclosure_start) + && ($pos_enclosure_start < $pos_delimiter) + ) + ?$pos_enclosure_start + :$pos_delimiter+1; + } + } + $line = substr($line,$offset); + } + } else { + $line = preg_split("/".$delimiter."/",$line); + + /* + * Validating against pesky extra line breaks creating false rows. + */ + if (is_array($line) && !empty($line[0])) { + $output[$line_num] = $line; + } + } + } + return $output; + } else { + return false; + } + } else { + return false; + } + } +} |