sofilemanager(); // discarded because of extension //$this->so =& CreateObject('filemanager.sofilemanager'); //$this->so->db_init(); $this->db_init(); $this->vfs =& CreateObject('phpgwapi.vfs'); error_reporting(4); ### Start Configuration Options ### ### These are automatically set in eGW - do not edit ### $this->sep = SEP; $this->rootdir = $this->vfs->basedir; $this->fakebase = $this->vfs->fakebase; $this->appname = $GLOBALS['egw_info']['flags']['currentapp']; if(stristr($this->rootdir, EGW_SERVER_ROOT)) { $this->filesdir = substr($this->rootdir, strlen(EGW_SERVER_ROOT)); } else { unset($this->filesdir); } $this->hostname = $GLOBALS['egw_info']['server']['webserver_url'] . $this->filesdir; // die($this->hostname); ### # Note that $userinfo["username"] is actually the id number, not the login name ### $this->userinfo['username'] = $GLOBALS['egw_info']['user']['account_id']; $this->userinfo['account_lid'] = $GLOBALS['egw']->accounts->id2name($this->userinfo['username']); $this->userinfo['hdspace'] = 10000000000; // to settings $this->homedir = $this->fakebase.'/'.$this->userinfo['account_lid']; ### End Configuration Options ### if(!defined('NULL')) { define('NULL', ''); } ### # Define the list of file attributes. Format is "internal_name" => "Displayed name" # This is used both by internally and externally for things like preferences ### $this->file_attributes = Array( 'name' => lang('File Name'), 'mime_type' => lang('MIME Type'), 'size' => lang('Size'), 'created' => lang('Created'), 'modified' => lang('Modified'), 'owner' => lang('Owner'), 'createdby_id' => lang('Created by'), 'modifiedby_id' => lang('Created by'), 'modifiedby_id' => lang('Modified by'), 'app' => lang('Application'), 'comment' => lang('Comment'), 'version' => lang('Version') ); if (!is_object($GLOBALS['egw']->datetime)) { $GLOBALS['egw']->datetime =& CreateObject('phpgwapi.datetime'); } $this->tz_offset_s = $GLOBALS['egw']->datetime->tz_offset; $this->now = time() + $this->tz_offset_s; // time() is server-time and we need a user-time } /** * changes the data from the db-format to your work-format * * reimplemented to adjust the timezone of the timestamps (adding $this->tz_offset_s to get user-time) * Please note, we do NOT call the method of the parent so_sql !!! * * @param array $data if given works on that array and returns result, else works on internal data-array * @return array with changed data */ function db2data($data=null) { if (!is_array($data)) { $data = &$this->data; } foreach($this->timestamps as $name) { if (isset($data[$name]) && $data[$name]) $data[$name] += $this->tz_offset_s; } return $data; } /** * changes the data from your work-format to the db-format * * reimplemented to adjust the timezone of the timestamps (subtraction $this->tz_offset_s to get server-time) * Please note, we do NOT call the method of the parent so_sql !!! * * @param array $data if given works on that array and returns result, else works on internal data-array * @return array with changed data */ function data2db($data=null) { if ($intern = !is_array($data)) { $data = &$this->data; } foreach($this->timestamps as $name) { if (isset($data[$name]) && $data[$name]) $data[$name] -= $this->tz_offset_s; } return $data; } ### # Calculate and display B or KB # And yes, that first if is strange, # but it does do something ### function borkb($size, $enclosed = NULL, $return = 1) { if(!$size) { $size = 0; } if($enclosed) { $left = '('; $right = ')'; } if($size < 1024) { $rstring = $left . $size . 'B' . $right; } else { $rstring = $left . round($size/1024) . 'KB' . $right; } return($this->eor($rstring, $return)); } ### # Check for and return the first unwanted character ### function bad_chars($string, $all = True, $return = 0) { if($all) { if(preg_match("-([\\/<>\'\"\&])-", $string, $badchars)) { $rstring = $badchars[1]; } } else { if(preg_match("-([\\/<>])-", $string, $badchars)) { $rstring = $badchars[1]; } } return trim(($this->eor($rstring, $return))); } ### # Match character in string using ord(). ### function ord_match($string, $charnum) { for($i = 0; $i < strlen($string); $i++) { $character = ord(substr($string, $i, 1)); if($character == $charnum) { return True; } } return False; } ### # Decide whether to echo or return. Used by HTML functions ### function eor($rstring, $return) { if($return) { return($rstring); } else { $this->html_text($rstring . "\n"); return(0); } } function html_text($string, $times = 1, $return = 0, $lang = 0) { if($lang) { $string = lang($string); } if($times == NULL) { $times = 1; } for($i = 0; $i != $times; $i++) { if($return) { $rstring .= $string; } else { echo $string; } } if($return) { return($rstring); } } ### # URL encode a string # First check if its a query string, then if its just a URL, then just encodes it all # Note: this is a hack. It was made to work with form actions, form values, and links only, # but should be able to handle any normal query string or URL ### function string_encode($string, $return = False) { //var_dump($string); if(preg_match("/=(.*)(&|$)/U", $string)) { $rstring = $string; preg_match_all("/=(.*)(&|$)/U", $string, $matches, PREG_SET_ORDER);//FIXME matches not defined reset($matches);//FIXME matches not defined while(list(,$match_array) = each($matches))//FIXME matches not defined { $var_encoded = rawurlencode(base64_encode($match_array[1])); $rstring = str_replace($match_array[0], '=' . $var_encoded . $match_array[2], $rstring); } } elseif($this->hostname != "" && ereg('^'.$this->hostname, $string)) // elseif(ereg('^'.$this->hostname, $string)) { $rstring = ereg_replace('^'.$this->hostname.'/', '', $string); $rstring = preg_replace("/(.*)(\/|$)/Ue", "rawurlencode(base64_encode('\\1')) . '\\2'", $rstring); $rstring = $this->hostname.'/'.$rstring; } else { $rstring = rawurlencode($string); /* Terrible hack, decodes all /'s back to normal */ $rstring = preg_replace("/%2F/", '/', $rstring); } return($this->eor($rstring, $return)); } function string_decode($string, $return = False) { $rstring = rawurldecode($string); return($this->eor($rstring, $return)); } ### # HTML encode a string # This should be used with anything in an HTML tag that might contain < or > ### function html_encode($string, $return) { $rstring = htmlspecialchars($string); return($this->eor($rstring, $return)); } } ?>