2006-01-09
- # Fixed function in_docroot so that it works with asyncservices
-
- /**
- * Class: vfs
- *
- * Virtual File System class - SQL v.2 implementation
- */
- class vfs extends vfs_shared
- {
- var $working_id;
- var $working_lid;
- var $meta_types;
- var $now;
- var $file_actions;
- var $vfs_mimetypes;
- var $vfs_versionsystem;
- var $vfs_customfields;
- var $vfs_sharing;
- var $db;
- var $db_hl;
- var $appfiles_root;
-
- var $Debug;
-
- //other attributes may be in the custom fields....
-
- var $attribute_tables = array(
- 'file_id' => 'phpgw_vfs2_files',
- 'owner_id' => 'phpgw_vfs2_files',
- 'createdby_id' => 'phpgw_vfs2_files',
- 'modifiedby_id' => 'phpgw_vfs2_files',
- 'created' => 'phpgw_vfs2_files',
- 'modified' => 'phpgw_vfs2_files',
- 'size' => 'phpgw_vfs2_files',
- 'mime_type' => 'phpgw_vfs2_mimetypes',
- 'comment' => 'phpgw_vfs2_files',
- 'app' => 'phpgw_vfs2_files',
- 'directory' => 'phpgw_vfs2_files',
- 'name' => 'phpgw_vfs2_files',
- 'link_directory'=> 'phpgw_vfs2_files',
- 'link_name' => 'phpgw_vfs2_files',
- 'version' => 'phpgw_vfs2_files'
- );
-
- //to external use.
- //if $custom_field_support is set, then this class have support to
- //custom fields.
- var $custom_field_support = 1;
-
- //if $search_support is set, then this class have support to
- //searching in files for a particular value in a particular property.
- var $search_support = 1;
-
- var $compress_support = 1;
- var $extract_support = 1;
-
-
- /*!
- @function vfs
- @abstract constructor, sets up variables
- */
- function vfs ()
- {
-
- //just in case... this must change soon.
- if (@$GLOBALS['phpgw_info']['flags']['currentapp']=='filemanager')
- {
- echo "FILEMANAGER UNTESTED WITH VFS2. ABORTED.";
- $GLOBALS['phpgw']->common->phpgw_exit();
- }
-
- $this->db = clone($GLOBALS['phpgw']->db);
- $this->db_hl =& $GLOBALS['phpgw']->db_hl;
-
- $this->vfs_shared ();
- $this->basedir = $GLOBALS['phpgw_info']['server']['files_dir'];
- $this->working_id = $GLOBALS['phpgw_info']['user']['account_id'];
- $this->working_lid = $GLOBALS['phpgw']->accounts->id2name($this->working_id);
- $this->now = date ('Y-m-d H:i:s');
-
-
- /*
- File/dir attributes, each corresponding to a database field.
- Useful for use in loops If an attribute was added to the table,
- add it here and possibly add it to set_attributes ()
-
- set_attributes now uses this array(). 07-Dec-01 skeeter
- */
-
- $this->attributes[] = 'deleteable';
- $this->attributes[] = 'content';
- $this->attributes[] = 'is_backup';
- $this->attributes[] = 'shared';
- $this->attributes[] = 'proper_id';
-
- $this->attribute_tables['deleteable'] = 'phpgw_vfs2_files';
- $this->attribute_tables['content'] = 'phpgw_vfs2_files';
- $this->attribute_tables['is_backup'] = 'phpgw_vfs2_files';
- $this->attribute_tables['shared'] = 'phpgw_vfs2_files';
- $this->attribute_tables['proper_id'] = 'phpgw_vfs2_files';
-
- /*
- Decide whether to use any actual filesystem calls (fopen(),
- fread(), unlink(), rmdir(), touch(), etc.). If not, then we're
- working completely in the database.
- */
- $this->file_actions = $GLOBALS['phpgw_info']['server']['file_store_contents'] == 'filesystem' ||
- !$GLOBALS['phpgw_info']['server']['file_store_contents'];
-
- // test if the files-dir is inside the document-root, and refuse
- // working if so
- if ($this->file_actions && $this->in_docroot($this->basedir))
- {
- $GLOBALS['phpgw']->common->phpgw_header();
- if ($GLOBALS['phpgw_info']['flags']['noheader'])
- {
- echo parse_navbar();
- }
- echo ''.lang('Path to user and group files HAS TO BE OUTSIDE of the webservers document-root!!!')."
\n";
- $GLOBALS['phpgw']->common->phpgw_exit();
- }
-
- /* We store the linked directories in an array now, so we don't
- * have to make the SQL call again */
-
-
-
-
- $this->linked_dirs = array ();
- while ($GLOBALS['phpgw']->db->next_record ())
- {
- $this->linked_dirs[] = $GLOBALS['phpgw']->db->Record;
- }
-
- //set_vfs to use this very object (pass by reference)
- $this->vfs_mimetypes =& CreateObject('phpgwapi.vfs_mimetypes',false);
- $this->vfs_mimetypes->set_vfs($this);
-
- $this->vfs_versionsystem =& CreateObject('phpgwapi.vfs_versionsystem',false);
- $this->vfs_versionsystem->set_vfs($this);
-
- $this->vfs_customfields =& CreateObject('phpgwapi.vfs_customfields');
-
- $this->vfs_sharing =& CreateObject('phpgwapi.vfs_sharing');
- }
-
- /*!
- @function in_docroot
- @abstract test if $path lies within the webservers document-root
- */
- function in_docroot($path)
- {
- $docroots = array(PHPGW_SERVER_ROOT,$_SERVER['DOCUMENT_ROOT']);
-
- foreach ($docroots as $docroot)
- {
- $len = strlen($docroot);
-
- if ($docroot != "" && $docroot == substr($path,0,$len))
- {
- $rest = substr($path,$len);
-
- if (!strlen($rest) || $rest[0] == DIRECTORY_SEPARATOR)
- {
- return True;
- }
- }
- }
- return False;
- }
-
- /*!
- @function get_id_from_path
- @abstract Given a Directory and file name, finds the correspondent
- file_id
- @param $directory string
- @param $name string
- @result int the file_id in repository
- */
- function get_id_from_path($directory,$name)
- {
- $where = array(
- 'directory' => $directory,
- 'name' => $name
- );
-
- $this->db->select('phpgw_vfs2_files','file_id',$where,
- __LINE__,__FILE__);
-
- if ($this->db->next_record())
- {
- return $this->db->Record['file_id'];
- }
-
- return false;
- }
-
- //the inverse way of $this->get_id_from_path
- function get_path_from_id($id)
- {
- $where = array(
- 'file_id' => $id
- );
-
- $this->db->select('phpgw_vfs2_files','directory,name',$where,
- __LINE__,__FILE__);
-
- if ($this->db->next_record())
- {
- return $this->db->Record['directory'].'/'.$this->db->Record['name'];
- }
-
- return false;
- }
-
- /*
- * See vfs_shared
- */
- function get_journal ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT),
- 'type' => False
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- if (!$this->acl_check (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask)
- )))
- {
- return False;
- }
-
- //find the file_id from a file based on directory and name
- $file_id = $this->get_id_from_path($p->fake_leading_dirs_clean,$p->fake_name_clean);
-
-
- if ($file_id === false)
- {
- return false;
- }
- return $this->vfs_versionsystem->get_journal($file_id);
- }
-
- /*
- * See vfs_shared
- */
- function acl_check ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT),
- 'operation' => PHPGW_ACL_READ,
- 'must_exist' => False
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- /* Accommodate special situations */
- if ($this->override_acl || $data['relatives'][0] == RELATIVE_USER_APP || $GLOBALS['phpgw_info']['user']['apps']['admin'])
- {
- return True;
- }
-
- if (!$data['owner_id'])
- {
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- /* Temporary, until we get symlink type files set up */
- if ($p->outside)
- {
- return True;
- }
-
- /* Read access is always allowed here, but nothing else is */
- if ($data['string'] == '/' || $data['string'] == $this->fakebase)
- {
- if ($data['operation'] == PHPGW_ACL_READ)
- {
- return True;
- }
- else
- {
- return False;
- }
- }
-
- /* If the file doesn't exist, we get ownership from the parent
- * directory */
- if (!$this->file_exists (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask)
- ))
- )
- {
- if ($data['must_exist'])
- {
- return False;
- }
-
- $data['string'] = $p->fake_leading_dirs;
- $p2 = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($p->mask)
- )
- );
-
- if (!$this->file_exists (array(
- 'string' => $data['string'],
- 'relatives' => array ($p->mask)
- ))
- )
- {
- return False;
- }
- }
- else
- {
- $p2 = $p;
- }
- /*
- We don't use ls () to get owner_id as we normally would,
- because ls () calls acl_check (), which would create an infinite loop
- */
- $query = $GLOBALS['phpgw']->db->query ("SELECT owner_id FROM phpgw_vfs2_files WHERE directory='".
- $GLOBALS['phpgw']->db->db_addslashes($p2->fake_leading_dirs_clean)."' AND name='".
- $GLOBALS['phpgw']->db->db_addslashes($p2->fake_name_clean)."'", __LINE__, __FILE__);
- $GLOBALS['phpgw']->db->next_record ();
-
- $owner_id = $GLOBALS['phpgw']->db->Record['owner_id'];
- }
- else
- {
- $owner_id = $data['owner_id'];
- }
-
- /* This is correct. The ACL currently doesn't handle undefined values correctly */
- if (!$owner_id)
- {
- $owner_id = 0;
- }
-
- $user_id = $GLOBALS['phpgw_info']['user']['account_id'];
-
- /* They always have access to their own files */
- if ($owner_id == $user_id)
- {
- return True;
- }
-
-
- #viniciuscb: Check if the file is inside a dir which is an application dir.
- # If so, see if the dir has permissions in vfs_sharing. If not,
- # inherit permissions given by the source application
-
- if ($this->is_appfolder($p2->fake_full_path))
- {
- $file_id = $this->get_file_id(array(
- 'string' => $p2->fake_full_path,
- 'relatives' => array($p2->mask)));
-
- $rights = $this->vfs_sharing->get_file_permissions($GLOBALS['phpgw_info']['user']['account_id'],$file_id);
-
- if ($rights & $data['operation'])
- {
- return true;
- }
-
- $exp_path = explode('/',$p2->fake_full_path);
- $appname = $exp_path[2];
- $id = $exp_path[3];
-
- //get hooks to know node permission
- $resp = $GLOBALS['phpgw']->hooks->process(array(
- 'location' => 'files_info',
- 'account_id' => $GLOBALS['phpgw_info']['user']['account_id']
- ));
-
- return ($resp[$appname][$id]['permissions'] & $data['operation']);
- }
-
- #viniciuscb: rethink the group files role and working schema
- /* Check if they're in the group */
- $memberships = $GLOBALS['phpgw']->accounts->membership ($user_id);
-
- if (is_array ($memberships))
- {
- foreach ($memberships as $group_array)
- {
- if ($owner_id == $group_array['account_id'])
- {
- $group_ok = 1;
- break;
- }
- }
- }
-
- $acl = CreateObject ('phpgwapi.acl', $owner_id);
- $acl->account_id = $owner_id;
- $acl->read_repository ();
-
- $file_id = $this->get_file_id(array(
- 'string' => $p2->fake_full_path,
- 'relatives' => array($p2->mask)));
-
- $rights = $this->vfs_sharing->get_file_permissions($user_id,$file_id);
-
- if ($this->Debug)
- {
- echo "
\nRIGHTS OF THE FILE ".$p2->fake_full_path." ARE=$rights
\n";
- }
-
- if ($rights & $data['operation'])
- {
- return True;
- }
- elseif (!$rights && $group_ok)
- {
- $conf =& CreateObject('phpgwapi.config', 'phpgwapi');
- $conf->read_repository();
- if ($conf->config_data['acl_default'] == 'grant')
- {
- return True;
- }
- else
- {
- return False;
- }
- }
- else
- {
- return False;
- }
- }
-
- /*
- * See vfs_shared
- */
- function read ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT)
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- if (!$this->acl_check (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'operation' => PHPGW_ACL_READ
- ))
- )
- {
- return False;
- }
-
- $conf =& CreateObject('phpgwapi.config', 'phpgwapi');
- $conf->read_repository();
- if ($this->file_actions || $p->outside)
- {
- if ($fp = fopen ($p->real_full_path, 'rb'))
- {
- $contents = fread ($fp, filesize ($p->real_full_path));
- fclose ($fp);
- }
- else
- {
- $contents = False;
- }
- }
- else
- {
- $ls_array = $this->ls (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- )
- );
-
- $contents = $ls_array[0]['content'];
- }
-
- return $contents;
- }
-
- /*
- * See vfs_shared
- */
- function write ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT),
- 'content' => ''
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- if ($this->file_exists (array (
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask)
- ))
- )
- {
- $acl_operation = PHPGW_ACL_EDIT;
- $journal_operation = VFS_OPERATION_EDITED;
- }
- else
- {
- $acl_operation = PHPGW_ACL_ADD;
- }
-
- if (!$this->acl_check (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'operation' => $acl_operation
- ))
- )
- {
- return False;
- }
-
- umask(0177);
-
- /*
- * If 'string' doesn't exist, touch () creates both the file and
- * the database entry If 'string' does exist, touch () sets the
- * modification time and modified by
- */
- $this->touch (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask)
- )
- );
-
- $conf =& CreateObject('phpgwapi.config', 'phpgwapi');
- $conf->read_repository();
-
-
- $file_id = $this->get_id_from_path($p->fake_leading_dirs_clean,$p->fake_name_clean);
-
- //Saves a snapshot in the journal
- if ($journal_operation)
- {
- $this->vfs_versionsystem->save_snapshot($file_id,$journal_operation);
- }
-
- if ($this->file_actions)
- {
- if ($fp = fopen ($p->real_full_path, 'wb'))
- {
- fwrite ($fp, $data['content'], strlen ($data['content']));
- fclose ($fp);
- $write_ok = 1;
- }
- }
-
- if ($write_ok || !$this->file_actions)
- {
-
-
- if ($this->file_actions)
- {
- $set_attributes_array = array(
- 'size' => filesize ($p->real_full_path)
- );
- }
- else
- {
- $set_attributes_array = array (
- 'size' => strlen ($data['content']),
- 'content' => $data['content']
- );
- }
-
- if ($journal_operation)
- {
- $this->vfs_versionsystem->commit($file_id);
- }
-
-
-
- $this->set_attributes (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'attributes' => $set_attributes_array
- ));
-
- return True;
- }
- else
- {
- return False;
- }
- }
-
- /*
- * See vfs_shared
- */
- function touch ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array(
- 'relatives' => array (RELATIVE_CURRENT)
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $account_id = $GLOBALS['phpgw_info']['user']['account_id'];
- $currentapp = $GLOBALS['phpgw_info']['flags']['currentapp'];
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- ));
-
- umask (0177);
-
- if ($this->file_actions)
- {
- /*
- PHP's touch function will automatically decide whether to
- create the file or set the modification time
- */
- $rr = @touch ($p->real_full_path);
-
- if ($p->outside)
- {
- return $rr;
- }
- }
-
- /* We, however, have to decide this ourselves */
- if ($this->file_exists (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask)
- ))
- )
- {
- if (!$this->acl_check (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'operation' => PHPGW_ACL_EDIT
- )))
- {
- return False;
- }
-
- $vr = $this->set_attributes (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'attributes' => array(
- 'modifiedby_id' => $account_id,
- 'modified' => $this->now
- )
- )
- );
- }
- else
- {
- if (!$this->acl_check (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'operation' => PHPGW_ACL_ADD
- ))
- )
- {
- return False;
- }
-
- //TODO VCB insert other fields
-
- $insert_data = array(
- 'owner_id' => $this->working_id,
- 'directory' => $p->fake_leading_dirs_clean,
- 'name' => $p->fake_name_clean
- );
-
- $query = $this->db->insert('phpgw_vfs2_files',$insert_data,$insert_data,__LINE__,__FILE__);
-
- $file_id = $this->get_id_from_path($p->fake_leading_dirs_clean,$p->fake_name_clean);
-
- $this->vfs_versionsystem->create_initial_version($file_id);
-
- $this->set_attributes(array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'attributes' => array (
- 'createdby_id' => $account_id,
- 'created' => $this->now,
- 'size' => 0,
- 'deleteable' => 'Y',
- 'app' => $currentapp
- )
- )
- );
-
- $this->correct_attributes (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask)
- )
- );
- }
-
- if ($rr || $vr || $query)
- {
- return True;
- }
- else
- {
- return False;
- }
- }
-
- /*
- * See vfs_shared
- * If $data['symlink'] the file is symlinked instead of copied
- */
- function cp ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT, RELATIVE_CURRENT),
- 'journal' => true
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $account_id = $GLOBALS['phpgw_info']['user']['account_id'];
-
- $f = $this->path_parts (array(
- 'string' => $data['from'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- $t = $this->path_parts (array(
- 'string' => $data['to'],
- 'relatives' => array ($data['relatives'][1])
- )
- );
-
- if (!$this->acl_check (array(
- 'string' => $f->fake_full_path,
- 'relatives' => array ($f->mask),
- 'operation' => PHPGW_ACL_READ
- ))
- )
- {
- trigger_error('vfs->cp: could not copy file from '.$f->fake_full_path.' to '.$t->fake_full_path.'. Without permission to read from source location. Line '.__LINE__.', File '.__FILE__,E_USER_NOTICE);
- return False;
- }
-
- if ($exists = $this->file_exists (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask)
- ))
- )
- {
- if (!$this->acl_check (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask),
- 'operation' => PHPGW_ACL_EDIT
- ))
- )
- {
- trigger_error('vfs->cp: could not copy file from '.$f->fake_full_path.' to '.$t->fake_full_path.'. Without permission to edit destination. Line '.__LINE__.', File '.__FILE__,E_USER_NOTICE);
- return False;
- }
- }
- else
- {
- if (!$this->acl_check (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask),
- 'operation' => PHPGW_ACL_ADD
- ))
- )
- {
-
- trigger_error('vfs->cp: could not copy file from '.$f->fake_full_path.' to '.$t->fake_full_path.'. Without permission to create new file. Line '.__LINE__.', File '.__FILE__,E_USER_NOTICE);
- return False;
- }
- }
-
- umask(0177);
-
- if ($this->file_type (array(
- 'string' => $f->fake_full_path,
- 'relatives' => array ($f->mask)
- )) != 'Directory'
- )
- {
- if ($this->file_actions)
- {
- if (@$data['symlink'])
- {
- if ($exists)
- {
- @unlink($t->real_full_path);
- }
- if (!symlink($f->real_full_path, $t->real_full_path))
- {
- trigger_error('vfs->cp: could not copy file from '.$f->fake_full_path.' to '.$t->fake_full_path.'. Without permission to create symbolic link. Line '.__LINE__.', File '.__FILE__,E_USER_NOTICE);
- return False;
- }
- }
- elseif (!copy ($f->real_full_path, $t->real_full_path))
- {
- trigger_error('vfs->cp: could not copy file from '.$f->fake_full_path.' to '.$t->fake_full_path.'. Line '.__LINE__.', File '.__FILE__,E_USER_NOTICE);
- return False;
- }
-
- $size = filesize ($t->real_full_path);
- }
- else
- {
- $content = $this->read (array(
- 'string' => $f->fake_full_path,
- 'relatives' => array ($f->mask)
- )
- );
-
-
- $size = strlen ($content);
- }
-
- if ($t->outside)
- {
- return True;
- }
-
- $ls_array = $this->ls (array(
- 'string' => $f->fake_full_path,
- 'relatives' => array ($f->mask),
- 'checksubdirs' => False,
- 'mime_type' => False,
- 'nofiles' => True
- )
- );
- $record = $ls_array[0];
-
- if ($this->file_exists (array(
- 'string' => $data['to'],
- 'relatives' => array ($data['relatives'][1])
- ))
- )
- { //Overwrite
-
-/*
- $query = $GLOBALS['phpgw']->db->query ("UPDATE phpgw_vfs SET owner_id='$this->working_id', directory='".
- $GLOBALS['phpgw']->db->db_addslashes($t->fake_leading_dirs_clean)."', name='".
- $GLOBALS['phpgw']->db->db_addslashes($t->fake_name_clean)."' WHERE owner_id='$this->working_id' AND directory='".
- $GLOBALS['phpgw']->db->db_addslashes($t->fake_leading_dirs_clean)."' AND name='".
- $GLOBALS['phpgw']->db->db_addslashes($t->fake_name_clean)."'", __LINE__, __FILE__);*/
-
- $ls_array_dest = $this->ls (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask),
- 'checksubdirs' => False,
- 'mime_type' => False,
- 'nofiles' => True
- )
- );
- $record_dest = $ls_array_dest[0];
-
- $this->vfs_versionsystem->save_snapshot($record_dest['file_id'],VFS_OPERATION_EDITED,'Overwritten by copy of '.$f->fake_full_path_clean);
-
- $set_attributes_array = array (
- 'createdby_id' => $account_id,
- 'created' => $this->now,
- 'size' => $size,
- 'mime_type' => $record['mime_type'],
- 'deleteable' => $record['deleteable'],
- 'comment' => $record['comment'],
- 'app' => $record['app']
- );
-
- if (!$this->file_actions)
- {
- $set_attributes_array['content'] = $content;
- }
-
- $res = $this->set_attributes(array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask),
- 'attributes' => $set_attributes_array
- )
- );
-
- if ($res)
- $this->vfs_versionsystem->commit($record_dest['file_id']);
- }
- else //Create a new file
- {
- $this->touch (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask)
- )
- );
-
- $set_attributes_array = array (
- 'createdby_id' => $account_id,
- 'created' => $this->now,
- 'size' => $size,
- 'mime_type' => $record['mime_type'],
- 'deleteable' => $record['deleteable'],
- 'comment' => $record['comment'],
- 'app' => $record['app']
- );
-
- if (!$this->file_actions)
- {
- $set_attributes_array['content'] = $content;
- }
-
- $this->set_attributes(array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask),
- 'attributes' => $set_attributes_array
- )
- );
- }
- $this->correct_attributes (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask)
- )
- );
- }
- else /* It's a directory */
- {
- /* First, make the initial directory */
- $this->mkdir (array(
- 'string' => $data['to'],
- 'relatives' => array ($data['relatives'][1])
- )
- );
-
- /* Next, we create all the directories below the initial directory */
- foreach($this->ls (array(
- 'string' => $f->fake_full_path,
- 'relatives' => array ($f->mask),
- 'checksubdirs' => True,
- 'mime_type' => 'Directory'
- )) as $entry)
- {
- $newdir = ereg_replace ("^$f->fake_full_path", "$t->fake_full_path", $entry['directory']);
- $this->mkdir (array(
- 'string' => $newdir.'/'.$entry['name'],
- 'relatives' => array ($t->mask)
- )
- );
- }
-
- /* Lastly, we copy the files over */
- foreach($this->ls (array(
- 'string' => $f->fake_full_path,
- 'relatives' => array ($f->mask)
- )) as $entry)
- {
- if ($entry['mime_type'] == 'Directory')
- {
- continue;
- }
-
- $newdir = ereg_replace ("^$f->fake_full_path", "$t->fake_full_path", $entry['directory']);
- $this->cp (array(
- 'from' => "$entry[directory]/$entry[name]",
- 'to' => "$newdir/$entry[name]",
- 'relatives' => array ($f->mask, $t->mask)
- )
- );
- }
- }
-
- if (!$f->outside)
- {
-
- $ls_array = $this->ls(array(
- 'string' => $f->fake_full_path,
- 'relatives' => $f->mask
- ));
-
- $file = $ls_array[0];
-
- $this->vfs_versionsystem->save_snapshot($file['file_id'],VFS_OPERATION_COPIED,'',array('dest' =>$t->fake_full_path));
-
- $this->vfs_versionsystem->commit();
-
- }
-
- return True;
- }
-
-
- /*
- * See vfs_shared
- */
- function mv ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT, RELATIVE_CURRENT)
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $account_id = $GLOBALS['phpgw_info']['user']['account_id'];
-
- $f = $this->path_parts (array(
- 'string' => $data['from'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- $t = $this->path_parts (array(
- 'string' => $data['to'],
- 'relatives' => array ($data['relatives'][1])
- )
- );
-
- if ($f->fake_full_path == $t->fake_full_path)
- {
- return true;
- }
-
- if (!$this->acl_check (array(
- 'string' => $f->fake_full_path,
- 'relatives' => array ($f->mask),
- 'operation' => PHPGW_ACL_READ
- ))
- || !$this->acl_check (array(
- 'string' => $f->fake_full_path,
- 'relatives' => array ($f->mask),
- 'operation' => PHPGW_ACL_DELETE
- ))
- )
- {
- trigger_error('vfs->mv: could not move file from '.$f->fake_full_path.' to '.$t->fake_full_path.'. Not allowed to delete the file from its source location. Line '.__LINE__.', File '.__FILE__,E_USER_NOTICE);
- return False;
- }
-
- if (!$this->acl_check (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask),
- 'operation' => PHPGW_ACL_ADD
- ))
- )
- {
- trigger_error('vfs->mv: could not move file from '.$f->fake_full_path.' to '.$t->fake_full_path.'. Not allowed to add a file in destination location. Line '.__LINE__.', File '.__FILE__,E_USER_NOTICE);
- return False;
- }
-
- if ($this->file_exists (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask)
- ))
- )
- {
- if (!$this->acl_check (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask),
- 'operation' => PHPGW_ACL_EDIT
- ))
- )
- {
- trigger_error('vfs->mv: could not move file from '.$f->fake_full_path.' to '.$t->fake_full_path.'. Not allowed to edit existent file in destination location. Line '.__LINE__.', File '.__FILE__,E_USER_NOTICE);
- return False;
- }
- }
-
- umask (0177);
-
- /* We can't move directories into themselves */
- if (($this->file_type (array(
- 'string' => $f->fake_full_path,
- 'relatives' => array ($f->mask)
- ) == 'Directory'))
- && ereg ("^$f->fake_full_path", $t->fake_full_path)
- )
- {
- if (($t->fake_full_path == $f->fake_full_path) || substr ($t->fake_full_path, strlen ($f->fake_full_path), 1) == '/')
- {
- trigger_error('vfs->mv: could not move file from '.$f->fake_full_path.' to '.$t->fake_full_path.'. Trying to write in invalid location. Line '.__LINE__.', File '.__FILE__,E_USER_NOTICE);
- return False;
- }
- }
-
- if ($this->file_exists (array(
- 'string' => $f->fake_full_path,
- 'relatives' => array ($f->mask)
- ))
- )
- {
-
- /* We get the listing now, because it will change after we update the database */
- $ls = $this->ls (array(
- 'string' => $f->fake_full_path,
- 'relatives' => array ($f->mask)
- )
- );
-
- //to the new version system.
- $ls_fileonly = $this->ls(array(
- 'string' => $f->fake_full_path,
- 'relatives' => array ($f->mask),
- 'checksudirs' => false,
- 'nofiles' => true
- ));
-
-
- $this->vfs_versionsystem->save_snapshot(
- $ls_fileonly[0]['file_id'],VFS_OPERATION_MOVED,
- 'Moved from '.$f->fake_full_path.' to '.$t->fake_full_path,
- array('dest' => $t->fake_full_path));
-
- if ($this->file_exists (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask)
- ))
- )
- {
- $this->rm (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask)
- )
- );
- }
-
- /*
- * We add the journal entry now, before we delete. This way
- * the mime_type field will be updated to 'journal-deleted'
- * when the file is actually deleted
- */
- if (!$f->outside)
- {
- //add_journal was here
- }
-
- /*
- If the from file is outside, it won't have a database entry,
- so we have to touch it and find the size
- */
- if ($f->outside)
- {
- $size = filesize ($f->real_full_path);
-
- $this->touch (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask)
- )
- );
-
- $query = $GLOBALS['phpgw']->db->query ("UPDATE phpgw_vfs2_files SET size=$size WHERE directory='".
- $GLOBALS['phpgw']->db->db_addslashes($t->fake_leading_dirs_clean)."' AND name='".
- $GLOBALS['phpgw']->db->db_addslashes($t->fake_name_clean)."'", __LINE__, __FILE__);
- }
- elseif (!$t->outside)
- {
-
- $query = $GLOBALS['phpgw']->db->query ("UPDATE phpgw_vfs2_files SET name='".
- $GLOBALS['phpgw']->db->db_addslashes($t->fake_name_clean)."', directory='".
- $GLOBALS['phpgw']->db->db_addslashes($t->fake_leading_dirs_clean)."' WHERE directory='".
- $GLOBALS['phpgw']->db->db_addslashes($f->fake_leading_dirs_clean)."' AND name='".
- $GLOBALS['phpgw']->db->db_addslashes($f->fake_name_clean)."'", __LINE__, __FILE__);
- }
-
-
-/* $this->set_attributes(array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask),
- 'attributes' => array (
- 'modifiedby_id' => $account_id,
- 'modified' => $this->now
- )
- )
- );*/
-
-/* $this->correct_attributes (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask)
- )
- );*/
-
- if ($this->file_actions)
- {
- if(file_exists($t->real_full_path))
- {
- unlink($t->real_full_path);
- $ok = rename($f->real_full_path, $t->real_full_path);
- }
- else
- {
- $ok = rename($f->real_full_path, $t->real_full_path);
- }
-
- if (!$ok)
- {
- return false;
- }
-
- if (is_dir($t->real_full_path) && $f->outside)
- {
- $this->update_real(array(
- 'string' => $t->fake_full_path,
- 'relatives' => array($t->mask)
- ));
-
- }
-
- //$rr = rename ($f->real_full_path, $t->real_full_path);
- }
-
- /*
- This removes the original entry from the database The actual
- file is already deleted because of the rename () above
- */
- if ($t->outside)
- {
- $this->rm (array(
- 'string' => $f->fake_full_path,
- 'relatives' => array($f->mask)
- )
- );
- }
-
- }
- else
- {
- trigger_error('vfs->mv: could not move file from '.$f->fake_full_path.' to '.$t->fake_full_path.'. Source file not found. Line '.__LINE__.', File '.__FILE__,E_USER_NOTICE);
- return False;
- }
-
- if ($this->file_type (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask)
- )) == 'Directory'
- )
- {
- /* We got $ls from above, before we renamed the directory */
- foreach ($ls as $entry)
- {
- $newdir = ereg_replace ("^$f->fake_full_path", $t->fake_full_path, $entry['directory']);
- $newdir_clean = $this->clean_string (array ('string' => $newdir));
-
- $query = $GLOBALS['phpgw']->db->query ("UPDATE phpgw_vfs2_files SET directory='".
- $GLOBALS['phpgw']->db->db_addslashes($newdir_clean)."' WHERE file_id='$entry[file_id]'",
- __LINE__, __FILE__);
- $this->correct_attributes (array(
- 'string' => "$newdir/$entry[name]",
- 'relatives' => array ($t->mask)
- )
- );
- }
-
- }
-
-
- $this->vfs_versionsystem->commit($ls_fileonly[0]['file_id']);
-
-/* $this->add_journal (array(
- 'string' => $t->fake_full_path,
- 'relatives' => array ($t->mask),
- 'operation' => VFS_OPERATION_MOVED,
- 'state_one' => $f->fake_full_path,
- 'state_two' => $t->fake_full_path
- )
- );*/
- return True;
- }
-
- /*
- * See vfs_shared
- */
- function rm ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT)
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- if (!$this->acl_check (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'operation' => PHPGW_ACL_DELETE
- ))
- )
- {
- return False;
- }
-
- if (!$this->file_exists (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- ))
- )
- {
- if ($this->file_actions)
- {
- $rr = unlink ($p->real_full_path);
- }
- else
- {
- $rr = True;
- }
-
- if ($rr)
- {
- return True;
- }
- else
- {
- return False;
- }
- }
-
- if ($this->file_type (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )) != 'Directory'
- )
- {
- $ls_array = $this->ls(array(
- 'string' => $p->fake_full_path_clean,
- 'relatives' => $p->mask
- ));
-
- $file = $ls_array[0];
-
- $this->vfs_versionsystem->save_snapshot($file['file_id'],VFS_OPERATION_DELETED);
-
- $query = $GLOBALS['phpgw']->db->query ("DELETE FROM phpgw_vfs2_files WHERE directory='".
- $GLOBALS['phpgw']->db->db_addslashes($p->fake_leading_dirs_clean)."' AND name='".
- $GLOBALS['phpgw']->db->db_addslashes($p->fake_name_clean)."'", __LINE__, __FILE__);
-
- if ($query)
- $this->vfs_versionsystem->commit($file['file_id']);
-
- if ($this->file_actions)
- {
- $rr = unlink ($p->real_full_path);
- }
- else
- {
- $rr = True;
- }
-
- if ($query || $rr)
- {
- return True;
- }
- else
- {
- return False;
- }
- }
- else
- {
- $ls = $this->ls (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask)
- )
- );
-
- /* First, we cycle through the entries and delete the files */
- foreach($ls as $entry)
- {
- if ($entry['mime_type'] == 'Directory')
- {
- continue;
- }
-
- $this->rm (array(
- 'string' => "$entry[directory]/$entry[name]",
- 'relatives' => array ($p->mask)
- )
- );
- }
-
- /* Now we cycle through again and delete the directories */
- foreach ($ls as $entry)
- {
- if ($entry['mime_type'] != 'Directory')
- {
- continue;
- }
-
- /* Only the best in confusing recursion */
- $this->rm (array(
- 'string' => "$entry[directory]/$entry[name]",
- 'relatives' => array ($p->mask)
- )
- );
- }
-
- /* If the directory is linked, we delete the placeholder directory */
- $ls_array = $this->ls (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'checksubdirs' => False,
- 'mime_type' => False,
- 'nofiles' => True
- )
- );
- $link_info = $ls_array[0];
-
- if ($link_info['link_directory'] && $link_info['link_name'])
- {
- $path = $this->path_parts (array(
- 'string' => $link_info['directory'] . '/' . $link_info['name'],
- 'relatives' => array ($p->mask),
- 'nolinks' => True
- )
- );
-
- if ($this->file_actions)
- {
- rmdir ($path->real_full_path);
- }
- }
-
- $file = $link_info;
-
- $this->vfs_versionsystem->save_snapshot($file['file_id'],VFS_OPERATION_DELETED);
-
- $query = $GLOBALS['phpgw']->db->query ("DELETE FROM phpgw_vfs2_files WHERE directory='".
- $GLOBALS['phpgw']->db->db_addslashes($p->fake_leading_dirs_clean)."' AND name='".
- $GLOBALS['phpgw']->db->db_addslashes($p->fake_name_clean)."'",
- __LINE__, __FILE__);
-
- if ($query)
- $this->vfs_versionsystem->commit();
-
- if ($this->file_actions)
- {
- rmdir ($p->real_full_path);
- }
-
- return True;
- }
- }
-
- /*
- * See vfs_shared
- */
- function mkdir ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT)
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $account_id = $GLOBALS['phpgw_info']['user']['account_id'];
- $currentapp = $GLOBALS['phpgw_info']['flags']['currentapp'];
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- if (!$this->acl_check (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'operation' => PHPGW_ACL_ADD)
- )
- )
- {
- echo "can't create dir ".$p->fake_full_path." due to permissions.";
- return False;
- }
-
- /* We don't allow /'s in dir names, of course */
- if (ereg ("/", $p->fake_name))
- {
- return False;
- }
-
- umask (077);
-
- if ($this->file_actions)
- {
- if (!@is_dir($p->real_leading_dirs_clean)) // eg. /home or /group does not exist
- {
- if (!ereg_replace('^/','',$p->fake_leading_dirs))
- {
- return false;
- }
- if (!@$this->mkdir(array(
- 'string' => $p->fake_leading_dirs,
- 'relatives' => array(RELATIVE_NONE) ))) // ==> create it
- {
- return False;
- }
- }
-
- if (@is_dir($p->real_full_path)) // directory already exists
- {
- //WITH Serious BUG when registrys are in database, but not
- //in filesystem. Correct this ASAP.
- //$this->update_real($data,True); // update its contents
- }
- elseif (!@mkdir ($p->real_full_path, 0770))
- {
- return False;
- }
- }
-
- if (!$this->file_exists (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask)
- ))
- )
- {
- $query = $GLOBALS['phpgw']->db->query ("INSERT INTO phpgw_vfs2_files (owner_id, name, directory) VALUES ($this->working_id, '".
- $GLOBALS['phpgw']->db->db_addslashes($p->fake_name_clean)."', '".
- $GLOBALS['phpgw']->db->db_addslashes($p->fake_leading_dirs_clean)."')", __LINE__, __FILE__);
-
- $this->set_attributes(array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'attributes' => array (
- 'createdby_id' => $account_id,
- 'size' => 4096,
- 'mime_type' => 'Directory',
- 'created' => $this->now,
- 'deleteable' => 'Y',
- 'app' => $currentapp
- )
- )
- );
-
- $this->correct_attributes (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask)
- )
- );
-
- //Get info to the versionsystem
- $res = $this->ls(array(
- 'string' => $p->fake_full_path_clean,
- 'relatives' => $p->mask
- ));
-
- $file = $res[0];
-
- $this->vfs_versionsystem->create_initial_version($file['file_id']);
-
-
- }
- else
- {
- return False;
- }
-
- return True;
- }
-
- /*
- * See vfs_shared
- */
- function make_link ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT, RELATIVE_CURRENT)
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $account_id = $GLOBALS['phpgw_info']['user']['account_id'];
- $currentapp = $GLOBALS['phpgw_info']['flags']['currentapp'];
-
- $vp = $this->path_parts (array(
- 'string' => $data['vdir'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- $rp = $this->path_parts (array(
- 'string' => $data['rdir'],
- 'relatives' => array ($data['relatives'][1])
- )
- );
-
- if (!$this->acl_check (array(
- 'string' => $vp->fake_full_path,
- 'relatives' => array ($vp->mask),
- 'operation' => PHPGW_ACL_ADD
- ))
- )
- {
- return False;
- }
-
-
- if ((!$this->file_exists (array(
- 'string' => $rp->real_full_path,
- 'relatives' => array ($rp->mask)
- )))
- && !mkdir ($rp->real_full_path, 0770))
- {
- return False;
- }
-
- if (!$this->mkdir (array(
- 'string' => $vp->fake_full_path,
- 'relatives' => array ($vp->mask)
- ))
- )
- {
- return False;
- }
-
- $size = $this->get_size (array(
- 'string' => $rp->real_full_path,
- 'relatives' => array ($rp->mask)
- )
- );
-
- $this->set_attributes(array(
- 'string' => $vp->fake_full_path,
- 'relatives' => array ($vp->mask),
- 'attributes' => array (
- 'link_directory' => $rp->real_leading_dirs,
- 'link_name' => $rp->real_name,
- 'size' => $size
- )
- )
- );
-
- $this->correct_attributes (array(
- 'string' => $vp->fake_full_path,
- 'relatives' => array ($vp->mask)
- )
- );
-
- return True;
- }
-
- /*
- * See vfs_shared
- */
- //upd 2004-09-16 viniciuscb: custom fields support
- //upd 2004-10-11 viniciuscb: proper_id for file: accepts:
- // $data['proper_id'], for an all-ready proper id, else
- // $data['prefix'] for a string with the prefix
- // (this can only be used if no proper_id
- // specified now or before)
- // $data['ptype'] For a specification of file type
- // $data['prefix_type'] (FUTURE)
- // if none specified, prefix will be user_lid
- function set_attributes ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT),
- 'attributes' => array ()
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- /*
- * This is kind of trivial, given that set_attributes () can change
- * owner_id, size, etc.
- */
- if (!$this->acl_check (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'operation' => PHPGW_ACL_EDIT
- ))
- )
- {
- return False;
- }
-
- if (!$this->file_exists (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- ))
- )
- {
- return False;
- }
-
- /*
- * All this voodoo just decides which attributes to update
- * depending on if the attribute was supplied in the 'attributes'
- * array
- */
-
- $ls_array = $this->ls (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'checksubdirs' => False,
- 'nofiles' => True
- )
- );
- $record = $ls_array[0];
-
- //handles mime type
-
- /* FIXME is mime_type is application/octet-stream, don't believe
- * in passed mime_type and try to find a mime type based in
- * extension */
- /* TODO use mime magic capabilities */
- $mime_id = '';
- if ($data['attributes']['mime_type'] && $data['attributes']['mime_type'] != 'application/octet-stream')
- {
- $mime_data = array (
- 'mime' => $data['attributes']['mime_type'],
- 'extension' => @$this->get_file_extension($data['string'])
- );
-
- if (!$type = $this->vfs_mimetypes->get_type($mime_data))
- {
- $type = $this->vfs_mimetypes->add_filetype($mime_data);
- }
- }
- //try to find a compatible mime/type based in file extension
- else
- {
- $mime_data = array (
- 'extension' => @$this->get_file_extension($data['string'])
- );
-
- if (!$type = $this->vfs_mimetypes->get_type($mime_data))
- {
- $type = $this->vfs_mimetypes->add_filetype($mime_data);
-
- }
-
- /* Finally if the file has no extension and no mime (or mime
- * defined as application/octet-stream, will consider file type
- * as application/octet-stream
- */
- if (!$type)
- {
- $type = $this->vfs_mimetypes->get_type(array(
- 'mime' => 'application/octet-stream'
- ));
- }
-
- }
-
- //will only change mime_type if mime_type was specified in attribts
- if ($data['attributes']['mime_type'])
- {
- unset($data['attributes']['mime_type']);
- $data['attributes']['mime_id'] = $type['mime_id'];
- }
-
- /*
- Indicate that the EDITED_COMMENT operation needs to be journaled,
- but only if the comment changed
- */
- if (array_key_exists('comment',$data['attributes']) &&
- $data['attributes']['comment'] != $record['comment'])
- {
- $edited_comment = 1;
- }
-
- #** proper id treating **
-
- #1.User does not specified proper_id, and file had not any proper id
- #generates a new proper_id
- if(!$data['attributes']['proper_id'] && $data['attributes']['prefix'])
- {
- $prefix = $data['attributes']['prefix'];
-
-// $data['attributes']['proper_id'] = $this->generate_proper_id($data['attributes']['prefix'],$type['proper_id']);
- $data['attributes']['proper_id'] = $this->generate_proper_id($data['attributes']['prefix'],$data['attributes']['ptype']);
- }
- #2.User specified proper_id
- #check if this id is not being used. If it is, do not change.
- elseif ($data['attributes']['proper_id'])
- {
- $this->db->select('phpgw_vfs2_files','proper_id',array('proper_id'=>$data['attributes']['proper_id']));
-
- if ($this->db->next_record())
- {
- unset($data['attributes']['proper_id']);
- }
-
- }
-
- //To be sure that olny fields from phpgw_vfs2_files will be inserted
- $update_data = array();
- foreach ($data['attributes'] as $key => $val)
- {
- if ($this->attribute_tables[$key] == 'phpgw_vfs2_files' || $key == 'mime_id')
- $update_data[$key] = $val;
- }
-
- $where = array(
- 'file_id' => $record['file_id']
- );
-
- if ($edited_comment)
- {
- $this->vfs_versionsystem->save_snapshot($record['file_id'],
- VFS_OPERATION_EDITED_COMMENT);
- }
-
- if (count($update_data)) //if false, there is nothing to do
- {
- $res = $this->db->update('phpgw_vfs2_files',$update_data,$where,
- __LINE__,__FILE__);
-
- if ($res)
- {
- //custom fields storing
- $customfields = $this->vfs_customfields->get_customfields('customfield_name');
- foreach ($customfields as $custom_name => $custom_val)
- {
- if (array_key_exists($custom_name,$data['attributes']))
- {
- $store_array[$record['file_id']][$custom_name] = $data['attributes'][$custom_name];
-
- }
- }
-
- if ($store_array)
- {
- $this->vfs_customfields->store_fields($store_array);
- }
-
- if ($edited_comment)
- {
- $this->vfs_versionsystem->commit($record['file_id']);
- }
- return True;
- }
- }
- return false;
- }
-
- /*!
- @function correct_attributes
- @abstract Set the correct attributes for 'string' (e.g. owner)
- @param string File/directory to correct attributes of
- @param relatives Relativity array
- @result Boolean True/False
- */
- function correct_attributes ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT)
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- if ($p->fake_leading_dirs != $this->fakebase && $p->fake_leading_dirs != '/')
- {
- $ls_array = $this->ls (array(
- 'string' => $p->fake_leading_dirs,
- 'relatives' => array ($p->mask),
- 'checksubdirs' => False,
- 'nofiles' => True
- )
- );
- $set_attributes_array = Array(
- 'owner_id' => $ls_array[0]['owner_id']
- );
- }
- elseif (preg_match ("+^$this->fakebase\/(.*)$+U", $p->fake_full_path, $matches))
- {
- $set_attributes_array = Array(
- 'owner_id' => $GLOBALS['phpgw']->accounts->name2id ($matches[1])
- );
- }
- else
- {
- $set_attributes_array = Array(
- 'owner_id' => 0
- );
- }
-
- $this->set_attributes (array(
- 'string' => $p->fake_full_name,
- 'relatives' => array ($p->mask),
- 'attributes' => $set_attributes_array
- )
- );
-
- return True;
- }
-
- /*
- * See vfs_shared
- */
- function file_type ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT)
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- if (!$this->acl_check (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'operation' => PHPGW_ACL_READ,
- 'must_exist' => True
- ))
- )
- {
- return False;
- }
-
- if ($p->outside)
- {
- if (is_dir ($p->real_full_path))
- {
- return ('Directory');
- }
-
- /*
- We don't return an empty string here, because it may still
- match with a database query because of linked directories
- */
- }
-
- /*
- We don't use ls () because it calls file_type () to determine if
- it has been passed a directory
- */
-
- //TODO VCB change this also with filetypes class
-
- $db2 = $GLOBALS['phpgw']->db;
-
- $db2->query ("SELECT mime_id
- FROM phpgw_vfs2_files
- WHERE directory='".$db2->db_addslashes($p->fake_leading_dirs_clean)."'
- AND name='".$db2->db_addslashes($p->fake_name_clean)."'", __LINE__, __FILE__);
- $db2->next_record ();
-
- $file_record = $db2->Record;
-
- $mime = $this->vfs_mimetypes->get_type(array(
- 'mime_id' => $file_record['mime_id']
- ));
-
- $mime_type = $mime['mime'];
-
- if(!$mime_type)
- {
- $extension = $this->get_file_extension($p->fake_name_clean);
-
- if (!$res = $this->vfs_mimetypes->get_type(array(
- 'extension' => $extension)) )
- {
- $res = $this->vfs_mimetypes->add_filetype(array(
- 'extension' => $extension));
-
- if ($res)
- {
- $this->db->update('phpgw_vfs2_files',
- array('mime_id' => $res['mime_id']),
- array('directory' => $p->fake_leading_dirs_clean,
- 'name' => $p->fake_name_clean
- ),__LINE__,__FILE__);
- }
-
- }
- $mime_type = $res['mime'];
-
- }
-
- return $mime_type;
- }
-
- /*
- * See vfs_shared
- */
- function file_exists ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT),
- 'allow_outside' => true
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- if ($p->outside)
- {
- if (!$data['allow_outside'])
- {
- return false;
- }
- $rr = file_exists ($p->real_full_path);
-
- return $rr;
- }
-
- //TODO id: primary field
- $db2 =& $GLOBALS['phpgw']->db;
- $db2->query ("SELECT name FROM phpgw_vfs2_files WHERE directory='".
- $GLOBALS['phpgw']->db->db_addslashes($p->fake_leading_dirs_clean)."' AND name='".
- $GLOBALS['phpgw']->db->db_addslashes($p->fake_name_clean)."'", __LINE__, __FILE__);
-
- if ($db2->num_rows())
- {
- return True;
- }
- else
- {
- return False;
- }
- }
-
- /*
- * See vfs_shared
- */
- function get_size ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT),
- 'checksubdirs' => True
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- if (!$this->acl_check (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'operation' => PHPGW_ACL_READ,
- 'must_exist' => True
- ))
- )
- {
- return False;
- }
-
- /*
- WIP - this should run through all of the subfiles/directories in the directory and tally up
- their sizes. Should modify ls () to be able to return a list for files outside the virtual root
- */
- if ($p->outside)
- {
- $size = filesize ($p->real_full_path);
-
- return $size;
- }
-
- foreach($this->ls (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'checksubdirs' => $data['checksubdirs'],
- 'nofiles' => !$data['checksubdirs']
- )) as $file_array)
- {
- /*
- Make sure the file is in the directory we want, and not
- some deeper nested directory with a similar name
- */
-/*
- if (@!ereg ('^' . $file_array['directory'], $p->fake_full_path))
- {
- continue;
- }
-*/
-
- $size += $file_array['size'];
- }
-
- //TODO VCB update this when id be primary key
- if ($data['checksubdirs'])
- {
- $query = $GLOBALS['phpgw']->db->query ("SELECT size FROM phpgw_vfs2_files WHERE directory='".
- $GLOBALS['phpgw']->db->db_addslashes($p->fake_leading_dirs_clean)."' AND name='".
- $GLOBALS['phpgw']->db->db_addslashes($p->fake_name_clean)."'",__LINE__,__FILE__);
- $GLOBALS['phpgw']->db->next_record ();
- $size += $GLOBALS['phpgw']->db->Record[0];
- }
-
- return $size;
- }
-
- /*!
- @function checkperms
- @abstract Check if $this->working_id has write access to create files in $dir
- @discussion Simple call to acl_check
- @param string Directory to check access of
- @param relatives Relativity array
- @result Boolean True/False
- */
- function checkperms ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT)
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- if (!$this->acl_check (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask),
- 'operation' => PHPGW_ACL_ADD
- ))
- )
- {
- return False;
- }
- else
- {
- return True;
- }
- }
-
- /*
- * See vfs_shared
- * If $data['readlink'] then a readlink is tryed on the real file
- * If $data['file_id'] then the file_id is used instead of a path
- */
- //upd 2004-09-16 viniciuscb: Support for custom fields
- function ls ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT),
- 'checksubdirs' => True,
- 'mime_type' => False,
- 'nofiles' => False,
- 'orderby' => 'directory,name',
- 'backups' => false, /* show or hide backups */
- 'files_specified' => array(),
- 'allow_outside' => true,
- 'modifiedby_information' => false
- );
-
- //check if orderby is a valid field (or is composed by valid fields)
- //this prevents a sql error that happens when sort field is invalid.
- if ($data['orderby'])
- {
- $fields = explode(',',$data['orderby']);
- foreach ($fields as $field_name)
- {
- if ($this->attribute_tables[trim($field_name)] != 'phpgw_vfs2_files')
- {
- unset($data['orderby']);
- break;
- }
- }
- }
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
- $dir = $p->fake_full_path;
-
- //Abiliy to show or not backup files -> put it in sql queries
- $sql_backups = ($data['backups']) ? '' : ' AND is_backup=\'N\' ';
-
-
- /* If they pass us a file or 'nofiles' is set, return the info for $dir only */
- if (@$data['file_id']
- || ((($type = $this->file_type (array(
- 'string' => $dir,
- 'relatives' => array ($p->mask)
- )) != 'Directory'))
- || ($data['nofiles'])) && !$p->outside
- )
- {
-
- /* SELECT all, the, attributes */
- $sql = 'SELECT ';
-
- foreach ($this->attributes as $num => $attribute)
- {
- if ($this->attribute_tables[$attribute] == 'phpgw_vfs2_files')
- {
- if ($num)
- {
- $sql .= ', ';
- }
-
- $sql .= $attribute;
- }
- }
-
- $sql .= ",mime_id,is_backup FROM phpgw_vfs2_files WHERE ";
-
-
- if (@$data['file_id'])
- {
- $sql .= 'file_id='.(int)$data['file_id'].$sql_backups;
- }
- else
- {
- $sql .= "directory='".$GLOBALS['phpgw']->db->db_addslashes($p->fake_leading_dirs_clean).
- "' AND name='".$GLOBALS['phpgw']->db->db_addslashes($p->fake_name_clean)."'".$sql_backups;
- }
-
-// echo " select1: dir=".$p->fake_leading_dirs_clean." name=".$p->fake_name_clean."
\n";
- $query = $GLOBALS['phpgw']->db->query ($sql, __LINE__, __FILE__);
-
- $GLOBALS['phpgw']->db->next_record ();
- $record = $GLOBALS['phpgw']->db->Record;
-
- if (!$record)
- {
- return array();
- }
-
- /* We return an array of one array to maintain the standard */
- $rarray = array ();
- foreach($this->attributes as $attribute)
- {
- switch ($attribute)
- {
-
- case 'mime_type':
- if (!is_numeric($record['mime_id']))
- {
- //no mime type registered for file, must find one and if not exist add one.
- $extension = $this->get_file_extension($record['name']);
-
- if (!$res = $this->vfs_mimetypes->get_type(array('extension' => $extension)))
- {
- $res = $this->vfs_mimetypes->add_filetype(array('extension' => $extension));
- }
-
- if ($res)
- {
- $this->db->update('phpgw_vfs2_files',
- array('mime_id' => $res['mime_id']),
- array('directory' => $p->fake_leading_dirs_clean,
- 'name' => $p->fake_name_clean
- ),__LINE__,__FILE__);
-
- }
- }
- else
- {
- $res = $this->vfs_mimetypes->get_type(array(
- 'mime_id' => $record['mime_id']
- ));
- }
-
- $record['mime_type'] = $res['mime'];
- $record['mime_friendly'] = $res['friendly'];
- break;
- case 'created':
- case 'modified':
- $record[$attribute] = $this->db->from_timestamp($record[$attribute]);
- break;
- }
-
-
- $rarray[0][$attribute] = $record[$attribute];
- }
- if ($this->file_actions && @$data['readlink']) // test if file is a symlink and get it's target
- {
- $rarray[0]['symlink'] = @readlink($p->real_full_path);
- }
-
- //handle custom fields
- reset($rarray);
- while(list($key,$val) = each($rarray))
- {
- $custom =& $this->vfs_customfields->get_fields_by_fileid($val['file_id']);
-
- if ($custom)
- {
- $rarray[$key] = array_merge($val,$custom);
- }
- }
-
- return $rarray;
- }
-
- //WIP - this should recurse using the same options the virtual part of ls () does
- /* If $dir is outside the virutal root, we have to check the file system manually */
- if ($p->outside)
- {
- if (!$data['allow_outside'])
- {
- return false;
- }
-
- if ($this->file_type (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array ($p->mask)
- )) == 'Directory'
- && !$data['nofiles']
- )
- {
- $dir_handle = opendir ($p->real_full_path);
- while ($filename = readdir ($dir_handle))
- {
- if ($filename == '.' || $filename == '..')
- {
- continue;
- }
-
- $rarray[] = $this->get_real_info (array(
- 'string' => $p->real_full_path . SEP . $filename,
- 'relatives' => array ($p->mask)
- )
- );
- }
- }
- else
- {
- $rarray[] = $this->get_real_info (array(
- 'string' => $p->real_full_path,
- 'relatives' => array ($p->mask)
- )
- );
- }
-
- //handle custom fields
- reset($rarray);
- while(list($key,$val) = each($rarray))
- {
- $custom =& $this->vfs_customfields->get_fields_by_fileid($val['file_id']);
-
- if ($custom)
- {
- $rarray[$key] = array_merge($val,$custom);
- }
- }
-
- return $rarray;
- }
-
- /* $dir's not a file, is inside the virtual root, and they want to check subdirs */
- /* SELECT all, the, attributes FROM phpgw_vfs WHERE file=$dir */
-
-// echo "DIR_CLEAN: ".$dir_clean."
";
-
- $dir_clean = $this->clean_string (array ('string' => $dir));
-
-
- //This query must be fast and only bring things with the correct
- //permissions. So, I'll get the list of all groups the current user
- //belongs, get the list of the current dir and all parents over it
- //and pass all these things in one query.
-
- //gets the id of all groups $account_id belongs to
- $groups = $GLOBALS['phpgw']->accounts->membership($GLOBALS['phpgw_info']['user']['account_id']);
-
- foreach($groups as $group)
- {
- $accounts[] = $group['account_id'];
- }
-
- $accounts[] = $GLOBALS['phpgw_info']['user']['account_id'];
- $accounts[] = 0; //default permission for all users
-
- $paths = array();
-
- $dir_exploded = explode('/',$dir_clean);
- $dir_parts = count($dir_parts);
-
- for ($i=$dir_parts-1;$i>=0;$i--)
- {
- $res = implode('/',array_slice($dir_explode,0,$i));
- $paths[] = "'".($res) ? $res : '/'."'";
- }
-
- if (!$data['backups'])
- {
- $append .= " AND fls.is_backup = 'N'";
- }
-
-
- if ($data['mime_type'])
- {
- $other_where .= " AND mime.mime = '".$data['mime_type']."'";
- $mime_join = ' INNER JOIN phpgw_vfs2_mimetypes mime ON fls.mime_id = mime.mime_id';
- }
-
- //orderby
- $orderby = explode(',',$data['orderby']);
-
- foreach($orderby as $key =>$orderby_instance)
- {
- $orderby[$key] = 'fls.'.$orderby_instance;
- }
-
-
- $append .= ' ORDER BY '.implode(',',$orderby);
-
- $dir_rule = $data['checksubdirs'] ? "fls.directory LIKE '".$dir_clean."%'" : "fls.directory = '".$dir_clean."'";
- //SQL to get all files in current dir, except those ones that user
- //does not have permission to see
- $sql = "SELECT DISTINCT fls.*
- FROM phpgw_vfs2_files fls
- $mime_join
- LEFT JOIN phpgw_vfs2_shares sh ON fls.file_id = sh.file_id
- WHERE ".$dir_rule." AND
- ( (sh.account_id in (".implode(',',$accounts).") AND fls.shared = 'Y') OR
- (sh.account_id is NULL AND fls.shared = 'N') OR
- fls.owner_id = ".$GLOBALS['phpgw_info']['user']['account_id']." )
- $other_where $append";
-
-
-// echo "\n$sql\n";
-
- $query = $GLOBALS['phpgw']->db->query ($sql, __LINE__, __FILE__);
-
- $rarray = array ();
- for ($i = 0; $GLOBALS['phpgw']->db->next_record (); $i++)
- {
- $record = $GLOBALS['phpgw']->db->Record;
-
-
- /* Further checking on the directory. This makes sure /home/user/test won't match /home/user/test22 */
- if (@!ereg ("^$dir(/|$)", $record['directory']))
- {
- continue;
- }
-
- /* If they want only this directory, then $dir should end without a trailing / */
- if (!$data['checksubdirs'] && ereg ("^$dir/", $record['directory']))
- {
- continue;
- }
-
- foreach($this->attributes as $attribute)
- {
- switch($attribute)
- {
- case 'mime_type':
- if (!is_numeric($record['mime_id']))
- {
- $extension = $this->get_file_extension($record['name']);
- if(!$res = $this->vfs_mimetypes->get_type(array(
- 'extension' => $extension)) )
- {
- $res = $this->vfs_mimetypes->add_filetype(array(
- 'extension'
- ));
-
- if ($res)
- {
- $this->db->update('phpgw_vfs2_files',
- array('mime_id' => $res['mime_id']),
- array('directory' => $p->fake_leading_dirs_clean,
- 'name' => $p->fake_name_clean
- ),__LINE__,__FILE__);
- }
-
- }
- }
- else
- {
- $res = $this->vfs_mimetypes->get_type(array(
- 'mime_id' => $record['mime_id']
- ));
- }
-
- $record['mime_type'] = $res['mime'];
- $rarray[$i]['mime_friendly'] = $res['friendly'];
- break;
- case 'created':
- case 'modified':
- $record[$attribute] = $this->db->from_timestamp($record[$attribute]);
- break;
- }
-
- $rarray[$i][$attribute] = $record[$attribute];
- }
- }
-
- //handle custom fields
- reset($rarray);
- while(list($key,$val) = each($rarray))
- {
- $custom =& $this->vfs_customfields->get_fields_by_fileid($val['file_id']);
-
- if ($custom)
- {
- $rarray[$key] = array_merge($val,$custom);
- }
- }
-
- return $rarray;
- }
-
- /*
- * See vfs_shared
- */
- function update_real ($data,$recursive = False)
- {
- //FIXME this method does not work when there are registrys in
- //database, but not in filesystem. It starts corromping the
- //database by putting wrong things that are in the partition root.
- //return false;
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT)
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- if (file_exists ($p->real_full_path))
- {
- if (is_dir ($p->real_full_path))
- {
- $dir_handle = opendir ($p->real_full_path);
- while ($filename = readdir ($dir_handle))
- {
- if ($filename == '.' || $filename == '..')
- {
- continue;
- }
-
- $rarray[] = $this->get_real_info (array(
- 'string' => $p->fake_full_path . '/' . $filename,
- 'relatives' => array (RELATIVE_NONE)
- )
- );
- }
- }
- else
- {
- $rarray[] = $this->get_real_info (array(
- 'string' => $p->fake_full_path,
- 'relatives' => array (RELATIVE_NONE)
- )
- );
- }
-
- if (!is_array ($rarray))
- {
- $rarray = array ();
- }
-
- foreach($rarray as $num => $file_array)
- {
- $p2 = $this->path_parts (array(
- 'string' => $file_array['directory'] . '/' . $file_array['name'],
- 'relatives' => array (RELATIVE_NONE)
- )
- );
-
- /* Note the mime_type. This can be "Directory", which is
- * how we create directories */
- $set_attributes_array = Array(
- 'size' => $file_array['size'],
- 'mime_type' => $file_array['mime_type']
- );
-
- if (!$this->file_exists (array(
- 'string' => $p2->fake_full_path,
- 'relatives' => array (RELATIVE_NONE)
- ))
- )
- {
- $this->touch (array(
- 'string' => $p2->fake_full_path,
- 'relatives' => array (RELATIVE_NONE)
- )
- );
- }
- $this->set_attributes (array(
- 'string' => $p2->fake_full_path,
- 'relatives' => array (RELATIVE_NONE),
- 'attributes' => $set_attributes_array
- )
- );
- if ($recursive && $file_array['mime_type'] == 'Directory')
- {
- $dir_data = $data;
- $dir_data['string'] = $file_array['directory'] . '/' . $file_array['name'];
- $this->update_real($dir_data,$recursive);
- }
- }
- }
- }
-
- /*!
- * @function regenerate_database
- * @abstract This function regenerates the full database. It is like
- * the function update_real, but instead, it works for all files in a
- * folder, fixing all broken regs in a database (if it exists), or
- * recreating it.
- * @author Vinicius Cubas Brand
- */
- function regenerate_database()
- {
-
- }
-
- /* Helper functions */
-
- /* This fetchs all available file system information for string (not using the database) */
- function get_real_info ($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT)
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- if (is_dir ($p->real_full_path))
- {
- $mime_type = 'Directory';
- }
- else
- {
- $mime_type = $this->get_ext_mime_type (array(
- 'string' => $p->fake_name
- )
- );
-
-/* if($mime_type)
- {
- $GLOBALS['phpgw']->db->query ("UPDATE phpgw_vfs2_files as file, phpgw_vfs2_mimetypes as mime SET mime.mime_id=file.mime_id WHERE mime.mime='".$mime_type."' AND file.directory='".
- $GLOBALS['phpgw']->db->db_addslashes($p->fake_leading_dirs_clean)."' AND file.name='".
- $GLOBALS['phpgw']->db->db_addslashes($p->fake_name_clean)."'",
- __LINE__, __FILE__);
- }*/
- }
-
- $size = filesize ($p->real_full_path);
- $rarray = array(
- 'directory' => $p->fake_leading_dirs,
- 'name' => $p->fake_name,
- 'size' => $size,
- 'mime_type' => $mime_type
- );
-
- return ($rarray);
- }
-
-
- /*!
- * @function search
- * @abstract This function returns the files that have a field with
- * keyword
- *
- * @author Vinicius Cubas Brand
- */
- function search($keyword,$fields=null,$is_backup='N')
- {
- //the fields in which the keyword will be searched
- $searchable_fields = array(
- 'created',
- 'comment',
- 'app',
- 'directory',
- 'name',
- 'link_directory',
- 'link_name',
- 'version',
- 'proper_id'
- );
-
- if (is_array($fields))
- {
- $tmp = array_diff($searchable_fields,$fields);
- $searchable_fields = array_diff($searchable_fields,$tmp);
- }
-
- foreach ($searchable_fields as $val)
- {
- $sf[] = $val." LIKE '%$keyword%'";
- }
-
- $where = implode(' OR ',$sf);
-
- $sql = "SELECT file_id
- FROM phpgw_vfs2_files
- WHERE $where
- AND is_backup = '$is_backup'";
-
- $this->db->query($sql,__LINE__,__FILE__);
-
- $res = array();
- while ($this->db->next_record())
- {
- $res[] = $this->db->Record['file_id'];
- }
-
- //search in the custom fields
- $res = array_unique(array_merge($res,$this->vfs_customfields->search_files($keyword,$fields)));
-
- sort($res);
-
- return $res;
- }
-
- /*!
- * @function get_file_extension
- * @abstract This function returns the file extension for a file.
- *
- * @author Vinicius Cubas Brand
- */
- function get_file_extension($filename)
- {
- $ext = explode('.',$filename);
-
- $bla = array_pop($ext);
-
- if (count($ext))
- {
- return $bla;
- }
-
- return '';
- }
-
- /*!
- * @function get_file_id
- * @abstract This function returns the file id for a file, false on eror
- * @param string, relatives
- *
- * @author Vinicius Cubas Brand
- */
- function get_file_id($data)
- {
- if (!is_array ($data))
- {
- $data = array ();
- }
-
- $default_values = array
- (
- 'relatives' => array (RELATIVE_CURRENT),
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- $p = $this->path_parts (array(
- 'string' => $data['string'],
- 'relatives' => array ($data['relatives'][0])
- )
- );
-
- $sql = "SELECT file_id
- FROM phpgw_vfs2_files
- WHERE directory='".$this->db->db_addslashes($p->fake_leading_dirs_clean)."'
- AND name='".$this->db->db_addslashes($p->fake_name_clean)."'";
-
- $query = $this->db->query ($sql , __LINE__, __FILE__);
- $this->db->next_record ();
-
- return $this->db->Record['file_id'];
- }
-
- /*!
- * @function id2name
- * @abstract This function returns an array with all information about
- * a file
- * @param string, relatives
- *
- * @author Vinicius Cubas Brand
- */
- function id2name($id)
- {
- $res = $this->db->select('phpgw_vfs2_files','*',
- array('file_id'=>$id),__LINE__,__FILE__);
-
- if($this->db->next_record())
- {
- $result = $this->db->Record;
-
- $res = $this->vfs_mimetypes->get_type(array(
- 'mime_id' => $result['mime_id']
- ));
-
- $result['mime_type'] = $res['mime'];
- $result['mime_friendly'] = $res['friendly'];
-
- return $result;
- }
-
- return array();
- }
-
- //TODO should generate a new name if archive exists, or have some other
- //sort of smart error handling.
- function compress($data)
- {
- $compression_handlers = array(
-// 'gz' => 'gzip',
-// 'bz2' => 'bzip',
-// 'tar' => 'tar',
- 'zip' => 'zip'
- );
-
- if (!is_array($data['files']) || !$data['name'])
- {
- return false;
- }
-
- $default_values = array
- (
- 'type' => 'zip',
- 'relatives' => array(RELATIVE_CURRENT),
- 'prefix' => $GLOBALS['phpgw_info']['user']['account_lid'],
- 'ptype' => ''
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- if (!$data['type'] || !array_key_exists($data['type'],$compression_handlers))
- {
- //error: inexistent type given
- return false;
- }
-
-
- //put extension in archive name, if not exists
- if ($this->get_file_extension($data['name']) != $data['type'])
- {
- if ($data['type'] == 'zip' || $data['type'] == 'tar')
- {
- $data['name'] .= '.' . $data['type'];
- }
- else
- {
- $data['name'] .= '.tar.' . $data['type'];
- }
- }
-
- //last element in array $data['relatives'] is the id of destiny
- $dest_relativity = (count($data['relatives']))?array_pop($data['relatives']):RELATIVE_CURRENT;
-
- $dest = $this->path_parts(array(
- 'string' => $data['name'],
- 'relatives' => $dest_relativity
- ));
-
- if ($this->file_exists(array(
- 'string' => $dest->fake_full_path,
- 'relatives' => $dest->mask )))
- {
- //overwrite handling
-
- //check if acl allow overwriting
- if (!$this->acl_check(array(
- 'string' => $dest->fake_full_path,
- 'relatives' => $dest->mask,
- 'operation' => PHPGW_ACL_EDIT))
- )
- {
- //error: cannot overwrite (HANDLE THIS)
- return false;
- }
- }
- else
- {
- //Add handling
-
- //check acl
- if (!$this->acl_check(array(
- 'string' => $dest->fake_leading_dirs,
- 'relatives' => $dest->mask,
- 'operation' => PHPGW_ACL_ADD))
- )
- {
- //error: cannot add in dir
- return false;
- }
- }
-
- $count_rels = count($data['relatives']);
-
- reset($data['relatives']);
- foreach($data['files'] as $filename)
- {
- if (!($relative = current($data['relatives'])))
- {
- $relative = RELATIVE_CURRENT;
- }
-
- $p = $this->path_parts(array(
- 'string' => $filename,
- 'relatives' => array($relative)
- ));
-
- if ($this->acl_check(array(
- 'string' => $p->fake_full_path,
- 'relatives' => $p->mask,
- 'operation' => PHPGW_ACL_READ,
- 'must_exist' => true )) )
- {
- $filenames[] = $p->real_full_path;
- }
- else
- {
- //catch error: file not exists or no permission
- }
-
- next($data['relatives']);
- }
-
- //Save file in tmp folder, then move it to its definitive place.
- //This will handle file overwrites and journalling entries.
-
- $tmp_dir = $GLOBALS['phpgw_info']['server']['temp_dir'];
- $tmp_filename = $tmp_dir.'/'.$this->random_filename();
-
- $archive_opts = array(
- 'basedir' => $dest->real_leading_dirs,
- 'inmemory' => 0,
- 'overwrite' => 1, //provisory, todo error handling
- 'recurse' => 1,
- 'storepaths' => 1,
- 'level' => 9//compression level, 9 is max, 0 is none, 3 ok
- );
-
-/* #Didn't work - class.archive.inc.php
- $compression_class = $compression_handlers[$data['type']].'_file';
-
- require_once(PHPGW_API_INC.'/class.archive.inc.php');
-
- $arch = new $compression_class($tmp_filename);
- $arch->set_options($archive_opts);
- $arch->add_files($filenames);
- $arch->create_archive();
-
- $type_array = $this->vfs_mimetypes->get_type(array('extension'=>$data['type']));
- $arch_mime = $type_array['mime'];*/
-
-
- switch($data['type'])
- {
- case 'zip':
- $zip =& CreateObject('phpgwapi.PclZip',$tmp_filename);
-
- //FIXME not $dest->real_leading_dirs, but the path to be
- //removed from files
- $zip->create($filenames,PCLZIP_OPT_REMOVE_PATH,$dest->real_leading_dirs);
- $arch_mime = 'application/x-zip-compressed';
- break;
-
- default:
- /*
- $tar =& CreateObject('phpgwapi.Archive_Tar',$tmp_filename,$data['type']);
- //FIXME not $dest->real_leading_dirs, but the path to be
- //removed from files
- if (!$tar->createModify($filenames,'',$dest->real_leading_dirs.'/'))
- {
- //TODO throw error
- }
- $arch_mime = 'application/x-gzip';
- break;
- */
- }
-
- /* VOILA! now the archive is created!!! but it is yet in /tmp and
- * have no entry in the database and is not in its correct dir.
- * The next and final step is then to make these tasks. */
-
- $dest_relativity = $data['relatives'][count($data['relatives'])-1];
-
- # ----------------------------------------------------------- #
- # All code under here copied from filescenter->bo->fileUpload #
- # ----------------------------------------------------------- #
-
- $file_comment = "Archive contents:\n\n".implode("\n",$data['files']);
- $file_comment = substr(0,255,$file_comment);
-
- # Check to see if the file exists in the database, and get
- # its info at the same time
- $ls_array = $this->ls(array(
- 'string'=> $data['name'],
- 'relatives' => array($dest_relativity),
- 'checksubdirs' => False,
- 'nofiles' => True
- ));
-
- $fileinfo = $ls_array[0];
-
- if($fileinfo['name'])
- {
- if($fileinfo['mime_type'] == 'Directory')
- {
- $messages[]= $GLOBALS['phpgw']->common->error_list(array(lang('Cannot replace %1 because it is a directory', $fileinfo['name'])));
- return false;
- }
- }
-
- #overwriting
- if($fileinfo['name'] && $fileinfo['deleteable'] != 'N')
- {
- $tmp_arr=array(
- 'string'=> $data['name'],
- 'relatives' => array($dest_relativity),
- 'attributes' => array(
- 'owner_id' => $GLOBALS['phpgw_info']['user']['account_id'],
- 'modifiedby_id' => $GLOBALS['phpgw_info']['user']['account_id'],
- 'modified' => date('Y-m-d'),
- 'mime_type' => $arch_mime,
- 'size' => filesize($tmp_filename),
- 'deleteable' => 'Y',
- 'comment' => $file_comment,
- 'prefix' => $data['prefix'],
- 'ptype' => $data['ptype']
- #if overwriting, do not change.
- #TODO rethink/decide policy for that
- #'prefix' => $otherelms['prefix'.$file_number])
-
- )
- );
- $this->set_attributes($tmp_arr);
-
- $tmp_arr=array(
- 'from' => $tmp_filename,
- 'to' => $data['name'],
- 'relatives' => array(RELATIVE_NONE|VFS_REAL, $dest_relativity)
- );
- $this->cp($tmp_arr);
-
- }
- else #creating a new file
- {
- $this->cp(array(
- 'from'=> $tmp_filename,
- 'to'=> $data['name'],
- 'relatives' => array(RELATIVE_NONE|VFS_REAL, $dest_relativity)
- ));
-
- $this->set_attributes(array(
- 'string'=> $data['name'],
- 'relatives' => array($dest_relativity),
- 'attributes'=> array(
- 'comment' => $file_comment,
- 'mime_type' => $arch_mime,
- 'prefix' => $data['prefix'],
- 'ptype' => $data['ptype']
-
- )
- ));
-
- }
- }
-
-
- #two parts: 1: extract files in tmp_dir. 2: move files to dir, adding
- # them in db
- function extract($data)
- {
- $compression_handlers = array(
- 'gz' => 'gzip',
- 'bz2' => 'bzip',
- 'tar' => 'tar',
- 'zip' => 'zip'
- );
-
-
- if (!$data['name'] || !$data['dest'])
- {
- return false;
- }
-
- $default_values = array
- (
- 'relatives' => array(RELATIVE_CURRENT,RELATIVE_CURRENT),
- 'prefix' => $GLOBALS['phpgw_info']['user']['account_lid'],
- 'ptype' => ''
-
- );
-
- $data = array_merge ($this->default_values ($data, $default_values), $data);
-
- if (!$data['type'])
- {
- $data['type'] = strtolower($this->get_file_extension($data['name']));
- }
-
- if (!$data['type'] || !array_key_exists($data['type'],$compression_handlers))
- {
- //error: inexistent type given
- return false;
- }
-
-
- $arch = $this->path_parts (array(
- 'string' => $data['name'],
- 'relatives' => array ($data['relatives'][0])
- ));
-
- $dest = $this->path_parts (array(
- 'string' => $data['dest'],
- 'relatives' => array_pop($data['relatives'])
- ));
-
- //Extract files in tmp folder, then move it to its definitive place.
- //This will handle file overwrites and journalling entries.
-
- $tmp_dir = $GLOBALS['phpgw_info']['server']['temp_dir'];
- $tmp_dirname = $tmp_dir.'/'.$this->random_filename();
-
-
- $tmp_dest = $this->path_parts(array(
- 'string' => $tmp_dirname,
- 'relatives' => array(RELATIVE_NONE|VFS_REAL)
- ));
-
- if ($this->file_exists(array(
- 'string'=> $tmp_dest->fake_full_path,
- 'relatives' => $tmp_dest->mask )))
- {
- $this->rm(array(
- 'string' => $tmp_dest->fake_full_path,
- 'relatives' => $tmp_dest->mask
- ));
- }
-
- $this->mkdir(array(
- 'string' => $tmp_dest->fake_full_path,
- 'relatives' => array($tmp_dest->mask)
- ));
-
-
- # see if user has add permission in destination folder
- if (!$this->acl_check(array(
- 'string' => $dest->fake_full_path,
- 'relatives' => $dest->mask,
- 'operation' => PHPGW_ACL_ADD,
- 'must_exist' => true ))
- )
- {
- return false; //TODO error handling
- }
-
- #extract files
- switch ($data['type'])
- {
- case 'zip':
- $zip =& CreateObject('phpgwapi.PclZip',$arch->real_full_path);
- if (!$zip->extract(PCLZIP_OPT_PATH,$tmp_dest->real_full_path,PCLZIP_OPT_SET_CHMOD,DEFAULT_LOW_PERMS))
- {
- return false; //TODO handle error
- }
- break;
- default:
- return false;
- /*
-
- $archive_opts = array(
- 'basedir' => $tmp_dest->real_full_path,
- 'overwrite' => 1 //provisory, todo error handling
- );
-
- $compression_class = $compression_handlers[$data['type']].'_file';
- $archive_obj = new $compression_class($arch->real_full_path);
- $archive_obj->set_options($archive_opts);
- $archive_obj->extract_files();
- */
-
- /* $tar =& CreateObject('phpgwapi.Archive_Tar',$arch->real_full_path);
- if (!$tar->extract($tmp_dest->real_full_path))
- {
- return false; //TODO handle error
- }
- break;*/
- default:
- return false; //TODO handle error
- }
-
- #refresh db
- $filelist = $this->ls(array(
- 'string' => $tmp_dest->fake_full_path,
- 'relatives' => array($tmp_dest->mask),
- 'checksubdirs' => true,
- 'nofiles' => false
- ));
-
- foreach ($filelist as $file)
- {
- $res = $this->mv(array(
- 'from' => $file['directory'].'/'.$file['name'],
- 'to' => $dest->fake_full_path.'/'.$file['name'],
- 'relatives' => array(RELATIVE_NONE|VFS_REAL,$dest->mask)
- ));
-
- $this->set_attributes(array(
- 'string' => $dest->fake_full_path.'/'.$file['name'],
- 'relatives' => array($dest->mask),
- 'attributes' => array(
- 'prefix' => $data['prefix'],
- 'ptype' => $data['ptype'],
- 'mime_type' => $file['mime_type'],
- 'size' => $file['size']
- )
- ));
- }
-
- return true;
- }
-
- /*!
- * @function random_filename()
- * @abstract Generates a Random Filename
- *
- * @result string
- */
- function random_filename()
- {
- $filename = '';
- $filename_length = 8;
- while (strlen($filename) < $filename_length) {
- $filename .= chr(rand (97,122));
- }
-
- return $filename.'.tmp';
- }
-
- function generate_proper_id($owner_name,$filetype_identifier)
- {
- $prefix = $owner_name.'-'.$filetype_identifier.'-';
- #$prefix = 'P-' . $this->year . '-';
-
- $prefix = str_replace('--','-',$prefix);
-
- $qry = "select max(proper_id) from phpgw_vfs2_files where proper_id like ('$prefix%') AND LENGTH(proper_id) <= ".(strlen($prefix)+4);
-
-// echo $qry;
-// exit();
-
- $this->db->query("select max(proper_id) from phpgw_vfs2_files where proper_id like ('$prefix%') AND LENGTH(proper_id) <= ".(strlen($prefix)+4));
- $this->db->next_record();
- $max = $this->add_leading_zero(array_pop(explode('-',$this->db->f(0))));
- return $prefix . $max;
- }
-
- function add_leading_zero($num)
- {
-/* if ($id_type == "hex")
- {
- $num = hexdec($num);
- $num++;
- $num = dechex($num);
- }
- else
- {
- $num++;
- } */
-
- $num++;
-
- if (is_numeric($num))
- {
- if (strlen($num) == 4)
- $return = $num;
- if (strlen($num) == 3)
- $return = "0$num";
- if (strlen($num) == 2)
- $return = "00$num";
- if (strlen($num) == 1)
- $return = "000$num";
- if (strlen($num) == 0)
- $return = "0001";
- }
- else
- {
- $return = $num;
- }
-
- return strtoupper($return);
- }
-
-
- //import function from old vfs
- function import_vfs()
- {
- $filename = PHPGW_API_INC.'/class.vfs_sql.inc.php';
-
- if (function_exists('file_get_contents'))
- {
- $file_vfs_sql = file_get_contents($filename);
- }
- else
- {
- $fp = fopen($filename,'r');
- $file_vfs_sql = fread($fp,filesize($filename));
- fclose($fp);
- }
-
- $file_vfs_sql = str_replace(
- array('class vfs','function vfs',''),
- array('class vfs_sql_old','function vfs_sql_old'),$file_vfs_sql
- );
-
- eval($file_vfs_sql);
-
- $obj_vfs_sql = new vfs_sql_old();
-
- $obj_vfs_sql->override_acl = true;
-
- $directories = $obj_vfs_sql->ls(array(
- 'string' => '/',
- 'relatives' => array(RELATIVE_ROOT),
- 'checksubdirs' => true,
- 'nofiles' => false,
- 'mime_type' => 'Directory'
- ));
-
- $global_content = $obj_vfs_sql->ls(array(
- 'string' => '/',
- 'relatives' => array(RELATIVE_ROOT),
- 'checksubdirs' => true,
- 'nofiles' => false
- ));
-
- $obj_vfs_sql->override_acl = false;
-
- $this->override_acl = true;
-
- foreach($directories as $key => $dir)
- {
- $dirname = str_replace('//','/',$dir['directory'].'/'.$dir['name']);
- $dir_exists_in_vfs2 = $this->file_exists(array(
- 'string' => $dirname,
- 'relatives' => array(RELATIVE_ROOT),
- 'allow_outside' => false
- ));
-
-
- if ($dir_exists_in_vfs2)
- {
- $dir_is_dir = $this->file_type(array(
- 'string' => $dirname,
- 'relatives' => array(RELATIVE_ROOT)
- )) == 'Directory';
-
- if ($dir_is_dir)
- {
- //good - just add permissions to the old owner
-
- //1. get information about file
-
- $file_info = $this->ls(array(
- 'string' => $dirname,
- 'relatives' => array(RELATIVE_ROOT),
- 'nofiles' => true,
- 'checksubdirs' => false,
- 'allow_outside' => false
- ));
-
- if (!$file_info['proper_id'])
- {
- $this->set_attributes(array(
- 'string' => $dirname,
- 'relatives' => array(RELATIVE_ROOT),
- 'attributes' => array(
- 'prefix' => $GLOBALS['phpgw']->accounts->id2name($dir['owner_id']),
- 'comment' => $dir['comment']
- )
- ));
- }
-
- //if user is not the owner of the file, will
- //add him in the list of authorized personnel
- if (array_key_exists(0,$file_info) && $file_info[0]['owner_id'] != $dir['owner_id'])
- {
- $file_id = $this->get_file_id(array(
- 'string' => $dirname,
- 'relatives' => array(RELATIVE_ROOT)
- ));
-
- if ($file_id != 0)
- {
- if ($dirname != "/" && $dirname != "/home")
- {
- $perms = $this->vfs_sharing->get_permissions($file_id);
- $perms[$dir['owner_id']] = PHPGW_ACL_READ | PHPGW_ACL_ADD | PHPGW_ACL_EDIT | PHPGW_ACL_DELETE;
-
- $this->vfs_sharing->set_permissions(array($file_id => $perms));
- }
-
- }
- else
- {
- //something gone wrong... This should not have
- //happened
- trigger_error('Failed in permission setting of file '.$dirname.' at importing procedure.');
- }
- }
- continue;
- }
- else
- {
- $this->mv(array(
- 'from' => $dirname,
- 'to' => $dirname.'_renamed',
- 'relatives' => array(RELATIVE_ROOT,RELATIVE_ROOT)
- ));
- //error, bacuse wanting to touch a dir that is a
- //file in new vfs
- }
- }
-
- $this->mkdir(array(
- 'string' => $dirname,
- 'relatives' => array(RELATIVE_ROOT)
- ));
-
- unset($dir['file_id']);
-
- $dir['prefix'] = $GLOBALS['phpgw']->accounts->id2name($dir['owner_id']);
-
- $this->set_attributes(array(
- 'string' => $dirname,
- 'relatives' => array(RELATIVE_ROOT),
- 'attributes' => $dir
- ));
- }
-
- foreach($global_content as $file)
- {
- $filename = str_replace('//','/',$file['directory'].'/'.$file['name']);
- $file_exists_in_vfs2 = $this->file_exists(array(
- 'string' => $filename,
- 'relatives' => array(RELATIVE_ROOT),
- 'allow_outside' => false
- ));
-
-
- if ($file['mime_type'] != 'Directory')
- {
- if ($file_exists_in_vfs2)
- {
- $file_is_dir = $this->file_type(array(
- 'string' => $filename,
- 'relatives' => array(RELATIVE_ROOT)
- )) == 'Directory';
-
- if (!$file_is_dir)
- {
- //good - just add permissions to the old owner
-
- //1. get information about file
-
- $file_info = $this->ls(array(
- 'string' => $filename,
- 'relatives' => array(RELATIVE_ROOT),
- 'nofiles' => true,
- 'checksubdirs' => false,
- 'allow_outside' => false
- ));
-
- if (!$file_info['proper_id'])
- {
- $this->set_attributes(array(
- 'string' => $filename,
- 'relatives' => array(RELATIVE_ROOT),
- 'attributes' => array(
- 'prefix' => $GLOBALS['phpgw']->accounts->id2name($file['owner_id']),
- 'comment' => $file['comment']
- )
- ));
- }
-
- //if user is not the owner of the file, will
- //add him in the list of authorized personnel
- if (array_key_exists(0,$file_info) && $file_info[0]['owner_id'] != $file['owner_id'])
- {
- $file_id = $this->get_file_id(array(
- 'string' => $filename,
- 'relatives' => array(RELATIVE_ROOT)
- ));
-
- if ($file_id != 0)
- {
- if ($filename != "/" && $filename != "/home")
- {
- $perms = $this->vfs_sharing->get_permissions($file_id);
- $perms[$file['owner_id']] = PHPGW_ACL_READ | PHPGW_ACL_ADD | PHPGW_ACL_EDIT | PHPGW_ACL_DELETE;
-
- $this->vfs_sharing->set_permissions(array($file_id => $perms));
- }
-
- }
- else
- {
- //something gone wrong... This should not have
- //happened
- trigger_error('Failed in permission setting of file '.$filename.' at importing procedure.');
- }
- }
- continue;
- }
- else
- {
- $this->mv(array(
- 'from' => $filename,
- 'to' => $filename.'_renamed',
- 'relatives' => array(RELATIVE_ROOT,RELATIVE_ROOT)
- ));
- //error, bacuse wanting to touch a file that is a
- //dir in new vfs
- }
-
- }
-
- $this->touch(array(
- 'string' => $filename,
- 'relatives' => array(RELATIVE_ROOT)
- ));
-
- unset($file['file_id']);
-
- $file['prefix'] = $GLOBALS['phpgw']->accounts->id2name($file['owner_id']);
-
- $this->set_attributes(array(
- 'string' => $filename,
- 'relatives' => array(RELATIVE_ROOT),
- 'attributes' => $file
-
- ));
-
- }
- }
- $this->override_acl = false;
- }
-
- # #
- # Functions that treat with application dirs #
- # #
-
- //gets the root of the application files dir
- function get_appfiles_root()
- {
- if ($this->appfiles_root)
- {
- return $this->appfiles_root;
- }
-
- $appfiles_root = '/'.$GLOBALS['phpgw_info']['server']['file_appfolder'];
-
- if ($appfiles_root == '/') //folder not set in setup
- {
- //see if there is a /infolog file in vfs. If have, use it. Else use /appfiles.
- $res = $this->db->select('phpgw_vfs2_files','file_id',array('directory'=>'/','name'=>'infolog'),__LINE__,__FILE__);
- if ($this->db->next_record()) //dir exists
- {
- $appfiles_root = '/infolog';
- }
- else
- {
- $appfiles_root = '/appfiles';
- }
- }
- $this->appfiles_root = $appfiles_root;
- return $appfiles_root;
- }
-
- //is folder belonging to an application (like for instance projects)
- //$path is the virtual path. Pass the real path here seems nonsense now.
- function is_appfolder($path)
- {
- $app_files_root = $this->get_appfiles_root();
-
- return preg_match('/'.str_replace('/',"\\/",$app_files_root).'/',$path);
- }
-
-
- /**
- * Method: get_external_name
- *
- * Given an application name and an id of this application,
- * returns its name.
- */
- function get_external_name($p_appname,$p_appid)
- {
- if (!$this->external_files_info)
- {
- $this->_consult_external_files_info();
- }
-
- if (!$this->external_files_info[$p_appname][$p_appid]['caption'])
- {
- return $GLOBALS['phpgw']->hooks->single(array(
- 'appname' => $p_appname,
- 'location' => 'get_name',
- 'id' => $p_appid
- ));
- }
- else
- {
- return $this->external_files_info[$p_appname][$p_appid]['caption'];
- }
- }
-
- /**
- * Method: get_external_files_info
- *
- * Returns all the external files info. This is good for some applications
- * that need to show all the external files or all the external folders
- */
- function &get_external_files_info()
- {
- if (!$this->external_files_info)
- {
- $this->_consult_external_files_info();
- }
- return $this->external_files_info;
- }
-
- /**
- * Method: _consult_external_files_info
- *
- * Consults the external files info and store it in the vfs
- * object attribute $this->external_files_info
- */
- function _consult_external_files_info()
- {
- //Gets the application dirs that were set as shared, to include them
- //also in the tree
- $application_shared_files = $this->vfs_sharing->get_shares(array(
- 'only_dir' => $this->get_appfiles_root(),
- 'account_id' => $GLOBALS['phpgw_info']['user']['account_id']
- ));
-
- foreach($application_shared_files as $shared_file)
- {
- $shared_file = ereg_replace($this->get_appfiles_root().'\/*','',$shared_file['directory'].'/'.$shared_file['name']);
- $shared_file = ereg_replace('\/*$','',$shared_file);
- $shared_file = explode('/',$shared_file);
-
- $appname = $shared_file[0];
- $appid = $shared_file[1];
-
- $include_also[$appname][] = $appid;
- }
-
- $this->external_files_info = $GLOBALS['phpgw']->hooks->process(array(
- 'location' => 'files_info',
- 'account_id' => $this->userinfo['account_id'],
- 'include_also' => $include_also
- ));
- }
-
- /**
- * Method: set_sharing
- *
- * Sets the file sharing of ONE file to the given ACL
- *
- * Parameters:
- *
- * string - the full string describing the file
- * relatives - the array of relativity
- * permissions - an array with the user id as key, and the permissions
- * (that are a boolean operation of PHPGW_ACLs) as value.
- * If you want to apply a default permission to all users,
- * use the 0 id as key
- */
- function set_sharing($params)
- {
- //sets the file attibute to be 'shared=Y'
- $this->set_attributes(array(
- 'string' => $params['string'],
- 'relatives' => $params['relatives'],
- 'attributes' => array('shared' => 'Y')
- ));
-
- $file_id = $this->get_file_id(array(
- 'string' => $params['string'],
- 'relatives' => $params['relatives']
- ));
-
- $this->vfs_sharing->set_permissions(array($file_id => $params['permissions']));
- }
-
-
- /**
- * Method: unset_sharing
- *
- * Unsets all file sharing and ACL permissions for a file
- *
- * Parameters:
- *
- * string - the full string describing the file
- * relatives - the array of relativity
- */
- function unset_sharing($params)
- {
- $this->set_attributes(array(
- 'string' => $params['string'],
- 'relatives' => $params['relatives'],
- 'attributes' => array('shared' => 'N')
- ));
-
- $file_id = $this->get_file_id(array(
- 'string' => $params['string'],
- 'relatives' => $params['relatives']
- ));
-
- $this->vfs_sharing->remove_all_permissions($file_id);
- }
- }
-?>
diff --git a/phpgwapi/inc/class.vfs_versionsystem.inc.php b/phpgwapi/inc/class.vfs_versionsystem.inc.php
deleted file mode 100644
index 4105161bcd..0000000000
--- a/phpgwapi/inc/class.vfs_versionsystem.inc.php
+++ /dev/null
@@ -1,684 +0,0 @@
- *
- * sponsored by Thyamad - http://www.thyamad.com *
- * ------------------------------------------------------------------------- *
- * Description: File version class handler for VFS (SQL implementation v2) *
- * ------------------------------------------------------------------------- *
- * This program is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU General Public License as published by the *
- * Free Software Foundation; either version 2 of the License, or (at your *
- * option) any later version. *
- \***************************************************************************/
-
- class vfs_versionsystem
- {
-
- /* The high level database handler object */
-// var $db_highlevel;
-
- /* Stores the possible amount number of old file backups; In an
- * inserction, this number will be verified and if there are already
- * $backups backed up for a file, will delete backup of the oldest
- * (although keeping the record of operations). 0 for no backup system
- * and -1 to infinite versions. */
- var $backups;
-
- /* tmp dir (without end slash) to store temporary file backups (when
- * file is snapshotted) */
- var $tmp_dir;
-
- /* Virtual file system base class */
- var $vfs;
-
- /* Stores information about snapshotted files. Array with the file_id
- as index. */
- var $snapshotted_files;
-
- /* Database handling */
- var $db;
-
- /* Now */
- var $now;
-
- var $account_id;
-
- var $last_saved_snapshot=-1;
-
- var $backup_foldername = '_backup';
-
- //Operations that create file backups
- var $backup_operations = array(
- VFS_OPERATION_EDITED
- );
-
- var $attributes = array(
- 'version_id', /* Integer. Unique to each modification. */
- 'file_id', /* Integer. Id of the file that modif. belongs.*/
- 'operation', /* Operation made in modification. */
- 'modifiedby_id', /* phpGW account_id of who last modified */
- 'modified', /* Datetime of modification, in SQL format */
- 'version', /* Version of file prior modification. */
- 'comment', /* Human-readable description of modification. */
- 'backup_file_id', /* file_id of file that is a backup . */
- 'backup_content', /* usable if files are stored in database. */
- 'src', /* source directory in a copy or move operation.*/
- 'dest' /* destination directory in a copy or move operation.*/
- );
-
- /*!
- * @function vfs_versionsystem
- * @abstract Object constructor
- * @author Vinicius Cubas Brand
- */
- function vfs_versionsystem($create_vfs=true)
- {
- //use create_vfs=false and after this use $this->set_vfs to keep the
- // same object (i.e. use reference) in $this->vfs instead of
- // creating a new object.
- if ($create_vfs)
- {
- $this->vfs =& CreateObject('phpgwapi.vfs');
- }
-
- /* FIXME this takes a value defined in the filescenter
- * configuration. Better next time to take a value from global api
- * configuration. must fix here and in the filescenter */
- if (array_key_exists('filescenter',$GLOBALS['phpgw_info']['user']['preferences']))
- {
- $this->backups = $GLOBALS['phpgw_info']['user']['preferences']['filescenter']['vfs_backups'];
- }
- else
- {
- $this->backups = 5;
- }
-
- $this->snapshotted_files = array();
- $this->db = clone($GLOBALS['phpgw']->db);
- $this->now = date('Y-m-d H:i:s');
- $this->account_id = $GLOBALS['phpgw_info']['user']['account_id'];
- $this->tmp_dir = $GLOBALS['phpgw_info']['server']['temp_dir'];
-
- }
-
- /*!
- * @function create_initial_version()
- * @abstract Creates a initial journal entry for a file
- * @description Must be used after a file has been created. Will create
- * an initial journal entry in the database. If somehow
- * the database already have any journal for that file,
- * this method is wrongly called and will do nothing.
- * Also if no file is found with that file_id, fails.
- *
- * @author Vinicius Cubas Brand
- */
- function create_initial_version($file_id)
- {
- if ($GLOBALS['phpgw']->banish_journal)
- {
- return;
- }
-
- $GLOBALS['phpgw']->banish_journal = true;
-
- //See if file exists
- $this->db->select('phpgw_vfs2_files','*',
- array('file_id'=>$file_id), __LINE__,__FILE__);
-
- if (!$this->db->next_record())
- {
- $GLOBALS['phpgw']->banish_journal = false;
- return false;
- }
-
- $file_record = $this->db->Record;
-
- //See if journal for the file already exists
- $this->db->select('phpgw_vfs2_versioning','*',
- array('file_id'=>$file_id),__LINE__,__FILE__);
-
- if ($this->db->next_record())
- {
- $GLOBALS['phpgw']->banish_journal = false;
- return true; //TODO error message
- }
-
- $insert_data = array(
- 'file_id' => $file_record['file_id'],
- 'operation' => VFS_OPERATION_CREATED,
- 'modified' => $this->now,
- 'modifiedby_id' => $this->account_id,
- 'version' => '0.0.0.0'
- );
-
- $res = $this->db->insert('phpgw_vfs2_versioning',$insert_data,null,
- __LINE__,__FILE__);
-
-/* $this->db->update('phpgw_vfs2_files',array(
- 'modified' => $insert_data['modified'],
- 'modifiedby_id' => $insert_data['modifiedby_id']
- ),
- array('file_id' => $insert_data['file_id']).__LINE__,__FILE__
- );*/
-
-
-
- if ($res)
- {
- $GLOBALS['phpgw']->banish_journal = false;
- return true;
- }
-
- $GLOBALS['phpgw']->banish_journal = false;
- return false;
- }
-
- /*!
- * @function save_snapshot()
- * @abstract Saves a snapshot from a file
- * @description Must be called before any modification in a file. After
- * the modification was successful, one must do a vfs_version->commit()
- * Depending of the type of operation and how backups are set, will
- * handle backups. If a commit is not made until the end of the script,
- * no modifications in the journal will be saved.
- *
- * @param $file_id int The file_id
- * @param $operation int A VFS_OPERATION as defined in vfs_shared file
- * @param $other string Its use will differ depending on the operation:
- * Copy,Move: $other contains the fake_full_path_clean of destination
- *
- * @author Vinicius Cubas Brand
- * @result bool
- */
- function save_snapshot($file_id,$operation,$comment='',$other='')
- {
- //Prevent recursive reentrant when working in vfs->copy, f.inst
- if ($GLOBALS['phpgw']->banish_journal)
- {
- return;
- }
-
- $GLOBALS['phpgw']->banish_journal = true;
-
- $this->db->select('phpgw_vfs2_files','*',
- array('file_id'=>$file_id), __LINE__,__FILE__);
-
- if (!$this->db->next_record())
- {
-
- $GLOBALS['phpgw']->banish_journal = false;
- return false;
- }
-
- $file_record = $this->db->Record;
-
- //If already snapshotted, will do a rollback in the old snapshot
- //before make a new one.
- if ($this->snapshotted_files[$file_record['file_id']])
- {
- $this->rollback($file_record['file_id']);
- }
-
- //Create a backup if necessary
- if ($this->backups != 0 && in_array($operation,$this->backup_operations))
- {
- $random_filename = $this->tmp_dir.SEP.$this->random_filename();
-
- $this->vfs->cp(array(
- 'from' => $file_record['directory'].SEP.$file_record['name'],
- 'to' => $random_filename,
- 'relatives' => array(RELATIVE_ROOT,RELATIVE_NONE|VFS_REAL)
- ));
-
- $this->vfs->set_attributes(array(
- 'string' => $random_filename,
- 'relatives' => array(RELATIVE_NONE|VFS_REAL),
- 'attributes' => array('is_backup' => 'Y')
- ));
-
- }
-
- //backup_file_id and backup_data will be set in commit() only.
- $insert_data = array(
- 'file_id' => $file_record['file_id'],
- 'operation' => $operation,
- 'modifiedby_id' => $this->account_id,
- 'modified' => $this->now, //Datetime of entry
- 'version' => $file_record['version'],
- 'comment' => $comment,
- );
-
- if ($operation == VFS_OPERATION_COPIED || $operation == VFS_OPERATION_MOVED)
- {
- $insert_data['src'] = $file_record['directory'].'/'.$file_record['name'];
- $insert_data['dest'] = $other['dest'];
-
- }
-
- /* $file_data is the information of the file, stored in
- * $this->snapshotted_files. 'insert_data' have the data to be
- * inserted in the versioning table, 'tmp_filename' is the name of
- * the temporary backup copy, if any, and 'record' is the
- * information of the file before changes (that will be made between
- * the call to save_snapshot() and the call to commit().
- */
- $file_data = array(
- 'insert_data' => $insert_data,
- 'tmp_filename' => $random_filename,
- 'record' => $file_record
- );
-
- $this->snapshotted_files[$file_id] = $file_data;
- $this->last_saved_snapshot = $file_id;
-
- $GLOBALS['phpgw']->banish_journal = false;
- return true;
- }
-
- /*!
- * @function commit()
- * @abstract Commits the creation of a journal entry
- * @description Will have to be called after a save_snapshot is made.
- * If a vfs_version->save_snapshot() call is not made before, this
- * method does nothing. If no parameter is passed, will commit the
- * file from the last saved snapshot.
- *
- * @param $file_id int The file_id
- *
- * @author Vinicius Cubas Brand
- * @result bool
- */
- function commit($file_id=-1)
- {
- //Prevent recursive reentrant when working in vfs->copy, f.inst
- if ($GLOBALS['phpgw']->banish_journal)
- {
- return;
- }
-
- $GLOBALS['phpgw']->banish_journal = true;
-
- if ($file_id == -1)
- {
- if ($this->last_saved_snapshot == -1)
- {
-
- $GLOBALS['phpgw']->banish_journal = false;
- return false;
- }
-
- $file_id = $this->last_saved_snapshot;
- }
-
- if (!$this->snapshotted_files[$file_id])
- {
-
- $GLOBALS['phpgw']->banish_journal = false;
- return false;
- }
-
- $file_data = $this->snapshotted_files[$file_id];
-
- //if there is any backup to be made, will make these backups and
- //remove too old backup versions, as defined in configuration.
- if ($this->backups != 0 && in_array($file_data['insert_data']['operation'],$this->backup_operations))
- {
-
- //counts the number of stored backups
- $where = "file_id=$file_id AND (backup_file_id != NULL OR backup_file_id != 0)";
-
- $this->db->select('phpgw_vfs2_versioning','count(*)',$where,
- __LINE__,__FILE__);
-
- $this->db->next_record();
-
- if ($this->db->Record[0] >= $this->backups && $this->backups != -1)
- {
- //Remove old backups
-
- //Deletes oldest backup(s)
- $backups_to_be_deleted = $this->db->Record[0] - $this->backups + 1;
-
- $sql = "SELECT vers.version_id as version_id,
- vers.backup_file_id as backup_file_id,
- files.directory as directory,
- files.name as name
- FROM phpgw_vfs2_versioning as vers,
- phpgw_vfs2_files as files
- WHERE vers.file_id=$file_id
- AND vers.backup_file_id = files.file_id
- ORDER BY vers.modified";
-
- $this->db->query($sql,__LINE__,__FILE__);
-
- for ($i = 0; $i < $backups_to_be_deleted; $i++)
- {
- //FIXME don't know why this only works 4 the 1st cycle
- $this->db->next_record();
-
- $version_file_id = $this->db->Record['backup_file_id'];
- $version_id = $this->db->Record['version_id'];
-
-
- $version_directory = $this->db->Record['directory'];
- $version_name = $this->db->Record['name'];
-
- //Removes old backup
- $this->vfs->rm(array(
- 'string' => $version_directory.SEP.$version_name,
- 'relatives' => array(RELATIVE_ROOT)
- ));
-
- $versions_to_update[] = $version_id;
-
- }
-
- if ($versions_to_update)
- {
- //updates old journal
- $update_data = array(
- 'backup_file_id' => '',
- 'backup_content' => ''
- );
-
- foreach ($versions_to_update as $key => $val)
- {
-
- $update_where = array(
- 'version_id' => $val
- );
-
- $this->db->update('phpgw_vfs2_versioning',
- $update_data,$update_where,__LINE__,__FILE__);
- }
-
- }
- unset($version_id);
- }
-
- //create backup folder, if not exists
- //Important: the backup dir will be inside the virtual root
- $backup_foldername = $file_data['record']['directory'].SEP.$this->backup_foldername;
-
- $dir = array(
- 'string' => $backup_foldername,
- 'relatives' => array(RELATIVE_ROOT)
- );
-
- if (!$this->vfs->file_exists($dir))
- {
- $this->vfs->mkdir($dir); //TODO error messages
-
- $attributes=array_merge($dir,array(
- 'attributes' => array(
- 'is_backup' => 'Y'
- )
- ));
-
- $this->vfs->set_attributes($attributes);
- }
-
- //create a backup filename
- $backup_filename = $this->backup_filename(
- $file_data['record']['name'],
- $file_data['insert_data']['version']
- );
-
- //move file from temporary location to its definitive location
- $res = $this->vfs->mv(array(
- 'from' => $file_data['tmp_filename'],
- 'to' => $backup_foldername.SEP.$backup_filename,
- 'relatives' => array(RELATIVE_NONE|VFS_REAL,RELATIVE_ROOT)
- ));
-
- //sets its attribute as backup
- $this->vfs->set_attributes(array(
- 'string' => $backup_foldername.SEP.$backup_filename,
- 'relatives' => array(RELATIVE_ROOT),
- 'attributes' => array('is_backup' => 'Y')
- ));
-
- //TODO backup content in database support
-
- //Fetch the backup file_id to put this information in the
- //version table
- if ($res)
- {
- $res_ls = $this->vfs->ls(array(
- 'string' => $backup_foldername.SEP.$backup_filename,
- 'relatives' => RELATIVE_ROOT,
- 'nofiles' => True,
- 'backups' => True
- ));
-
- if ($res_ls)
- {
- $file_data['insert_data']['backup_file_id'] = $res_ls[0]['file_id'];
- }
- }
- }
-
- $res = $this->db->insert('phpgw_vfs2_versioning',
- $file_data['insert_data'],null,__LINE__,__FILE__);
-
-
-
- if ($res)
- {
- //If operation is one of the type that increments file version
- if (in_array($file_data['insert_data']['operation'],$this->backup_operations))
- {
-
- $this->db->update('phpgw_vfs2_files',
- array(
- 'version' => $this->inc($file_data['insert_data']['version']),
- 'modified' => $file_data['insert_data']['modified'],
- 'modifiedby_id' => $file_data['insert_data']['modifiedby_id']
- ),
- array('file_id' => $file_data['insert_data']['file_id']),
- __LINE__, __FILE__
- );
- }
-
- unset($this->snapshotted_files[$file_id]);
- $this->last_saved_snapshot = -1;
-
- $GLOBALS['phpgw']->banish_journal = false;
- return true;
- }
-
- $GLOBALS['phpgw']->banish_journal = false;
- return false;
- }
-
-
- /*!
- * @function rollback()
- * @abstract Rollbacks the save of the snapshot
- * @description Will have to be called after a save_snapshot is made.
- * If a vfs_version->save_snapshot() call is not made before, this
- * method does nothing. If no parameter is passed, will rollback the
- * file from the last saved snapshot. This method only deletes the
- * temporary backup file and the saved file information
- *
- * @param $file_id int The file_id
- *
- * @author Vinicius Cubas Brand
- * @result bool
- */
- function rollback($file_id=-1)
- {
- //Prevent recursive reentrant when working in vfs->copy, f.inst
- if ($GLOBALS['phpgw']->banish_journal)
- {
- return;
- }
-
- $GLOBALS['phpgw']->banish_journal = true;
-
- if ($file_id == -1)
- {
- if ($this->last_saved_snapshot == -1)
- {
-
- $GLOBALS['phpgw']->banish_journal = false;
- return false;
- }
-
- $file_id = $this->last_saved_snapshot;
- }
-
- if (!$this->snapshotted_files[$file_id])
- {
-
- $GLOBALS['phpgw']->banish_journal = false;
- return false;
- }
-
- $file_data = $this->snapshotted_files[$file_id];
-
- $this->vfs->rm(array(
- 'string' => $file_data['tmp_filename'],
- 'relatives' => array(RELATIVE_NONE | VFS_REAL)
- ));
-
- unset($this->snapshotted_files[$file_id]);
- $this->last_saved_snapshot = -1;
-
- $GLOBALS['phpgw']->banish_journal = false;
- return true;
- }
-
- /*!
- * @function get_journal()
- * @abstract Returns an array with the journal for a file
- */
- function get_journal($file_id)
- {
- //TODO support for database-only storage.
- $fields = array_diff($this->attributes,array('backup_content'));
-
- $where = 'file_id='.$file_id.' ORDER BY modified DESC, version DESC, operation DESC';
-
-
- $this->db->select('phpgw_vfs2_versioning',$fields,$where,
- __LINE__,__FILE__);
-
- while ($this->db->next_record())
- {
- $result[] = $this->db->Record;
- }
-
- return $result;
- }
-
-
- /*!
- * @function inc()
- * @abstract Given a file version, increments it using the vfs
- * versioning pattern and returns the incremented file version.
- * Analyzes operation and increments the file version taking
- * consideration of this operation.
- *
- * @param $version string The file version
- * @param $operation int Some VFS_OPERATION as defined in vfs_shared
- *
- * @result string
- */
- function inc($version)
- {
- /*
- * Let's increment the version for the file itself. We keep the
- * current version when making the journal entry, because that was
- * the version that was operated on. The maximum numbers for each
- * part in the version string: none.99.9.9
- */
- $version_parts = split ("\.", $version);
- $newnumofparts = $numofparts = count ($version_parts);
-
- if ($version_parts[3] >= 9)
- {
- $version_parts[3] = 0;
- $version_parts[2]++;
- $version_parts_3_update = 1;
- }
- elseif (isset ($version_parts[3]))
- {
- $version_parts[3]++;
- }
-
- if ($version_parts[2] >= 9 && $version_parts[3] == 0 && $version_parts_3_update)
- {
- $version_parts[2] = 0;
- $version_parts[1]++;
- }
-
- if ($version_parts[1] > 99)
- {
- $version_parts[1] = 0;
- $version_parts[0]++;
- }
-
- for ($i = 0; $i < $newnumofparts; $i++)
- {
- if (!isset ($version_parts[$i]))
- {
- break;
- }
-
- if ($i)
- {
- $newversion .= '.';
- }
-
- $newversion .= $version_parts[$i];
- }
-
- return $newversion;
- }
-
- function set_vfs(&$vfs)
- {
- $this->vfs =& $vfs;
- }
-
- #helper, private functions
-
- /*!
- * @function random_filename()
- * @abstract Generates a Random Filename
- *
- * @result string
- */
- function random_filename()
- {
- $filename = '';
- $filename_length = 8;
- while (strlen($filename) < $filename_length) {
- $filename .= chr(rand (97,122));
- }
-
- return $filename.'.tmp';
- }
-
- /*!
- * @function backup_filename()
- * @abstract Return the backup filename for a certain filename + version
- *
- * @result string
- */
- function backup_filename($filename,$version)
- {
- $version = str_replace('.','_',$version);
- $fbrk = explode('.',$filename);
- $fbrk[0] .= '-'.$version;
- return implode('.',$fbrk);
- }
-
- }
-
-
-?>
diff --git a/phpgwapi/setup/default_records.inc.php b/phpgwapi/setup/default_records.inc.php
index 6c605bd23c..54d80f1b47 100644
--- a/phpgwapi/setup/default_records.inc.php
+++ b/phpgwapi/setup/default_records.inc.php
@@ -12,7 +12,7 @@
/* $Id$ */
//$oProc->m_odb->Halt_On_Error = 'yes';
-
+
foreach(array(
'aa' => 'Afar',
'ab' => 'Abkhazian',
@@ -156,7 +156,7 @@ foreach(array(
{
$oProc->insert($GLOBALS['egw_setup']->languages_table,array('lang_name' => $name),array('lang_id' => $id),__LINE__,__FILE__);
}
-
+
foreach(array(
'sessions_checkip' => 'True',
'image_type' => '1',
@@ -177,25 +177,6 @@ $oProc->query("INSERT INTO egw_interserv(server_name,server_host,server_url,trus
$oProc->query ("INSERT INTO egw_vfs (vfs_owner_id, vfs_createdby_id, vfs_modifiedby_id, vfs_created, vfs_modified, vfs_size, vfs_mime_type, vfs_deleteable, vfs_comment, vfs_app, vfs_directory, vfs_name, vfs_link_directory, vfs_link_name) VALUES (0,0,0,'1970-01-01',NULL,NULL,'Directory','Y',NULL,NULL,'/','', NULL, NULL)");
$oProc->query ("INSERT INTO egw_vfs (vfs_owner_id, vfs_createdby_id, vfs_modifiedby_id, vfs_created, vfs_modified, vfs_size, vfs_mime_type, vfs_deleteable, vfs_comment, vfs_app, vfs_directory, vfs_name, vfs_link_directory, vfs_link_name) VALUES (0,0,0,'1970-01-01',NULL,NULL,'Directory','Y',NULL,NULL,'/','home', NULL, NULL)");
-// Create Addressbook for Default group, by setting a group ACL from the group to itself for all rights: add, read, edit and delete
+// Create Addressbook for Default group, by setting a group ACL from the group to itself for all rights: add, read, edit and delete
$defaultgroup = $GLOBALS['egw_setup']->add_account('Default','Default','Group',False,False);
$GLOBALS['egw_setup']->add_acl('addressbook',$defaultgroup,$defaultgroup,1|2|4|8);
-
-/*************************************************************************\
- * Default Records for VFS v2 *
-\*************************************************************************/
-if ($GLOBALS['DEBUG'])
-{
- echo "
\ninitiating to create the default records for VFS SQL2...";
-}
-
-include EGW_INCLUDE_ROOT.'/phpgwapi/setup/default_records_mime.inc.php';
-
-$oProc->query("INSERT INTO phpgw_vfs2_files (mime_id,owner_id,createdby_id,size,directory,name)
- SELECT mime_id,0,0,4096,'/','' FROM phpgw_vfs2_mimetypes WHERE mime='Directory'");
-
-if ($GLOBALS['DEBUG'])
-{
- echo " DONE!";
-}
-/*************************************************************************/
diff --git a/phpgwapi/setup/default_records_mime.inc.php b/phpgwapi/setup/default_records_mime.inc.php
deleted file mode 100644
index c92380570a..0000000000
--- a/phpgwapi/setup/default_records_mime.inc.php
+++ /dev/null
@@ -1,186 +0,0 @@
- *
- * sponsored by Thyamad - http://www.thyamad.com *
- * ------------------------------------------------------------------------- *
- * Image data files extracted from Intermesh Group-Office, *
- * all rights reserved. *
- * http://www.group-office.com/ *
- * ------------------------------------------------------------------------- *
- * This program is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License (version 2) as *
- * published by the Free Software Foundation. *
- * This software is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
- * See the GNU Lesser General Public License for more details. *
- \***************************************************************************/
- if ($GLOBALS['DEBUG'])
- {
- echo " inserting default mime-types... ";
- }
-
- if (!isset($oProc))
- {
- $oProc =& $GLOBALS['phpgw_setup']->oProc;
- }
-
- if (isset($oProc))
- {
-
-
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dwf',"mime"=>'image/VND.DWF',"friendly"=>'Autocad Tekening',"image"=>pack('H*','47494638396110001000f700000000000000840000ff00840000848400ffff848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f9040100000a002c000000001000100000087e0015081c48b0e040030813223428d0408204081e265868d040c487111d1aa8885122808f000a5a4c708080c90310016c3c48924001020308a05449d0a2cc0402605aa4c99200c90101040448c0b321020302040c101a004151050e0f040d1000c0cc9546498244e9142bd48e609f8e049bd22bc8b367bd4255c876654000003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'jpg',"mime"=>'image/jpeg',"friendly"=>'JPEG image',"image"=>pack('H*','47494638396110001000f7000096f6f569c8ca5dcdcec283627c3d1c7d3c1c7ac2c174c4c596f5f7c38262a9c9c893fbe4a2b3a390b8b898ba9900444591baaa008b1d65876696b5b7a7efeea3ebea7c3d1a7d3d1aa1f1f24c1c2c451e3d4c1d2fb08191b3839337a7a898b8a090baacb182946786678afafbb9c2c1bfc1c086beb51d75450b5a3b3ac2c297d7b216b6b4c3836063322b1e6d4eaac9cb49193f501f18a9c8ca4a1a4010989800643c32022817b7b5918f90ced0cf7dedee067f0e2d8555c2825f00281fdee0df091a0a87485095f4f66f3e3765856d7bffff4ababb0a7a7b70a090c1825f3d7d58166e3e7bc3c2c9e9e8d1e9d1581921218a62033b32003d1800222200633b5e8777005a43008282003112606968773840617961697271b9e3d5a4ccccbae3d3326252c283609ab99a00610079496f09a9a746070fa1b9a129412963838255b5b42848305d877928a130b283934e1e2e0d3d2dc2c0c113a93b0030203f1837c1bfc019b9b766ceb71d5d389bba9b7f4e47b18191c28161158e1d6f807075c5c6d0cecf4b1c2c0044252a9a9b049a2c744d6c00512969c9c8b18292b282924c1d2d4d1d2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90400000000002c00000000100010000008ff00cd6829508000810b172c58206870488b2741f824183080458f3049124c1ca02786220e150c1c3a1420c0c8037f985448b448112203140000402044e6030c140cb074190041911423462cb8b3e40480433b11f5bc42c3888e0556789c5073a8434b44028edcb09385c4981d82506038d0e18d4b011e569421c1a54f1b17581e1cd8c9016d1a0567d0c88940a5860f1349050c52d0c4c9164211a0188a0278d186101364fcc8010887142560e04c69c0f2f18417254ac4a9a302cf1c245e385f8550458204112288ac01e2870d089681107d81e0c081983c1f3e306000a2cb9e451a0a254a8408d1f2e6cbdd202203838e860c2d152dca8e5d91a219360202003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'doc',"mime"=>'application/msword',"friendly"=>'Microsoft Word document',"image"=>pack('H*','47494638396110001000f7000000000000ffff848484c6c6c6ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000005002c0000000010001000000871000b081440b0a04181080b0820c0b02143010004029848b12200020b230208c071e3c68e042a16f0483200800128090cd068b2a3c9010c61ae1ce9d2a44a992a59b6b49952a6c689102fdeec1971a0c3a339112e44c9946952a3481bce842ad5e9548551a51655d8b42bcaad412d5a0c08003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'txt',"mime"=>'text/plain',"friendly"=>'Platte tekst',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c000000001000100000044c904909aab57302640cf74695014e699ac0014c86d3bd6da85225dc3ae9ccdc679dafa41eea405cf17ab262508823168fa7e44375a9e69c2b8d738b1d71898f6996f2dd8e19d72fe28cb66222003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'xls',"mime"=>'application/vnd.ms-excel',"friendly"=>'Excel Workbook',"image"=>pack('H*','47494638396110001000f7000000000000848400ffff848484c6c6c6ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c0000000010001000000873000d081c40b0a04181080d0c28c0b021c30100040298c8702200870b230210206022c78b0d2d6afc089180c993050868dcd8d12201862f5502081080e54c0027638af4d8f265ca9411078acca913e1c2983f1baa349a12254ca04c91fe2c3ab0a949ab50ab3adcba7420d1af4115ee1c0b2020003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'mp3',"mime"=>'audio/mpeg',"friendly"=>'MP3 audio',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c0000000010001000000869000d081c38100000820809061000404042840108001840f1a1c08802040c28e0f061c402130b704c18e0a3c48d231516d848002400911d07461cd0f2e4cb981709b004993165c185350dc24c68f063489f0801443c8a33e94201432d1a507a53eacf86560b1e241810003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'gif',"mime"=>'image/gif',"friendly"=>'GIF afbeelding',"image"=>pack('H*','47494638396110001000f7000096f6f569c8ca5dcdcec283627c3d1c7d3c1c7ac2c174c4c596f5f7c38262a9c9c893fbe4a2b3a390b8b898ba9900444591baaa008b1d65876696b5b7a7efeea3ebea7c3d1a7d3d1aa1f1f24c1c2c451e3d4c1d2fb08191b3839337a7a898b8a090baacb182946786678afafbb9c2c1bfc1c086beb51d75450b5a3b3ac2c297d7b216b6b4c3836063322b1e6d4eaac9cb49193f501f18a9c8ca4a1a4010989800643c32022817b7b5918f90ced0cf7dedee067f0e2d8555c2825f00281fdee0df091a0a87485095f4f66f3e3765856d7bffff4ababb0a7a7b70a090c1825f3d7d58166e3e7bc3c2c9e9e8d1e9d1581921218a62033b32003d1800222200633b5e8777005a43008282003112606968773840617961697271b9e3d5a4ccccbae3d3326252c283609ab99a00610079496f09a9a746070fa1b9a129412963838255b5b42848305d877928a130b283934e1e2e0d3d2dc2c0c113a93b0030203f1837c1bfc019b9b766ceb71d5d389bba9b7f4e47b18191c28161158e1d6f807075c5c6d0cecf4b1c2c0044252a9a9b049a2c744d6c00512969c9c8b18292b282924c1d2d4d1d2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90400000000002c00000000100010000008ff00cd6829508000810b172c58206870488b2741f824183080458f3049124c1ca02786220e150c1c3a1420c0c8037f985448b448112203140000402044e6030c140cb074190041911423462cb8b3e40480433b11f5bc42c3888e0556789c5073a8434b44028edcb09385c4981d82506038d0e18d4b011e569421c1a54f1b17581e1cd8c9016d1a0567d0c88940a5860f1349050c52d0c4c9164211a0188a0278d186101364fcc8010887142560e04c69c0f2f18417254ac4a9a302cf1c245e385f8550458204112288ac01e2870d089681107d81e0c081983c1f3e306000a2cb9e451a0a254a8408d1f2e6cbdd202203838e860c2d152dca8e5d91a219360202003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'pdf',"mime"=>'application/pdf',"friendly"=>'PDF document',"image"=>pack('H*','47494638396110001000f70000000000080808848484b5b5b5c6c6c6dededeff3100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000007002c000000001000100040086a000f080440b0a0410002130628c0b0c00001031a162068a0a2458b0024221ce810a2c4860743660c5071e381850d0744d4a8b02181880f550e30194080808f2c39e22c401221808b404706182ad260ce931209dc3c8a92a100a54c192a95f9d026cdaa3b272a2c6a3020003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'bmp',"mime"=>'image/bmp',"friendly"=>'Bitmap image',"image"=>pack('H*','47494638396111001000f700000000000000840000ff00848400ffff5252526363637373738400008484008484849494949c9c9ca5a5a5b5b5b5c6c6c6ce0063d6d6d6dededeefefeff7f7f7ff0000ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000018002c000000001100100000089a0031081c68400180820006124c28b00000000e1962608850a0820b00063c6008c0200603143c5640909140000c09303254f04000809125032478e0716080010220901ca020818504126d0ed099d127508516151c50a094e9d29a032f5eb830418283070f9606b548b3e901030f915a9c3021c283060c1480158be162d9b369d78a95fa7681daad16a7be6d70972d5db368e58a7d4898b0c28000003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'wav',"mime"=>'audio/WAV',"friendly"=>'Wave audio',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c0000000010001000000869000d081c38100000820809061000404042840108001840f1a1c08802040c28e0f061c402130b704c18e0a3c48d231516d848002400911d07461cd0f2e4cb981709b004993165c185350dc24c68f063489f0801443c8a33e94201432d1a507a53eacf86560b1e241810003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dwg',"mime"=>'image/VND.DWG',"friendly"=>'Autocad tekening',"image"=>pack('H*','47494638396110001000f70000ffffffffffccffff99ffff66ffff33ffff00ffccffffccccffcc99ffcc66ffcc33ffcc00ff99ffff99ccff9999ff9966ff9933ff9900ff66ffff66ccff6699ff6666ff6633ff6600ff33ffff33ccff3399ff3366ff3333ff3300ff00ffff00ccff0099ff0066ff0033ff0000ccffffccffccccff99ccff66ccff33ccff00ccccffcccccccccc99cccc66cccc33cccc00cc99ffcc99cccc9999cc9966cc9933cc9900cc66ffcc66cccc6699cc6666cc6633cc6600cc33ffcc33cccc3399cc3366cc3333cc3300cc00ffcc00cccc0099cc0066cc0033cc000099ffff99ffcc99ff9999ff6699ff3399ff0099ccff99cccc99cc9999cc6699cc3399cc009999ff9999cc9999999999669999339999009966ff9966cc9966999966669966339966009933ff9933cc9933999933669933339933009900ff9900cc99009999006699003399000066ffff66ffcc66ff9966ff6666ff3366ff0066ccff66cccc66cc9966cc6666cc3366cc006699ff6699cc6699996699666699336699006666ff6666cc6666996666666666336666006633ff6633cc6633996633666633336633006600ff6600cc66009966006666003366000033ffff33ffcc33ff9933ff6633ff3333ff0033ccff33cccc33cc9933cc6633cc3333cc003399ff3399cc3399993399663399333399003366ff3366cc3366993366663366333366003333ff3333cc3333993333663333333333003300ff3300cc33009933006633003333000000ffff00ffcc00ff9900ff6600ff3300ff0000ccff00cccc00cc9900cc6600cc3300cc000099ff0099cc0099990099660099330099000066ff0066cc0066990066660066330066000033ff0033cc0033990033660033330033000000ff0000cc000099000066000033000000ad0b10ae262eb5848779020dd50918e81626a94950d06f76f74657f9354cfef3f5fffbfcffeefafef5ff403c43f1f5f9f1fffb2b4037e4faefedfff6ccd6c751564ef6fcf2c5cebbdde3d5f1f4e3fdfef68080732a2823ae9c90b65721e8d7cfede5e3cfada7714e4ae14540fe7673492424faebebffffff21f904010000ff002c00000000100010000008e300ff091c48b0e0bf7ef45899a367ce9c42560c150a0cc4ee1dbc8befd8ad8877ef1ebe7c02dbad9b4792a4959281e6f5bb764ddfb947dbd660c3b6a626b72333d53c0ae4ef91b76ce0f865dbb7af5bb870d9bc6d0b34ee510e6cfc1e54b060e1080770ddbc3d6a27ef11196e15ca04a980cd2a366e5a03ad7bf48d1f3f7b651e48ade036dfb576e8667d2be340ee0c1d418862d337ab9dbf6d64ba710337a2db086edcbcd29b1508dfb61cdcc281e3d68d83e76dd9ea414cd7af4bb61ffc8c800377ba5fbe4003fbf5dbb60dc84c6cb4116923488f5ebb84be03b50b04dba0f1820101003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'exe',"mime"=>'application/octet-stream',"friendly"=>'Application',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c000000001000100000044b90c9492b4338eb8d8fffe08700c8419c687a8ea54a3c000cb3076793c7a3efbc4ef383418cf7db011642226e37586000835d5107382c86be250f80cd967ae007cb76e39acf68ae653d8900003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'url',"mime"=>'application/octet-stream',"friendly"=>'Hyperlink',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000d002c0000000010001000000458b049446b9578becddf4199d66dc7036608c7301be00219b132c4c392b0440ccb5c7387dcaeb791fd3c39decc07840d0ec651b33118c81807286d3a6000aeab2352c27a01529d208681968e3188ac7caec698efaf905e1f01003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'zip',"mime"=>'application/x-zip-compressed',"friendly"=>'Winzip archive',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c000000001000100000044b90c9c980bd80527050ff997455d87564c0322cc0e3be0f80a0eb505af159a97ccdc6b38a6fd8e2a07ac8621030ec1575a9e64a89badd741a8e67db0965ad9a700521de58662331060d8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'html',"mime"=>'text/HTML',"friendly"=>'HTML pagina',"image"=>pack('H*','47494638396110001000f700000000000000840000ff00840000848400ffff848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f9040100000a002c000000001000100000087e0015081c48b0e040030813223428d0408204081e265868d040c487111d1aa8885122808f000a5a4c708080c90310016c3c48924001020308a05449d0a2cc0402605aa4c99200c90101040448c0b321020302040c101a004151050e0f040d1000c0cc9546498244e9142bd48e609f8e049bd22bc8b367bd4255c876654000003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'htm',"mime"=>'text/HTML',"friendly"=>'HTML page',"image"=>pack('H*','47494638396110001000f700000000000000840000ff00840000848400ffff848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f9040100000a002c000000001000100000087e0015081c48b0e040030813223428d0408204081e265868d040c487111d1aa8885122808f000a5a4c708080c90310016c3c48924001020308a05449d0a2cc0402605aa4c99200c90101040448c0b321020302040c101a004151050e0f040d1000c0cc9546498244e9142bd48e609f8e049bd22bc8b367bd4255c876654000003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'tar',"mime"=>'application/X-TAR',"friendly"=>'Tarbal archief',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c000000001000100000086a000d081c08a0a0410003131a00304040c38708051a5c78d0e000840008042000a080c78f050008c0b83140c582212f2ed4c8b224c7902317ba9cd99121c696386bc60430b3654d95197b6ed489f1e449950a193a5cda306252a30aa32e142035a1c19113a51ec48a3020003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'reg',"mime"=>'application/octet-stream',"friendly"=>'Windows register file',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c000000001000100000045390c93911bd173d8031328ec1599df4018fc65548dba25fb87ec6f38806029ca6b3f938806806141a86c215432303386fc9ca51086d2a11c0e254547984bcc8a8e948aec9b8bd5b16aa5c82dfb28b734e6f4b22003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'psd',"mime"=>'application/octet-stream',"friendly"=>'Adobe photoshop image',"image"=>pack('H*','47494638396110001000f70000000000080808848484b5b5b5c6c6c6dededeff3100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000007002c000000001000100040086a000f080440b0a0410002130628c0b0c00001031a162068a0a2458b0024221ce810a2c4860743660c5071e381850d0744d4a8b02181880f550e30194080808f2c39e22c401221808b404706182ad260ce931209dc3c8a92a100a54c192a95f9d026cdaa3b272a2c6a3020003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'csv',"mime"=>'application/octet-stream',"friendly"=>'Comma Separated Values',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'mpe',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000f7000000000000008400848400ffff848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000007002c000000001000100000087b000f083c40a0a0418303131240c0b021820204120a5ce8906101041115566408a023008d1b2d0210309062c80223050c10c0b2a5008605510ae838a026809a3305100080f2a3c79b386fa244295065cda33347f2fc784080019b0300040080a023d1033f3b4ea52a12e449a61343762d59a0acd9b360b1665d1b10003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'mpg',"mime"=>'application/OCTET-STREAM',"friendly"=>'MPEG Video Clip',"image"=>pack('H*','47494638396110001000f7000000000000008400848400ffff848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000007002c000000001000100000087b000f083c40a0a0418303131240c0b021820204120a5ce8906101041115566408a023008d1b2d0210309062c80223050c10c0b2a5008605510ae838a026809a3305100080f2a3c79b386fa244295065cda33347f2fc784080019b0300040080a023d1033f3b4ea52a12e449a61343762d59a0acd9b360b1665d1b10003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'PCX',"mime"=>'application/octet-stream',"friendly"=>'PCX image',"image"=>pack('H*','47494638396110001000f7000096f6f569c8ca5dcdcec283627c3d1c7d3c1c7ac2c174c4c596f5f7c38262a9c9c893fbe4a2b3a390b8b898ba9900444591baaa008b1d65876696b5b7a7efeea3ebea7c3d1a7d3d1aa1f1f24c1c2c451e3d4c1d2fb08191b3839337a7a898b8a090baacb182946786678afafbb9c2c1bfc1c086beb51d75450b5a3b3ac2c297d7b216b6b4c3836063322b1e6d4eaac9cb49193f501f18a9c8ca4a1a4010989800643c32022817b7b5918f90ced0cf7dedee067f0e2d8555c2825f00281fdee0df091a0a87485095f4f66f3e3765856d7bffff4ababb0a7a7b70a090c1825f3d7d58166e3e7bc3c2c9e9e8d1e9d1581921218a62033b32003d1800222200633b5e8777005a43008282003112606968773840617961697271b9e3d5a4ccccbae3d3326252c283609ab99a00610079496f09a9a746070fa1b9a129412963838255b5b42848305d877928a130b283934e1e2e0d3d2dc2c0c113a93b0030203f1837c1bfc019b9b766ceb71d5d389bba9b7f4e47b18191c28161158e1d6f807075c5c6d0cecf4b1c2c0044252a9a9b049a2c744d6c00512969c9c8b18292b282924c1d2d4d1d2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90400000000002c00000000100010000008ff00cd6829508000810b172c58206870488b2741f824183080458f3049124c1ca02786220e150c1c3a1420c0c8037f985448b448112203140000402044e6030c140cb074190041911423462cb8b3e40480433b11f5bc42c3888e0556789c5073a8434b44028edcb09385c4981d82506038d0e18d4b011e569421c1a54f1b17581e1cd8c9016d1a0567d0c88940a5860f1349050c52d0c4c9164211a0188a0278d186101364fcc8010887142560e04c69c0f2f18417254ac4a9a302cf1c245e385f8550458204112288ac01e2870d089681107d81e0c081983c1f3e306000a2cb9e451a0a254a8408d1f2e6cbdd202203838e860c2d152dca8e5d91a219360202003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'tif',"mime"=>'application/octet-stream',"friendly"=>'TIF afbeelding',"image"=>pack('H*','47494638396110001000f7000096f6f569c8ca5dcdcec283627c3d1c7d3c1c7ac2c174c4c596f5f7c38262a9c9c893fbe4a2b3a390b8b898ba9900444591baaa008b1d65876696b5b7a7efeea3ebea7c3d1a7d3d1aa1f1f24c1c2c451e3d4c1d2fb08191b3839337a7a898b8a090baacb182946786678afafbb9c2c1bfc1c086beb51d75450b5a3b3ac2c297d7b216b6b4c3836063322b1e6d4eaac9cb49193f501f18a9c8ca4a1a4010989800643c32022817b7b5918f90ced0cf7dedee067f0e2d8555c2825f00281fdee0df091a0a87485095f4f66f3e3765856d7bffff4ababb0a7a7b70a090c1825f3d7d58166e3e7bc3c2c9e9e8d1e9d1581921218a62033b32003d1800222200633b5e8777005a43008282003112606968773840617961697271b9e3d5a4ccccbae3d3326252c283609ab99a00610079496f09a9a746070fa1b9a129412963838255b5b42848305d877928a130b283934e1e2e0d3d2dc2c0c113a93b0030203f1837c1bfc019b9b766ceb71d5d389bba9b7f4e47b18191c28161158e1d6f807075c5c6d0cecf4b1c2c0044252a9a9b049a2c744d6c00512969c9c8b18292b282924c1d2d4d1d2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90400000000002c00000000100010000008ff00cd6829508000810b172c58206870488b2741f824183080458f3049124c1ca02786220e150c1c3a1420c0c8037f985448b448112203140000402044e6030c140cb074190041911423462cb8b3e40480433b11f5bc42c3888e0556789c5073a8434b44028edcb09385c4981d82506038d0e18d4b011e569421c1a54f1b17581e1cd8c9016d1a0567d0c88940a5860f1349050c52d0c4c9164211a0188a0278d186101364fcc8010887142560e04c69c0f2f18417254ac4a9a302cf1c245e385f8550458204112288ac01e2870d089681107d81e0c081983c1f3e306000a2cb9e451a0a254a8408d1f2e6cbdd202203838e860c2d152dca8e5d91a219360202003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'pps',"mime"=>'application/VND.MS-POWERPOINT',"friendly"=>'Powerpoint presentation',"image"=>pack('H*','47494638396110001000e64200e09d80ec9a74ea9a79707070c7a697de9e856b1c00feffffa7471fdf9e7e7f7f7fdee0dffff7e8fefefe6a5042b34313fff8e6dedede3c3c3ca74717bebebe1f1f1f90573bca6a42a94919727272717171ffd7af909090ffefd69b4a2cee9d7fc6a7959b4c23d66636be6e4d606062fff7e5ea9b72bfbfbfb27259c7a896ffeacc6161639b9b9b8888882020205737286747385757579a492b5f5f5fff9262601f00020202684e429d4b25a84816a84818f79765606060efefeff797679c9c9cdfdfdfffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90401000042002c00000000100010000007a7804242412f25100c0c418a411a82420e0e3730292004040d8b1c1582183e3b3b02023e3a40a54114272e423a3e393923a23a11a60a0a2d36393b280522343e138bc13cb91d050f0fa3c18b3cac1f2a1b173b393da5a641cc3e321e0808d2d4d58a3321260909000001388a07078b2b06063516e70101d40b0b408a248e038b3ddf4a61e2e12883b2830405f95304b09abe6bfd0e2a4b2844c28f8b182fb2b818c391c78f1e0301003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'mpeg',"mime"=>'application/OCTET-STREAM',"friendly"=>'MPEG Video Clip',"image"=>pack('H*','47494638396110001000f7000000000000008400848400ffff848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000007002c000000001000100000087b000f083c40a0a0418303131240c0b021820204120a5ce8906101041115566408a023008d1b2d0210309062c80223050c10c0b2a5008605510ae838a026809a3305100080f2a3c79b386fa244295065cda33347f2fc784080019b0300040080a023d1033f3b4ea52a12e449a61343762d59a0acd9b360b1665d1b10003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'avi',"mime"=>'application/OCTET-STREAM',"friendly"=>'AVI Video Clip',"image"=>pack('H*','47494638396110001000f70000000000848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000004002c00000000100010000008700009082410a0a0418303130628c0b061010101120a5ce890a180021115566408a023008d1b2d02c84830a4c882100f166488726447013001c00c3092a6808e043cca9c09e0a1cc8f04610a85d8d126d0000362dea459e025509d501bde041972ea408a55814e1ccad5aa40a860010404003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'tgz',"mime"=>'application/X-GZIP-COMPRESSED',"friendly"=>'Tarbal gecomprimeerd archief',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c000000001000100000086a000d081c08a0a0410003131a00304040c38708051a5c78d0e000840008042000a080c78f050008c0b83140c582212f2ed4c8b224c7902317ba9cd99121c696386bc60430b3654d95197b6ed489f1e449950a193a5cda306252a30aa32e142035a1c19113a51ec48a3020003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'asf',"mime"=>'application/OCTET-STREAM',"friendly"=>'ASF video clip',"image"=>pack('H*','47494638396110001000f70000000000848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000004002c00000000100010000008700009082410a0a0418303130628c0b061010101120a5ce890a180021115566408a023008d1b2d02c84830a4c882100f166488726447013001c00c3092a6808e043cca9c09e0a1cc8f04610a85d8d126d0000362dea459e025509d501bde041972ea408a55814e1ccad5aa40a860010404003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'php',"mime"=>'text/PLAIN',"friendly"=>'PHP web page',"image"=>pack('H*','47494638396110001000f700000000000000840000ff00840000848400ffff848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f9040100000b002c00000000100010000008920017081478a0a0418303131e50904081c3040b0f2424e890a1c3850a242ab4581180470013312a4040922102901b111c2840a0e04894030f40248060c0800324611ad86900a70002377182dc09200100031e0710081020e7020309a246451a60e9c2933b132085fab1a9c9a351011c28aa150047ac50b71af55831c1c9a752a77a244917e4d1a277c57efc3870efc4840101003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'bas',"mime"=>'text/plain',"friendly"=>'text/plain',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'scr',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'vcf',"mime"=>'text/PLAIN',"friendly"=>'text/PLAIN',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'sim',"mime"=>'text/plain',"friendly"=>'text/plain',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'sh',"mime"=>'text/PLAIN',"friendly"=>'text/PLAIN',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'jpeg',"mime"=>'application/OCTET-STREAM',"friendly"=>'JPEG image',"image"=>pack('H*','47494638396110001000f7000096f6f569c8ca5dcdcec283627c3d1c7d3c1c7ac2c174c4c596f5f7c38262a9c9c893fbe4a2b3a390b8b898ba9900444591baaa008b1d65876696b5b7a7efeea3ebea7c3d1a7d3d1aa1f1f24c1c2c451e3d4c1d2fb08191b3839337a7a898b8a090baacb182946786678afafbb9c2c1bfc1c086beb51d75450b5a3b3ac2c297d7b216b6b4c3836063322b1e6d4eaac9cb49193f501f18a9c8ca4a1a4010989800643c32022817b7b5918f90ced0cf7dedee067f0e2d8555c2825f00281fdee0df091a0a87485095f4f66f3e3765856d7bffff4ababb0a7a7b70a090c1825f3d7d58166e3e7bc3c2c9e9e8d1e9d1581921218a62033b32003d1800222200633b5e8777005a43008282003112606968773840617961697271b9e3d5a4ccccbae3d3326252c283609ab99a00610079496f09a9a746070fa1b9a129412963838255b5b42848305d877928a130b283934e1e2e0d3d2dc2c0c113a93b0030203f1837c1bfc019b9b766ceb71d5d389bba9b7f4e47b18191c28161158e1d6f807075c5c6d0cecf4b1c2c0044252a9a9b049a2c744d6c00512969c9c8b18292b282924c1d2d4d1d2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90400000000002c00000000100010000008ff00cd6829508000810b172c58206870488b2741f824183080458f3049124c1ca02786220e150c1c3a1420c0c8037f985448b448112203140000402044e6030c140cb074190041911423462cb8b3e40480433b11f5bc42c3888e0556789c5073a8434b44028edcb09385c4981d82506038d0e18d4b011e569421c1a54f1b17581e1cd8c9016d1a0567d0c88940a5860f1349050c52d0c4c9164211a0188a0278d186101364fcc8010887142560e04c69c0f2f18417254ac4a9a302cf1c245e385f8550458204112288ac01e2870d089681107d81e0c081983c1f3e306000a2cb9e451a0a254a8408d1f2e6cbdd202203838e860c2d152dca8e5d91a219360202003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'xkr',"mime"=>'application/octet-stream',"friendly"=>'application/octet-stream',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dat',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'wmv',"mime"=>'video/X-MS-WMV',"friendly"=>'Windows Media Video',"image"=>pack('H*','47494638396110001000f7000000000000008400848400ffff848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000007002c000000001000100000087b000f083c40a0a0418303131240c0b021820204120a5ce8906101041115566408a023008d1b2d0210309062c80223050c10c0b2a5008605510ae838a026809a3305100080f2a3c79b386fa244295065cda33347f2fc784080019b0300040080a023d1033f3b4ea52a12e449a61343762d59a0acd9b360b1665d1b10003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'inc',"mime"=>'text/plain',"friendly"=>'PHP inclusion',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'sql',"mime"=>'text/plain',"friendly"=>'SQL file',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c000000001000100000044c904909aab57302640cf74695014e699ac0014c86d3bd6da85225dc3ae9ccdc679dafa41eea405cf17ab262508823168fa7e44375a9e69c2b8d738b1d71898f6996f2dd8e19d72fe28cb66222003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ppt',"mime"=>'application/vnd.ms-powerpoint',"friendly"=>'Powerpoint presentation',"image"=>pack('H*','47494638396110001000f7000000000000ffff840000848484c6c6c6ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c0000000010001000000870000d081c40b0a04181080d0c28c0b0214382030d1a6cb8708042870d016404c0712101830400101849a040c88a020208181012e3c9020304a4642992a4490015416a74f89224c99a236f0ee04894a84b0008179a34e9f366528c479f2ef55932a454a80cad0ea4ca15e9c0a260890604003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'',"mime"=>'',"friendly"=>'Onbekend',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'db',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c0000000010001000000878000d081440b0a04181080d0828c0b02143010010028008c061c385110110d81800c0808f1f0b001839918046932043321c3032c046930e07346439314000013057cecc389220ca940558228428c0a5479041230e1459b4a24ea14b457a9c9974a8ce9855a3a6440a55a1458b5d056c1dab5421c9b3680302003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'tpl',"mime"=>'application/OCTET-STREAM',"friendly"=>'Template file',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'css',"mime"=>'text/css',"friendly"=>'Custom Style Sheet',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'lock',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cfg',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'conf',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'deny',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'misc',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'pal',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'save',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'net',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'defs',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'rc',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'jar',"mime"=>'Array',"friendly"=>'Java source file',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'png',"mime"=>'image/png',"friendly"=>'image/png',"image"=>pack('H*','47494638396111001000f700000000000000840000ff00848400ffff5252526363637373738400008484008484849494949c9c9ca5a5a5b5b5b5c6c6c6ce0063d6d6d6dededeefefeff7f7f7ff0000ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000018002c000000001100100000089a0031081c68400180820006124c28b00000000e1962608850a0820b00063c6008c0200603143c5640909140000c09303254f04000809125032478e0716080010220901ca020818504126d0ed099d127508516151c50a094e9d29a032f5eb830418283070f9606b548b3e901030f915a9c3021c283060c1480158be162d9b369d78a95fa7681daad16a7be6d70972d5db368e58a7d4898b0c28000003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cnf',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'bak',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ini',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'old',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'key',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cron',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'xterm',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'login',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'modes',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cshrc',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'allow',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cache',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'perms',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'types',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'users',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'local',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'js',"mime"=>'application/x-javascript',"friendly"=>'application/x-javascript',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'exp',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'xml',"mime"=>'text/xml',"friendly"=>'XML file',"image"=>pack('H*','47494638396110001000f7000000000000008400009c0000ff00848431639c3163ff319c00319cff31ceff31ffff848484a5cef7c6c6c6f7f7f7ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f9040100000f002c00000000100010000008830017081c4850e083830f164058c8b06183050815365ce800828306102026a468b163450020016c74c0a0220102062c96842052210301100840508020000401255bbeb44840418203012ae26c0961a701040706d8c4e98028c98a01a2aafcb8d1a3d58a4d4716d8ca952b558958af5a74dab5ec578e61d33a151b5664c8b770433e0808003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'pl',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'jpe',"mime"=>'image/jpeg',"friendly"=>'JPEG image',"image"=>pack('H*','47494638396111001000f700000000000000840000ff00848400ffff5252526363637373738400008484008484849494949c9c9ca5a5a5b5b5b5c6c6c6ce0063d6d6d6dededeefefeff7f7f7ff0000ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000018002c000000001100100000089a0031081c68400180820006124c28b00000000e1962608850a0820b00063c6008c0200603143c5640909140000c09303254f04000809125032478e0716080010220901ca020818504126d0ed099d127508516151c50a094e9d29a032f5eb830418283070f9606b548b3e901030f915a9c3021c283060c1480158be162d9b369d78a95fa7681daad16a7be6d70972d5db368e58a7d4898b0c28000003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'lnk',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'wmf',"mime"=>'application/OCTET-STREAM',"friendly"=>'Windows Media File',"image"=>pack('H*','47494638396110001000f70000000000848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000004002c00000000100010000008700009082410a0a0418303130628c0b061010101120a5ce890a180021115566408a023008d1b2d02c84830a4c882100f166488726447013001c00c3092a6808e043cca9c09e0a1cc8f04610a85d8d126d0000362dea459e025509d501bde041972ea408a55814e1ccad5aa40a860010404003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'JOB',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'jof',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'pm4',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dxf',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dft',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'asm',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'par',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dmp',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'frm',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'frx',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cls',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'PDM',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'vbp',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'vbw',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ICO',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'SCC',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'log',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'tlb',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dll',"mime"=>'application/octet-stream',"friendly"=>'application/octet-stream',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'OCX',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'BAT',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'DDF',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'Lst',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'CAB',"mime"=>'application/OCTET-STREAM',"friendly"=>'Windows cabinet archive',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'mdb',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c0000000010001000000878000d081440b0a04181080d0828c0b02143010010028008c061c385110110d81800c0808f1f0b001839918046932043321c3032c046930e07346439314000013057cecc389220ca940558228428c0a5479041230e1459b4a24ea14b457a9c9974a8ce9855a3a6440a55a1458b5d056c1dab5421c9b3680302003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dist',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'hist',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'rar',"mime"=>'application/OCTET-STREAM',"friendly"=>'WinRAR archive',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c000000001000100000086a000d081c08a0a0410003131a00304040c38708051a5c78d0e000840008042000a080c78f050008c0b83140c582212f2ed4c8b224c7902317ba9cd99121c696386bc60430b3654d95197b6ed489f1e449950a193a5cda306252a30aa32e142035a1c19113a51ec48a3020003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'fla',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'swf',"mime"=>'application/x-shockwave-flash',"friendly"=>'application/x-shockwave-flash',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'en',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'jis',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'fig',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'tsv',"mime"=>'text/tab-separated-values',"friendly"=>'text/tab-separated-values',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'wml',"mime"=>'text/vnd.wap.wml',"friendly"=>'text/vnd.wap.wml',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cgi',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'fr',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'mov',"mime"=>'application/OCTET-STREAM',"friendly"=>'Movie clip',"image"=>pack('H*','47494638396110001000f70000000000848484c6c6c6ff0000ffff84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000004002c00000000100010000008700009082410a0a0418303130628c0b061010101120a5ce890a180021115566408a023008d1b2d02c84830a4c882100f166488726447013001c00c3092a6808e043cca9c09e0a1cc8f04610a85d8d126d0000362dea459e025509d501bde041972ea408a55814e1ccad5aa40a860010404003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'gz',"mime"=>'application/x-gzip',"friendly"=>'Gzip compressed archive',"image"=>pack('H*','47494638396110001000f70000000000848400848484c6c6c6ffff00ffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21f90401000006002c000000001000100000086a000d081c08a0a0410003131a00304040c38708051a5c78d0e000840008042000a080c78f050008c0b83140c582212f2ed4c8b224c7902317ba9cd99121c696386bc60430b3654d95197b6ed489f1e449950a193a5cda306252a30aa32e142035a1c19113a51ec48a3020003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'rpm',"mime"=>'application/x-rpm',"friendly"=>'RPM Package',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ai',"mime"=>'application/postscript',"friendly"=>'Adobe Illustrator file',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'eml',"mime"=>'message/RFC822',"friendly"=>'message/RFC822',"image"=>pack('H*','47494638396110001000c4ff00ffffff00ffffc0c0c080808000808000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f90401000002002c0000000010001000400537a0208e64290c400a146cabae432ccf7481bef85b98fc88ba39002160d3b558ba9e72c95cde82aa61111a254ca9aa2b7675ec7a77cd5108003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'aspx',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'cs',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'resx',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ascx',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'err',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ils',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'xdp',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'trc',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'sam',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'rtf',"mime"=>'text/RICHTEXT',"friendly"=>'Rich text format',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'rnd',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'map',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ja',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'0',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'h',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'b',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'img',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'pif',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'abw',"mime"=>'application/ABIWORD',"friendly"=>'application/ABIWORD',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'ps',"mime"=>'application/POSTSCRIPT',"friendly"=>'application/POSTSCRIPT',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'dir',"mime"=>'application/x-director',"friendly"=>'application/x-director',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'adr',"mime"=>'application/octet-stream',"friendly"=>'application/octet-stream',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'sxw',"mime"=>'application/OCTET-STREAM',"friendly"=>'application/OCTET-STREAM',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'plt',"mime"=>'Array',"friendly"=>'Array',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
- $oProc->insert("phpgw_vfs2_mimetypes", array("extension"=>'(n/a)',"mime"=>'Directory',"friendly"=>'Directory',"image"=>pack('H*','47494638396110001000b30000000000800000008000808000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff21f9040100000c002c0000000010001000000452f0a1492b6298c9c77b3f40b679def1841a4296409b4a5675be083110780ecc5b9dffbb506fc509d21e8b004773e2a95481c483e1d018870fe54320680a9f44efab452e5f55e1cef7c06ebbd942b39ccc8800003b')),array(),__LINE__,__FILE__);
-
- }
-
-?>
diff --git a/phpgwapi/setup/setup.inc.php b/phpgwapi/setup/setup.inc.php
index b6add51d28..0493058ad3 100755
--- a/phpgwapi/setup/setup.inc.php
+++ b/phpgwapi/setup/setup.inc.php
@@ -1,77 +1,66 @@
array(
- 'fd' => array(
- 'config_app' => array('type' => 'varchar','precision' => '50','nullable' => False),
- 'config_name' => array('type' => 'varchar','precision' => '255','nullable' => False),
- 'config_value' => array('type' => 'text')
- ),
- 'pk' => array('config_app','config_name'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+$phpgw_baseline = array(
+ 'egw_config' => array(
+ 'fd' => array(
+ 'config_app' => array('type' => 'varchar','precision' => '50','nullable' => False),
+ 'config_name' => array('type' => 'varchar','precision' => '255','nullable' => False),
+ 'config_value' => array('type' => 'text')
),
- 'egw_applications' => array(
- 'fd' => array(
- 'app_id' => array('type' => 'auto','precision' => '4','nullable' => False),
- 'app_name' => array('type' => 'varchar','precision' => '25','nullable' => False),
- 'app_enabled' => array('type' => 'int','precision' => '4','nullable' => False),
- 'app_order' => array('type' => 'int','precision' => '4','nullable' => False),
- 'app_tables' => array('type' => 'text','nullable' => False),
- 'app_version' => array('type' => 'varchar','precision' => '20','nullable' => False,'default' => '0.0')
- ),
- 'pk' => array('app_id'),
- 'fk' => array(),
- 'ix' => array(array('app_enabled','app_order')),
- 'uc' => array('app_name')
+ 'pk' => array('config_app','config_name'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
+ 'egw_applications' => array(
+ 'fd' => array(
+ 'app_id' => array('type' => 'auto','precision' => '4','nullable' => False),
+ 'app_name' => array('type' => 'varchar','precision' => '25','nullable' => False),
+ 'app_enabled' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'app_order' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'app_tables' => array('type' => 'text','nullable' => False),
+ 'app_version' => array('type' => 'varchar','precision' => '20','nullable' => False,'default' => '0.0')
),
- 'egw_acl' => array(
- 'fd' => array(
- 'acl_appname' => array('type' => 'varchar','precision' => '50','nullable' => False),
- 'acl_location' => array('type' => 'varchar','precision' => '255','nullable' => False),
- 'acl_account' => array('type' => 'int','precision' => '4','nullable' => False),
- 'acl_rights' => array('type' => 'int','precision' => '4')
- ),
- 'pk' => array('acl_appname','acl_location','acl_account'),
- 'fk' => array(),
- 'ix' => array('acl_account',array('acl_location','acl_account'),array('acl_appname','acl_account')),
- 'uc' => array()
+ 'pk' => array('app_id'),
+ 'fk' => array(),
+ 'ix' => array(array('app_enabled','app_order')),
+ 'uc' => array('app_name')
+ ),
+ 'egw_acl' => array(
+ 'fd' => array(
+ 'acl_appname' => array('type' => 'varchar','precision' => '50','nullable' => False),
+ 'acl_location' => array('type' => 'varchar','precision' => '255','nullable' => False),
+ 'acl_account' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'acl_rights' => array('type' => 'int','precision' => '4')
),
- 'egw_accounts' => array(
- 'fd' => array(
- 'account_id' => array('type' => 'auto','nullable' => False),
- 'account_lid' => array('type' => 'varchar','precision' => '64','nullable' => False),
- 'account_pwd' => array('type' => 'varchar','precision' => '100','nullable' => False),
- 'account_lastlogin' => array('type' => 'int','precision' => '4'),
- 'account_lastloginfrom' => array('type' => 'varchar','precision' => '255'),
- 'account_lastpwd_change' => array('type' => 'int','precision' => '4'),
- 'account_status' => array('type' => 'char','precision' => '1','nullable' => False,'default' => 'A'),
- 'account_expires' => array('type' => 'int','precision' => '4'),
- 'account_type' => array('type' => 'char','precision' => '1'),
- 'account_primary_group' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0')
- ),
- 'pk' => array('account_id'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array('account_lid')
+ 'pk' => array('acl_appname','acl_location','acl_account'),
+ 'fk' => array(),
+ 'ix' => array('acl_account',array('acl_location','acl_account'),array('acl_appname','acl_account')),
+ 'uc' => array()
+ ),
+ 'egw_accounts' => array(
+ 'fd' => array(
+ 'account_id' => array('type' => 'auto','nullable' => False),
+ 'account_lid' => array('type' => 'varchar','precision' => '64','nullable' => False),
+ 'account_pwd' => array('type' => 'varchar','precision' => '100','nullable' => False),
+ 'account_lastlogin' => array('type' => 'int','precision' => '4'),
+ 'account_lastloginfrom' => array('type' => 'varchar','precision' => '255'),
+ 'account_lastpwd_change' => array('type' => 'int','precision' => '4'),
+ 'account_status' => array('type' => 'char','precision' => '1','nullable' => False,'default' => 'A'),
+ 'account_expires' => array('type' => 'int','precision' => '4'),
+ 'account_type' => array('type' => 'char','precision' => '1'),
+ 'account_primary_group' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0')
),
- 'egw_preferences' => array(
- 'fd' => array(
- 'preference_owner' => array('type' => 'int','precision' => '4','nullable' => False),
- 'preference_app' => array('type' => 'varchar','precision' => '25','nullable' => False),
- 'preference_value' => array('type' => 'text','nullable' => False)
- ),
- 'pk' => array('preference_owner','preference_app'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('account_id'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array('account_lid')
+ ),
+ 'egw_preferences' => array(
+ 'fd' => array(
+ 'preference_owner' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'preference_app' => array('type' => 'varchar','precision' => '25','nullable' => False),
+ 'preference_value' => array('type' => 'text','nullable' => False)
),
- 'egw_sessions' => array(
- 'fd' => array(
- 'session_id' => array('type' => 'varchar','precision' => '128','nullable' => False),
- 'session_lid' => array('type' => 'varchar','precision' => '128'),
- 'session_ip' => array('type' => 'varchar','precision' => '40'),
- 'session_logintime' => array('type' => 'int','precision' => '8'),
- 'session_dla' => array('type' => 'int','precision' => '8'),
- 'session_action' => array('type' => 'varchar','precision' => '255'),
- 'session_flags' => array('type' => 'char','precision' => '2')
- ),
- 'pk' => array('session_id'),
- 'fk' => array(),
- 'ix' => array(array('session_flags','session_dla')),
- 'uc' => array()
+ 'pk' => array('preference_owner','preference_app'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
+ 'egw_sessions' => array(
+ 'fd' => array(
+ 'session_id' => array('type' => 'varchar','precision' => '128','nullable' => False),
+ 'session_lid' => array('type' => 'varchar','precision' => '128'),
+ 'session_ip' => array('type' => 'varchar','precision' => '40'),
+ 'session_logintime' => array('type' => 'int','precision' => '8'),
+ 'session_dla' => array('type' => 'int','precision' => '8'),
+ 'session_action' => array('type' => 'varchar','precision' => '255'),
+ 'session_flags' => array('type' => 'char','precision' => '2')
),
- 'egw_app_sessions' => array(
- 'fd' => array(
- 'sessionid' => array('type' => 'varchar','precision' => '128','nullable' => False),
- 'loginid' => array('type' => 'int','precision' => '4','nullable' => False),
- 'app' => array('type' => 'varchar','precision' => '25','nullable' => False),
- 'location' => array('type' => 'varchar','precision' => '128','nullable' => False),
- 'content' => array('type' => 'longtext'),
- 'session_dla' => array('type' => 'int','precision' => '8')
- ),
- 'pk' => array('sessionid','loginid','app','location'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('session_id'),
+ 'fk' => array(),
+ 'ix' => array(array('session_flags','session_dla')),
+ 'uc' => array()
+ ),
+ 'egw_app_sessions' => array(
+ 'fd' => array(
+ 'sessionid' => array('type' => 'varchar','precision' => '128','nullable' => False),
+ 'loginid' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'app' => array('type' => 'varchar','precision' => '25','nullable' => False),
+ 'location' => array('type' => 'varchar','precision' => '128','nullable' => False),
+ 'content' => array('type' => 'longtext'),
+ 'session_dla' => array('type' => 'int','precision' => '8')
),
- 'egw_access_log' => array(
- 'fd' => array(
- 'sessionid' => array('type' => 'char','precision' => '128','nullable' => False),
- 'loginid' => array('type' => 'varchar','precision' => '64','nullable' => False),
- 'ip' => array('type' => 'varchar','precision' => '40','nullable' => False),
- 'li' => array('type' => 'int','precision' => '4','nullable' => False),
- 'lo' => array('type' => 'int','precision' => '4','default' => '0'),
- 'account_id' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0')
- ),
- 'pk' => array(),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('sessionid','loginid','app','location'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
+ 'egw_access_log' => array(
+ 'fd' => array(
+ 'sessionid' => array('type' => 'char','precision' => '128','nullable' => False),
+ 'loginid' => array('type' => 'varchar','precision' => '64','nullable' => False),
+ 'ip' => array('type' => 'varchar','precision' => '40','nullable' => False),
+ 'li' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'lo' => array('type' => 'int','precision' => '4','default' => '0'),
+ 'account_id' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0')
),
- 'egw_hooks' => array(
- 'fd' => array(
- 'hook_id' => array('type' => 'auto','nullable' => False),
- 'hook_appname' => array('type' => 'varchar','precision' => '255'),
- 'hook_location' => array('type' => 'varchar','precision' => '255'),
- 'hook_filename' => array('type' => 'varchar','precision' => '255')
- ),
- 'pk' => array('hook_id'),
- 'ix' => array(),
- 'fk' => array(),
- 'uc' => array()
+ 'pk' => array(),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
+ 'egw_hooks' => array(
+ 'fd' => array(
+ 'hook_id' => array('type' => 'auto','nullable' => False),
+ 'hook_appname' => array('type' => 'varchar','precision' => '255'),
+ 'hook_location' => array('type' => 'varchar','precision' => '255'),
+ 'hook_filename' => array('type' => 'varchar','precision' => '255')
),
- 'egw_languages' => array(
- 'fd' => array(
- 'lang_id' => array('type' => 'varchar','precision' => '5','nullable' => False),
- 'lang_name' => array('type' => 'varchar','precision' => '50','nullable' => False)
- ),
- 'pk' => array('lang_id'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('hook_id'),
+ 'ix' => array(),
+ 'fk' => array(),
+ 'uc' => array()
+ ),
+ 'egw_languages' => array(
+ 'fd' => array(
+ 'lang_id' => array('type' => 'varchar','precision' => '5','nullable' => False),
+ 'lang_name' => array('type' => 'varchar','precision' => '50','nullable' => False)
),
- 'egw_lang' => array(
- 'fd' => array(
- 'lang' => array('type' => 'varchar','precision' => '5','nullable' => False,'default' => ''),
- 'app_name' => array('type' => 'varchar','precision' => '32','nullable' => False,'default' => 'common'),
- 'message_id' => array('type' => 'varchar','precision' => '128','nullable' => False,'default' => ''),
- 'content' => array('type' => 'text')
- ),
- 'pk' => array('lang','app_name','message_id'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('lang_id'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
+ 'egw_lang' => array(
+ 'fd' => array(
+ 'lang' => array('type' => 'varchar','precision' => '5','nullable' => False,'default' => ''),
+ 'app_name' => array('type' => 'varchar','precision' => '32','nullable' => False,'default' => 'common'),
+ 'message_id' => array('type' => 'varchar','precision' => '128','nullable' => False,'default' => ''),
+ 'content' => array('type' => 'text')
),
- 'egw_nextid' => array(
- 'fd' => array(
- 'id' => array('type' => 'int','precision' => '4','nullable' => True),
- 'appname' => array('type' => 'varchar','precision' => '25','nullable' => False)
- ),
- 'pk' => array('appname'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('lang','app_name','message_id'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
+ 'egw_nextid' => array(
+ 'fd' => array(
+ 'id' => array('type' => 'int','precision' => '4','nullable' => True),
+ 'appname' => array('type' => 'varchar','precision' => '25','nullable' => False)
),
- 'egw_categories' => array(
- 'fd' => array(
- 'cat_id' => array('type' => 'auto','precision' => '4','nullable' => False),
- 'cat_main' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
- 'cat_parent' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
- 'cat_level' => array('type' => 'int','precision' => '2','nullable' => False,'default' => '0'),
- 'cat_owner' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
- 'cat_access' => array('type' => 'varchar','precision' => '7'),
- 'cat_appname' => array('type' => 'varchar','precision' => '50','nullable' => False),
- 'cat_name' => array('type' => 'varchar','precision' => '150','nullable' => False),
- 'cat_description' => array('type' => 'varchar','precision' => '255','nullable' => False),
- 'cat_data' => array('type' => 'text'),
- 'last_mod' => array('type' => 'int','precision' => '8','nullable' => False)
- ),
- 'pk' => array('cat_id'),
- 'fk' => array(),
- 'ix' => array(array('cat_appname','cat_owner','cat_parent','cat_level')),
- 'uc' => array()
+ 'pk' => array('appname'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
+ 'egw_categories' => array(
+ 'fd' => array(
+ 'cat_id' => array('type' => 'auto','precision' => '4','nullable' => False),
+ 'cat_main' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
+ 'cat_parent' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
+ 'cat_level' => array('type' => 'int','precision' => '2','nullable' => False,'default' => '0'),
+ 'cat_owner' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
+ 'cat_access' => array('type' => 'varchar','precision' => '7'),
+ 'cat_appname' => array('type' => 'varchar','precision' => '50','nullable' => False),
+ 'cat_name' => array('type' => 'varchar','precision' => '150','nullable' => False),
+ 'cat_description' => array('type' => 'varchar','precision' => '255','nullable' => False),
+ 'cat_data' => array('type' => 'text'),
+ 'last_mod' => array('type' => 'int','precision' => '8','nullable' => False)
),
- 'egw_log' => array(
- 'fd' => array(
- 'log_id' => array('type' => 'auto','precision' => '4','nullable' => False),
- 'log_date' => array('type' => 'timestamp','nullable' => False),
- 'log_user' => array('type' => 'int','precision' => '4','nullable' => False),
- 'log_app' => array('type' => 'varchar','precision' => '50','nullable' => False),
- 'log_severity' => array('type' => 'char','precision' => '1','nullable' => False)
- ),
- 'pk' => array('log_id'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('cat_id'),
+ 'fk' => array(),
+ 'ix' => array(array('cat_appname','cat_owner','cat_parent','cat_level')),
+ 'uc' => array()
+ ),
+ 'egw_log' => array(
+ 'fd' => array(
+ 'log_id' => array('type' => 'auto','precision' => '4','nullable' => False),
+ 'log_date' => array('type' => 'timestamp','nullable' => False),
+ 'log_user' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'log_app' => array('type' => 'varchar','precision' => '50','nullable' => False),
+ 'log_severity' => array('type' => 'char','precision' => '1','nullable' => False)
),
- 'egw_log_msg' => array(
- 'fd' => array(
- 'log_msg_log_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'log_msg_seq_no' => array('type' => 'int','precision' => '4','nullable' => False),
- 'log_msg_date' => array('type' => 'timestamp','nullable' => False),
- 'log_msg_tx_fid' => array('type' => 'varchar','precision' => '4','nullable' => True),
- 'log_msg_tx_id' => array('type' => 'varchar','precision' => '4','nullable' => True),
- 'log_msg_severity' => array('type' => 'char','precision' => '1','nullable' => False),
- 'log_msg_code' => array('type' => 'varchar','precision' => '30','nullable' => False),
- 'log_msg_msg' => array('type' => 'text','nullable' => False),
- 'log_msg_parms' => array('type' => 'text','nullable' => False),
- 'log_msg_file' => array('type' => 'varchar','precision' => '255','nullable' => False),
- 'log_msg_line' => array('type' => 'int','precision' => '4','nullable' => False)
- ),
- 'pk' => array('log_msg_log_id','log_msg_seq_no'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('log_id'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
+ 'egw_log_msg' => array(
+ 'fd' => array(
+ 'log_msg_log_id' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'log_msg_seq_no' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'log_msg_date' => array('type' => 'timestamp','nullable' => False),
+ 'log_msg_tx_fid' => array('type' => 'varchar','precision' => '4','nullable' => True),
+ 'log_msg_tx_id' => array('type' => 'varchar','precision' => '4','nullable' => True),
+ 'log_msg_severity' => array('type' => 'char','precision' => '1','nullable' => False),
+ 'log_msg_code' => array('type' => 'varchar','precision' => '30','nullable' => False),
+ 'log_msg_msg' => array('type' => 'text','nullable' => False),
+ 'log_msg_parms' => array('type' => 'text','nullable' => False),
+ 'log_msg_file' => array('type' => 'varchar','precision' => '255','nullable' => False),
+ 'log_msg_line' => array('type' => 'int','precision' => '4','nullable' => False)
),
- 'egw_interserv' => array(
- 'fd' => array(
- 'server_id' => array('type' => 'auto','nullable' => False),
- 'server_name' => array('type' => 'varchar','precision' => '64','nullable' => True),
- 'server_host' => array('type' => 'varchar','precision' => '255','nullable' => True),
- 'server_url' => array('type' => 'varchar','precision' => '255','nullable' => True),
- 'trust_level' => array('type' => 'int','precision' => '4'),
- 'trust_rel' => array('type' => 'int','precision' => '4'),
- 'username' => array('type' => 'varchar','precision' => '64','nullable' => True),
- 'password' => array('type' => 'varchar','precision' => '255','nullable' => True),
- 'admin_name' => array('type' => 'varchar','precision' => '255','nullable' => True),
- 'admin_email' => array('type' => 'varchar','precision' => '255','nullable' => True),
- 'server_mode' => array('type' => 'varchar','precision' => '16','nullable' => False,'default' => 'xmlrpc'),
- 'server_security' => array('type' => 'varchar','precision' => '16','nullable' => True)
- ),
- 'pk' => array('server_id'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('log_msg_log_id','log_msg_seq_no'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
+ 'egw_interserv' => array(
+ 'fd' => array(
+ 'server_id' => array('type' => 'auto','nullable' => False),
+ 'server_name' => array('type' => 'varchar','precision' => '64','nullable' => True),
+ 'server_host' => array('type' => 'varchar','precision' => '255','nullable' => True),
+ 'server_url' => array('type' => 'varchar','precision' => '255','nullable' => True),
+ 'trust_level' => array('type' => 'int','precision' => '4'),
+ 'trust_rel' => array('type' => 'int','precision' => '4'),
+ 'username' => array('type' => 'varchar','precision' => '64','nullable' => True),
+ 'password' => array('type' => 'varchar','precision' => '255','nullable' => True),
+ 'admin_name' => array('type' => 'varchar','precision' => '255','nullable' => True),
+ 'admin_email' => array('type' => 'varchar','precision' => '255','nullable' => True),
+ 'server_mode' => array('type' => 'varchar','precision' => '16','nullable' => False,'default' => 'xmlrpc'),
+ 'server_security' => array('type' => 'varchar','precision' => '16','nullable' => True)
),
- 'egw_vfs' => array(
- 'fd' => array(
- 'vfs_file_id' => array('type' => 'auto','nullable' => False),
- 'vfs_owner_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'vfs_createdby_id' => array('type' => 'int','precision' => '4'),
- 'vfs_modifiedby_id' => array('type' => 'int','precision' => '4'),
- 'vfs_created' => array('type' => 'timestamp','nullable' => False,'default' => 'current_timestamp'),
- 'vfs_modified' => array('type' => 'timestamp'),
- 'vfs_size' => array('type' => 'int','precision' => '4'),
- 'vfs_mime_type' => array('type' => 'varchar','precision' => '64'),
- 'vfs_deleteable' => array('type' => 'char','precision' => '1','default' => 'Y'),
- 'vfs_comment' => array('type' => 'varchar','precision' => '255'),
- 'vfs_app' => array('type' => 'varchar','precision' => '25'),
- 'vfs_directory' => array('type' => 'varchar','precision' => '233'),
- 'vfs_name' => array('type' => 'varchar','precision' => '100','nullable' => False),
- 'vfs_link_directory' => array('type' => 'varchar','precision' => '255'),
- 'vfs_link_name' => array('type' => 'varchar','precision' => '128'),
- 'vfs_version' => array('type' => 'varchar','precision' => '30','nullable' => False,'default' => '0.0.0.0'),
- 'vfs_content' => array('type' => 'blob')
- ),
- 'pk' => array('vfs_file_id'),
- 'fk' => array(),
- 'ix' => array(array('vfs_directory','vfs_name')),
- 'uc' => array()
+ 'pk' => array('server_id'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
+ 'egw_vfs' => array(
+ 'fd' => array(
+ 'vfs_file_id' => array('type' => 'auto','nullable' => False),
+ 'vfs_owner_id' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'vfs_createdby_id' => array('type' => 'int','precision' => '4'),
+ 'vfs_modifiedby_id' => array('type' => 'int','precision' => '4'),
+ 'vfs_created' => array('type' => 'timestamp','nullable' => False,'default' => 'current_timestamp'),
+ 'vfs_modified' => array('type' => 'timestamp'),
+ 'vfs_size' => array('type' => 'int','precision' => '4'),
+ 'vfs_mime_type' => array('type' => 'varchar','precision' => '64'),
+ 'vfs_deleteable' => array('type' => 'char','precision' => '1','default' => 'Y'),
+ 'vfs_comment' => array('type' => 'varchar','precision' => '255'),
+ 'vfs_app' => array('type' => 'varchar','precision' => '25'),
+ 'vfs_directory' => array('type' => 'varchar','precision' => '233'),
+ 'vfs_name' => array('type' => 'varchar','precision' => '100','nullable' => False),
+ 'vfs_link_directory' => array('type' => 'varchar','precision' => '255'),
+ 'vfs_link_name' => array('type' => 'varchar','precision' => '128'),
+ 'vfs_version' => array('type' => 'varchar','precision' => '30','nullable' => False,'default' => '0.0.0.0'),
+ 'vfs_content' => array('type' => 'blob')
),
- 'egw_history_log' => array(
- 'fd' => array(
- 'history_id' => array('type' => 'auto','precision' => '4','nullable' => False),
- 'history_record_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'history_appname' => array('type' => 'varchar','precision' => '64','nullable' => False),
- 'history_owner' => array('type' => 'int','precision' => '4','nullable' => False),
- 'history_status' => array('type' => 'char','precision' => '2','nullable' => False),
- 'history_new_value' => array('type' => 'text','nullable' => False),
- 'history_timestamp' => array('type' => 'timestamp','nullable' => False,'default' => 'current_timestamp'),
- 'history_old_value' => array('type' => 'text','nullable' => False)
- ),
- 'pk' => array('history_id'),
- 'fk' => array(),
- 'ix' => array(array('history_appname','history_record_id','history_status','history_timestamp')),
- 'uc' => array()
+ 'pk' => array('vfs_file_id'),
+ 'fk' => array(),
+ 'ix' => array(array('vfs_directory','vfs_name')),
+ 'uc' => array()
+ ),
+ 'egw_history_log' => array(
+ 'fd' => array(
+ 'history_id' => array('type' => 'auto','precision' => '4','nullable' => False),
+ 'history_record_id' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'history_appname' => array('type' => 'varchar','precision' => '64','nullable' => False),
+ 'history_owner' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'history_status' => array('type' => 'char','precision' => '2','nullable' => False),
+ 'history_new_value' => array('type' => 'text','nullable' => False),
+ 'history_timestamp' => array('type' => 'timestamp','nullable' => False,'default' => 'current_timestamp'),
+ 'history_old_value' => array('type' => 'text','nullable' => False)
),
- 'egw_async' => array(
- 'fd' => array(
- 'async_id' => array('type' => 'varchar','precision' => '255','nullable' => False),
- 'async_next' => array('type' => 'int','precision' => '4','nullable' => False),
- 'async_times' => array('type' => 'varchar','precision' => '255','nullable' => False),
- 'async_method' => array('type' => 'varchar','precision' => '80','nullable' => False),
- 'async_data' => array('type' => 'text','nullable' => False),
- 'async_account_id' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0')
- ),
- 'pk' => array('async_id'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('history_id'),
+ 'fk' => array(),
+ 'ix' => array(array('history_appname','history_record_id','history_status','history_timestamp')),
+ 'uc' => array()
+ ),
+ 'egw_async' => array(
+ 'fd' => array(
+ 'async_id' => array('type' => 'varchar','precision' => '255','nullable' => False),
+ 'async_next' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'async_times' => array('type' => 'varchar','precision' => '255','nullable' => False),
+ 'async_method' => array('type' => 'varchar','precision' => '80','nullable' => False),
+ 'async_data' => array('type' => 'text','nullable' => False),
+ 'async_account_id' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0')
),
- 'egw_api_content_history' => array(
- 'fd' => array(
- 'sync_appname' => array('type' => 'varchar','precision' => '60','nullable' => False),
- 'sync_contentid' => array('type' => 'varchar','precision' => '60','nullable' => False),
- 'sync_added' => array('type' => 'timestamp'),
- 'sync_modified' => array('type' => 'timestamp'),
- 'sync_deleted' => array('type' => 'timestamp'),
- 'sync_id' => array('type' => 'auto','nullable' => False),
- 'sync_guid' => array('type' => 'varchar','precision' => '120','nullable' => False),
- 'sync_changedby' => array('type' => 'int','precision' => '4','nullable' => False)
- ),
- 'pk' => array('sync_id'),
- 'fk' => array(),
- 'ix' => array('sync_added','sync_modified','sync_deleted','sync_guid','sync_changedby',array('sync_appname','sync_contentid')),
- 'uc' => array()
+ 'pk' => array('async_id'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
+ 'egw_api_content_history' => array(
+ 'fd' => array(
+ 'sync_appname' => array('type' => 'varchar','precision' => '60','nullable' => False),
+ 'sync_contentid' => array('type' => 'varchar','precision' => '60','nullable' => False),
+ 'sync_added' => array('type' => 'timestamp'),
+ 'sync_modified' => array('type' => 'timestamp'),
+ 'sync_deleted' => array('type' => 'timestamp'),
+ 'sync_id' => array('type' => 'auto','nullable' => False),
+ 'sync_guid' => array('type' => 'varchar','precision' => '120','nullable' => False),
+ 'sync_changedby' => array('type' => 'int','precision' => '4','nullable' => False)
),
- 'phpgw_vfs2_mimetypes' => array(
- 'fd' => array(
- 'mime_id' => array('type' => 'auto','nullable' => False),
- 'extension' => array('type' => 'varchar','precision' => '10','nullable' => False),
- 'mime' => array('type' => 'varchar','precision' => '50','nullable' => False),
- 'mime_magic' => array('type' => 'varchar','precision' => '255','nullable' => True),
- 'friendly' => array('type' => 'varchar','precision' => '50','nullable' => False),
- 'image' => array('type' => 'blob'),
- 'proper_id' => array('type' => 'varchar','precision' => '4')
- ),
- 'pk' => array('mime_id'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('sync_id'),
+ 'fk' => array(),
+ 'ix' => array('sync_added','sync_modified','sync_deleted','sync_guid','sync_changedby',array('sync_appname','sync_contentid')),
+ 'uc' => array()
+ ),
+ 'egw_links' => array(
+ 'fd' => array(
+ 'link_id' => array('type' => 'auto','nullable' => False),
+ 'link_app1' => array('type' => 'varchar','precision' => '25','nullable' => False),
+ 'link_id1' => array('type' => 'varchar','precision' => '50','nullable' => False),
+ 'link_app2' => array('type' => 'varchar','precision' => '25','nullable' => False),
+ 'link_id2' => array('type' => 'varchar','precision' => '50','nullable' => False),
+ 'link_remark' => array('type' => 'varchar','precision' => '100'),
+ 'link_lastmod' => array('type' => 'int','precision' => '8','nullable' => False),
+ 'link_owner' => array('type' => 'int','precision' => '4','nullable' => False)
),
- 'phpgw_vfs2_files' => array(
- 'fd' => array(
- 'file_id' => array('type' => 'auto','nullable' => False),
- 'mime_id' => array('type' => 'int','precision' => '4'),
- 'owner_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'createdby_id' => array('type' => 'int','precision' => '4'),
- 'modifiedby_id' => array('type' => 'int','precision' => '4'),
- 'created' => array('type' => 'timestamp','nullable' => False,'default' => '1970-01-01 00:00:00'),
- 'modified' => array('type' => 'timestamp'),
- 'size' => array('type' => 'int','precision' => '8'),
- 'deleteable' => array('type' => 'char','precision' => '1','default' => 'Y'),
- 'comment' => array('type' => 'varchar','precision' => '255'),
- 'app' => array('type' => 'varchar','precision' => '25'),
- 'directory' => array('type' => 'varchar','precision' => '255'),
- 'name' => array('type' => 'varchar','precision' => '64','nullable' => False),
- 'link_directory' => array('type' => 'varchar','precision' => '255'),
- 'link_name' => array('type' => 'varchar','precision' => '128'),
- 'version' => array('type' => 'varchar','precision' => '30','nullable' => False,'default' => '0.0.0.0'),
- 'content' => array('type' => 'longtext'),
- 'is_backup' => array('type' => 'varchar','precision' => '1','nullable' => False,'default' => 'N'),
- 'shared' => array('type' => 'varchar','precision' => '1','nullable' => False,'default' => 'N'),
- 'proper_id' => array('type' => 'varchar','precision' => '45')
- ),
- 'pk' => array('file_id'),
- 'fk' => array(),
- 'ix' => array(array('directory','name')),
- 'uc' => array()
+ 'pk' => array('link_id'),
+ 'fk' => array(),
+ 'ix' => array(array('link_app1','link_id1','link_lastmod'),array('link_app2','link_id2','link_lastmod')),
+ 'uc' => array()
+ ),
+ 'egw_addressbook' => array(
+ 'fd' => array(
+ 'contact_id' => array('type' => 'auto','nullable' => False),
+ 'contact_tid' => array('type' => 'char','precision' => '1','default' => 'n'),
+ 'contact_owner' => array('type' => 'int','precision' => '8','nullable' => False),
+ 'contact_private' => array('type' => 'int','precision' => '1','default' => '0'),
+ 'cat_id' => array('type' => 'varchar','precision' => '255'),
+ 'n_family' => array('type' => 'varchar','precision' => '64'),
+ 'n_given' => array('type' => 'varchar','precision' => '64'),
+ 'n_middle' => array('type' => 'varchar','precision' => '64'),
+ 'n_prefix' => array('type' => 'varchar','precision' => '64'),
+ 'n_suffix' => array('type' => 'varchar','precision' => '64'),
+ 'n_fn' => array('type' => 'varchar','precision' => '128'),
+ 'n_fileas' => array('type' => 'varchar','precision' => '255'),
+ 'contact_bday' => array('type' => 'varchar','precision' => '12'),
+ 'org_name' => array('type' => 'varchar','precision' => '128'),
+ 'org_unit' => array('type' => 'varchar','precision' => '64'),
+ 'contact_title' => array('type' => 'varchar','precision' => '64'),
+ 'contact_role' => array('type' => 'varchar','precision' => '64'),
+ 'contact_assistent' => array('type' => 'varchar','precision' => '64'),
+ 'contact_room' => array('type' => 'varchar','precision' => '64'),
+ 'adr_one_street' => array('type' => 'varchar','precision' => '64'),
+ 'adr_one_street2' => array('type' => 'varchar','precision' => '64'),
+ 'adr_one_locality' => array('type' => 'varchar','precision' => '64'),
+ 'adr_one_region' => array('type' => 'varchar','precision' => '64'),
+ 'adr_one_postalcode' => array('type' => 'varchar','precision' => '64'),
+ 'adr_one_countryname' => array('type' => 'varchar','precision' => '64'),
+ 'contact_label' => array('type' => 'text'),
+ 'adr_two_street' => array('type' => 'varchar','precision' => '64'),
+ 'adr_two_street2' => array('type' => 'varchar','precision' => '64'),
+ 'adr_two_locality' => array('type' => 'varchar','precision' => '64'),
+ 'adr_two_region' => array('type' => 'varchar','precision' => '64'),
+ 'adr_two_postalcode' => array('type' => 'varchar','precision' => '64'),
+ 'adr_two_countryname' => array('type' => 'varchar','precision' => '64'),
+ 'tel_work' => array('type' => 'varchar','precision' => '40'),
+ 'tel_cell' => array('type' => 'varchar','precision' => '40'),
+ 'tel_fax' => array('type' => 'varchar','precision' => '40'),
+ 'tel_assistent' => array('type' => 'varchar','precision' => '40'),
+ 'tel_car' => array('type' => 'varchar','precision' => '40'),
+ 'tel_pager' => array('type' => 'varchar','precision' => '40'),
+ 'tel_home' => array('type' => 'varchar','precision' => '40'),
+ 'tel_fax_home' => array('type' => 'varchar','precision' => '40'),
+ 'tel_cell_private' => array('type' => 'varchar','precision' => '40'),
+ 'tel_other' => array('type' => 'varchar','precision' => '40'),
+ 'tel_prefer' => array('type' => 'varchar','precision' => '32'),
+ 'contact_email' => array('type' => 'varchar','precision' => '128'),
+ 'contact_email_home' => array('type' => 'varchar','precision' => '128'),
+ 'contact_url' => array('type' => 'varchar','precision' => '128'),
+ 'contact_url_home' => array('type' => 'varchar','precision' => '128'),
+ 'contact_freebusy_uri' => array('type' => 'varchar','precision' => '128'),
+ 'contact_calendar_uri' => array('type' => 'varchar','precision' => '128'),
+ 'contact_note' => array('type' => 'text'),
+ 'contact_tz' => array('type' => 'varchar','precision' => '8'),
+ 'contact_geo' => array('type' => 'varchar','precision' => '32'),
+ 'contact_pubkey' => array('type' => 'text'),
+ 'contact_created' => array('type' => 'int','precision' => '8'),
+ 'contact_creator' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'contact_modified' => array('type' => 'int','precision' => '8','nullable' => False),
+ 'contact_modifier' => array('type' => 'int','precision' => '4'),
+ 'contact_jpegphoto' => array('type' => 'blob'),
+ 'account_id' => array('type' => 'int','precision' => '4')
),
- 'phpgw_vfs2_customfields' => array(
- 'fd' => array(
- 'customfield_id' => array('type' => 'auto','nullable' => False),
- 'customfield_name' => array('type' => 'varchar','precision' => '60','nullable' => False),
- 'customfield_description' => array('type' => 'varchar','precision' => '255','nullable' => True),
- 'customfield_type' => array('type' => 'varchar','precision' => '20','nullable' => False),
- 'customfield_precision' => array('type' => 'int','precision' => '4','nullable' => True),
- 'customfield_active' => array('type' => 'varchar','precision' => '1','nullable' => False,'default' => 'N')
- ),
- 'pk' => array('customfield_id'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('contact_id'),
+ 'fk' => array(),
+ 'ix' => array('contact_owner','cat_id','n_fileas',array('n_family','n_given'),array('n_given','n_family'),array('org_name','n_family','n_given')),
+ 'uc' => array('account_id')
+ ),
+ 'egw_addressbook_extra' => array(
+ 'fd' => array(
+ 'contact_id' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'contact_owner' => array('type' => 'int','precision' => '8'),
+ 'contact_name' => array('type' => 'varchar','precision' => '255','nullable' => False),
+ 'contact_value' => array('type' => 'text')
),
- 'phpgw_vfs2_quota' => array(
- 'fd' => array(
- 'account_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'quota' => array('type' => 'int','precision' => '4','nullable' => False)
- ),
- 'pk' => array('account_id'),
- 'fk' => array('account_id' => array('egw_accounts' => 'account_id')),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('contact_id','contact_name'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
+ 'egw_addressbook_lists' => array(
+ 'fd' => array(
+ 'list_id' => array('type' => 'auto','nullable' => False),
+ 'list_name' => array('type' => 'varchar','precision' => '80','nullable' => False),
+ 'list_owner' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'list_created' => array('type' => 'int','precision' => '8'),
+ 'list_creator' => array('type' => 'int','precision' => '4')
),
- 'phpgw_vfs2_shares' => array(
- 'fd' => array(
- 'account_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'file_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'acl_rights' => array('type' => 'int','precision' => '4','nullable' => False)
- ),
- 'pk' => array('account_id','file_id'),
- 'fk' => array('account_id' => array('egw_accounts' => 'account_id'),'file_id' => array('phpgw_vfs2_files' => 'file_id')),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('list_id'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array(array('list_owner','list_name'))
+ ),
+ 'egw_addressbook2list' => array(
+ 'fd' => array(
+ 'contact_id' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'list_id' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'list_added' => array('type' => 'int','precision' => '8'),
+ 'list_added_by' => array('type' => 'int','precision' => '4')
),
- 'phpgw_vfs2_versioning' => array(
- 'fd' => array(
- 'version_id' => array('type' => 'auto','nullable' => False),
- 'file_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'operation' => array('type' => 'int','precision' => '4','nullable' => False),
- 'modifiedby_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'modified' => array('type' => 'timestamp','nullable' => False),
- 'version' => array('type' => 'varchar','precision' => '30','nullable' => False),
- 'comment' => array('type' => 'varchar','precision' => '255','nullable' => True),
- 'backup_file_id' => array('type' => 'int','precision' => '4','nullable' => True),
- 'backup_content' => array('type' => 'longtext','nullable' => True),
- 'src' => array('type' => 'varchar','precision' => '255','nullable' => True),
- 'dest' => array('type' => 'varchar','precision' => '255','nullable' => True)
- ),
- 'pk' => array('version_id'),
- 'fk' => array('file_id' => array('phpgw_vfs2_files' => 'file_id')),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('contact_id','list_id'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
+ 'egw_sqlfs' => array(
+ 'fd' => array(
+ 'fs_id' => array('type' => 'auto','nullable' => False),
+ 'fs_dir' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'fs_name' => array('type' => 'varchar','precision' => '200','nullable' => False),
+ 'fs_mode' => array('type' => 'int','precision' => '2','nullable' => False),
+ 'fs_uid' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
+ 'fs_gid' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
+ 'fs_created' => array('type' => 'timestamp','precision' => '8','nullable' => False,'default' => 'current_timestamp'),
+ 'fs_modified' => array('type' => 'timestamp','precision' => '8','nullable' => False),
+ 'fs_mime' => array('type' => 'varchar','precision' => '64','nullable' => False),
+ 'fs_size' => array('type' => 'int','precision' => '8','nullable' => False),
+ 'fs_creator' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'fs_modifier' => array('type' => 'int','precision' => '4'),
+ 'fs_active' => array('type' => 'bool','nullable' => False,'default' => 't'),
+ 'fs_comment' => array('type' => 'varchar','precision' => '255'),
+ 'fs_content' => array('type' => 'blob')
),
- 'phpgw_vfs2_customfields_data' => array(
- 'fd' => array(
- 'file_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'customfield_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'data' => array('type' => 'longtext','nullable' => True)
- ),
- 'pk' => array('file_id','customfield_id'),
- 'fk' => array('file_id' => array('phpgw_vfs2_files' => 'file_id'),'customfield_id' => array('phpgw_vfs2_customfields' => 'customfield_id')),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('fs_id'),
+ 'fk' => array(),
+ 'ix' => array(array('fs_dir','fs_active','fs_name')),
+ 'uc' => array()
+ ),
+ 'egw_index_keywords' => array(
+ 'fd' => array(
+ 'si_id' => array('type' => 'auto','nullable' => False),
+ 'si_keyword' => array('type' => 'varchar','precision' => '64','nullable' => False),
+ 'si_ignore' => array('type' => 'bool')
),
- 'phpgw_vfs2_prefixes' => array(
- 'fd' => array(
- 'prefix_id' => array('type' => 'auto','nullable' => False),
- 'prefix' => array('type' => 'varchar','precision' => '8','nullable' => False),
- 'owner_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'prefix_description' => array('type' => 'varchar','precision' => '30','nullable' => True),
- 'prefix_type' => array('type' => 'varchar','precision' => '1','nullable' => False,'default' => 'p')
- ),
- 'pk' => array('prefix_id'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
+ 'pk' => array('si_id'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array('si_keyword')
+ ),
+ 'egw_index' => array(
+ 'fd' => array(
+ 'si_app' => array('type' => 'varchar','precision' => '25','nullable' => False),
+ 'si_app_id' => array('type' => 'varchar','precision' => '50','nullable' => False),
+ 'si_id' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'si_owner' => array('type' => 'int','precision' => '4','nullable' => False)
),
- 'egw_links' => array(
- 'fd' => array(
- 'link_id' => array('type' => 'auto','nullable' => False),
- 'link_app1' => array('type' => 'varchar','precision' => '25','nullable' => False),
- 'link_id1' => array('type' => 'varchar','precision' => '50','nullable' => False),
- 'link_app2' => array('type' => 'varchar','precision' => '25','nullable' => False),
- 'link_id2' => array('type' => 'varchar','precision' => '50','nullable' => False),
- 'link_remark' => array('type' => 'varchar','precision' => '100'),
- 'link_lastmod' => array('type' => 'int','precision' => '8','nullable' => False),
- 'link_owner' => array('type' => 'int','precision' => '4','nullable' => False)
- ),
- 'pk' => array('link_id'),
- 'fk' => array(),
- 'ix' => array(array('link_app1','link_id1','link_lastmod'),array('link_app2','link_id2','link_lastmod')),
- 'uc' => array()
+ 'pk' => array('si_app','si_app_id','si_id'),
+ 'fk' => array(),
+ 'ix' => array('si_id'),
+ 'uc' => array()
+ ),
+ 'egw_cat2entry' => array(
+ 'fd' => array(
+ 'ce_app' => array('type' => 'varchar','precision' => '25','nullable' => False),
+ 'ce_app_id' => array('type' => 'varchar','precision' => '50','nullable' => False),
+ 'cat_id' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'ce_owner' => array('type' => 'int','precision' => '4','nullable' => False)
),
- 'egw_addressbook' => array(
- 'fd' => array(
- 'contact_id' => array('type' => 'auto','nullable' => False),
- 'contact_tid' => array('type' => 'char','precision' => '1','default' => 'n'),
- 'contact_owner' => array('type' => 'int','precision' => '8','nullable' => False),
- 'contact_private' => array('type' => 'int','precision' => '1','default' => '0'),
- 'cat_id' => array('type' => 'varchar','precision' => '255'),
- 'n_family' => array('type' => 'varchar','precision' => '64'),
- 'n_given' => array('type' => 'varchar','precision' => '64'),
- 'n_middle' => array('type' => 'varchar','precision' => '64'),
- 'n_prefix' => array('type' => 'varchar','precision' => '64'),
- 'n_suffix' => array('type' => 'varchar','precision' => '64'),
- 'n_fn' => array('type' => 'varchar','precision' => '128'),
- 'n_fileas' => array('type' => 'varchar','precision' => '255'),
- 'contact_bday' => array('type' => 'varchar','precision' => '12'),
- 'org_name' => array('type' => 'varchar','precision' => '128'),
- 'org_unit' => array('type' => 'varchar','precision' => '64'),
- 'contact_title' => array('type' => 'varchar','precision' => '64'),
- 'contact_role' => array('type' => 'varchar','precision' => '64'),
- 'contact_assistent' => array('type' => 'varchar','precision' => '64'),
- 'contact_room' => array('type' => 'varchar','precision' => '64'),
- 'adr_one_street' => array('type' => 'varchar','precision' => '64'),
- 'adr_one_street2' => array('type' => 'varchar','precision' => '64'),
- 'adr_one_locality' => array('type' => 'varchar','precision' => '64'),
- 'adr_one_region' => array('type' => 'varchar','precision' => '64'),
- 'adr_one_postalcode' => array('type' => 'varchar','precision' => '64'),
- 'adr_one_countryname' => array('type' => 'varchar','precision' => '64'),
- 'contact_label' => array('type' => 'text'),
- 'adr_two_street' => array('type' => 'varchar','precision' => '64'),
- 'adr_two_street2' => array('type' => 'varchar','precision' => '64'),
- 'adr_two_locality' => array('type' => 'varchar','precision' => '64'),
- 'adr_two_region' => array('type' => 'varchar','precision' => '64'),
- 'adr_two_postalcode' => array('type' => 'varchar','precision' => '64'),
- 'adr_two_countryname' => array('type' => 'varchar','precision' => '64'),
- 'tel_work' => array('type' => 'varchar','precision' => '40'),
- 'tel_cell' => array('type' => 'varchar','precision' => '40'),
- 'tel_fax' => array('type' => 'varchar','precision' => '40'),
- 'tel_assistent' => array('type' => 'varchar','precision' => '40'),
- 'tel_car' => array('type' => 'varchar','precision' => '40'),
- 'tel_pager' => array('type' => 'varchar','precision' => '40'),
- 'tel_home' => array('type' => 'varchar','precision' => '40'),
- 'tel_fax_home' => array('type' => 'varchar','precision' => '40'),
- 'tel_cell_private' => array('type' => 'varchar','precision' => '40'),
- 'tel_other' => array('type' => 'varchar','precision' => '40'),
- 'tel_prefer' => array('type' => 'varchar','precision' => '32'),
- 'contact_email' => array('type' => 'varchar','precision' => '128'),
- 'contact_email_home' => array('type' => 'varchar','precision' => '128'),
- 'contact_url' => array('type' => 'varchar','precision' => '128'),
- 'contact_url_home' => array('type' => 'varchar','precision' => '128'),
- 'contact_freebusy_uri' => array('type' => 'varchar','precision' => '128'),
- 'contact_calendar_uri' => array('type' => 'varchar','precision' => '128'),
- 'contact_note' => array('type' => 'text'),
- 'contact_tz' => array('type' => 'varchar','precision' => '8'),
- 'contact_geo' => array('type' => 'varchar','precision' => '32'),
- 'contact_pubkey' => array('type' => 'text'),
- 'contact_created' => array('type' => 'int','precision' => '8'),
- 'contact_creator' => array('type' => 'int','precision' => '4','nullable' => False),
- 'contact_modified' => array('type' => 'int','precision' => '8','nullable' => False),
- 'contact_modifier' => array('type' => 'int','precision' => '4'),
- 'contact_jpegphoto' => array('type' => 'blob'),
- 'account_id' => array('type' => 'int','precision' => '4')
- ),
- 'pk' => array('contact_id'),
- 'fk' => array(),
- 'ix' => array('contact_owner','cat_id','n_fileas',array('n_family','n_given'),array('n_given','n_family'),array('org_name','n_family','n_given')),
- 'uc' => array('account_id')
- ),
- 'egw_addressbook_extra' => array(
- 'fd' => array(
- 'contact_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'contact_owner' => array('type' => 'int','precision' => '8'),
- 'contact_name' => array('type' => 'varchar','precision' => '255','nullable' => False),
- 'contact_value' => array('type' => 'text')
- ),
- 'pk' => array('contact_id','contact_name'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
- ),
- 'egw_addressbook_lists' => array(
- 'fd' => array(
- 'list_id' => array('type' => 'auto','nullable' => False),
- 'list_name' => array('type' => 'varchar','precision' => '80','nullable' => False),
- 'list_owner' => array('type' => 'int','precision' => '4','nullable' => False),
- 'list_created' => array('type' => 'int','precision' => '8'),
- 'list_creator' => array('type' => 'int','precision' => '4')
- ),
- 'pk' => array('list_id'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array(array('list_owner','list_name'))
- ),
- 'egw_addressbook2list' => array(
- 'fd' => array(
- 'contact_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'list_id' => array('type' => 'int','precision' => '4','nullable' => False),
- 'list_added' => array('type' => 'int','precision' => '8'),
- 'list_added_by' => array('type' => 'int','precision' => '4')
- ),
- 'pk' => array('contact_id','list_id'),
- 'fk' => array(),
- 'ix' => array(),
- 'uc' => array()
- ),
- 'egw_sqlfs' => array(
- 'fd' => array(
- 'fs_id' => array('type' => 'auto','nullable' => False),
- 'fs_dir' => array('type' => 'int','precision' => '4','nullable' => False),
- 'fs_name' => array('type' => 'varchar','precision' => '200','nullable' => False),
- 'fs_mode' => array('type' => 'int','precision' => '2','nullable' => False),
- 'fs_uid' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
- 'fs_gid' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
- 'fs_created' => array('type' => 'timestamp','precision' => '8','nullable' => False,'default' => 'current_timestamp'),
- 'fs_modified' => array('type' => 'timestamp','precision' => '8','nullable' => False),
- 'fs_mime' => array('type' => 'varchar','precision' => '64','nullable' => False),
- 'fs_size' => array('type' => 'int','precision' => '8','nullable' => False),
- 'fs_creator' => array('type' => 'int','precision' => '4','nullable' => False),
- 'fs_modifier' => array('type' => 'int','precision' => '4'),
- 'fs_active' => array('type' => 'bool','nullable' => False,'default' => 't'),
- 'fs_comment' => array('type' => 'varchar','precision' => '255'),
- 'fs_content' => array('type' => 'blob')
- ),
- 'pk' => array('fs_id'),
- 'fk' => array(),
- 'ix' => array(array('fs_dir','fs_active','fs_name')),
- 'uc' => array()
- )
- );
+ 'pk' => array('ce_app','ce_app_id','cat_id'),
+ 'fk' => array(),
+ 'ix' => array('cat_id'),
+ 'uc' => array()
+ ),
+);
diff --git a/phpgwapi/setup/tables_update.inc.php b/phpgwapi/setup/tables_update.inc.php
index b0d2fa8c6a..c8093d221b 100644
--- a/phpgwapi/setup/tables_update.inc.php
+++ b/phpgwapi/setup/tables_update.inc.php
@@ -1,274 +1,366 @@
1.6
+ *
+ * @link http://www.egroupware.org
+ * @package api
+ * @subpackage setup
+ * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
+ * @version $Id$
+ */
- // $Id$
+/* Include older eGroupWare update support */
+include('tables_update_0_9_9.inc.php');
+include('tables_update_0_9_10.inc.php');
+include('tables_update_0_9_12.inc.php');
+include('tables_update_0_9_14.inc.php');
+include('tables_update_1_0.inc.php');
+include('tables_update_1_2.inc.php');
- /* Include older eGroupWare update support */
- include('tables_update_0_9_9.inc.php');
- include('tables_update_0_9_10.inc.php');
- include('tables_update_0_9_12.inc.php');
- include('tables_update_0_9_14.inc.php');
- include('tables_update_1_0.inc.php');
- include('tables_update_1_2.inc.php');
+// updates from the stable 1.4 branch
+$test[] = '1.4.001';
+function phpgwapi_upgrade1_4_001()
+{
+ return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001';
+}
- // updates from the stable 1.4 branch
- $test[] = '1.4.001';
- function phpgwapi_upgrade1_4_001()
+$test[] = '1.4.002';
+function phpgwapi_upgrade1_4_002()
+{
+ return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001';
+}
+
+$test[] = '1.4.003';
+function phpgwapi_upgrade1_4_003()
+{
+ return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001';
+}
+
+$test[] = '1.4.004';
+function phpgwapi_upgrade1_4_004()
+{
+ return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001';
+}
+
+$test[] = '1.5.001';
+function phpgwapi_upgrade1_5_001()
+{
+ $GLOBALS['egw_setup']->oProc->AlterColumn('egw_addressbook','org_name',array(
+ 'type' => 'varchar',
+ 'precision' => '128',
+ 'nullable' => true
+ ));
+ $GLOBALS['egw_setup']->oProc->AlterColumn('egw_addressbook','contact_email',array(
+ 'type' => 'varchar',
+ 'precision' => '128',
+ 'nullable' => true
+ ));
+ $GLOBALS['egw_setup']->oProc->AlterColumn('egw_addressbook','contact_email_home',array(
+ 'type' => 'varchar',
+ 'precision' => '128',
+ 'nullable' => true
+ ));
+
+ return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.002';
+}
+
+$test[] = '1.5.002';
+function phpgwapi_upgrade1_5_002()
+{
+ $GLOBALS['egw_setup']->oProc->CreateTable('egw_sqlfs',array(
+ 'fd' => array(
+ 'fs_id' => array('type' => 'auto','nullable' => False),
+ 'fs_dir' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'fs_name' => array('type' => 'varchar','precision' => '200','nullable' => False),
+ 'fs_mode' => array('type' => 'int','precision' => '2','nullable' => False),
+ 'fs_uid' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
+ 'fs_gid' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
+ 'fs_created' => array('type' => 'timestamp','precision' => '8','nullable' => False,'default' => 'current_timestamp'),
+ 'fs_modified' => array('type' => 'timestamp','precision' => '8','nullable' => False),
+ 'fs_mime' => array('type' => 'varchar','precision' => '64','nullable' => False),
+ 'fs_size' => array('type' => 'int','precision' => '8','nullable' => False),
+ 'fs_creator' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'fs_modifier' => array('type' => 'int','precision' => '4'),
+ 'fs_active' => array('type' => 'bool','nullable' => False,'default' => 't'),
+ 'fs_comment' => array('type' => 'varchar','precision' => '255'),
+ 'fs_content' => array('type' => 'blob')
+ ),
+ 'pk' => array('fs_id'),
+ 'fk' => array(),
+ 'ix' => array(array('fs_dir','fs_active','fs_name')),
+ 'uc' => array()
+ ));
+
+ return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.003';
+}
+
+$test[] = '1.5.003';
+function phpgwapi_upgrade1_5_003()
+{
+ // import the current egw_vfs into egw_sqlfs
+ // ToDo: moving /infolog and /infolog/$app to /apps in the files dir!!!
+ $debug = $GLOBALS['DEBUG'];
+
+ // delete the table in case this update runs multiple times
+ $GLOBALS['egw_setup']->db->query('DELETE FROM egw_sqlfs',__LINE__,__FILE__);
+ if ($GLOBALS['egw_setup']->db->Type == 'mysql')
{
- return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001';
+ $GLOBALS['egw_setup']->db->query('ALTER TABLE egw_sqlfs AUTO_INCREMENT=1',__LINE__,__FILE__);
}
-
- $test[] = '1.4.002';
- function phpgwapi_upgrade1_4_002()
+ // make sure the required dirs are there and have the following id's
+ $dirs = array(
+ '/' => 1,
+ '/home' => 2,
+ '/apps' => 3,
+ );
+ foreach($dirs as $path => $id)
{
- return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001';
- }
-
- $test[] = '1.4.003';
- function phpgwapi_upgrade1_4_003()
- {
- return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001';
- }
-
- $test[] = '1.4.004';
- function phpgwapi_upgrade1_4_004()
- {
- return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.001';
- }
-
- $test[] = '1.5.001';
- function phpgwapi_upgrade1_5_001()
- {
- $GLOBALS['egw_setup']->oProc->AlterColumn('egw_addressbook','org_name',array(
- 'type' => 'varchar',
- 'precision' => '128',
- 'nullable' => true
- ));
- $GLOBALS['egw_setup']->oProc->AlterColumn('egw_addressbook','contact_email',array(
- 'type' => 'varchar',
- 'precision' => '128',
- 'nullable' => true
- ));
- $GLOBALS['egw_setup']->oProc->AlterColumn('egw_addressbook','contact_email_home',array(
- 'type' => 'varchar',
- 'precision' => '128',
- 'nullable' => true
- ));
-
- return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.002';
- }
-
- $test[] = '1.5.002';
- function phpgwapi_upgrade1_5_002()
- {
- $GLOBALS['egw_setup']->oProc->CreateTable('egw_sqlfs',array(
- 'fd' => array(
- 'fs_id' => array('type' => 'auto','nullable' => False),
- 'fs_dir' => array('type' => 'int','precision' => '4','nullable' => False),
- 'fs_name' => array('type' => 'varchar','precision' => '200','nullable' => False),
- 'fs_mode' => array('type' => 'int','precision' => '2','nullable' => False),
- 'fs_uid' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
- 'fs_gid' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
- 'fs_created' => array('type' => 'timestamp','precision' => '8','nullable' => False,'default' => 'current_timestamp'),
- 'fs_modified' => array('type' => 'timestamp','precision' => '8','nullable' => False),
- 'fs_mime' => array('type' => 'varchar','precision' => '64','nullable' => False),
- 'fs_size' => array('type' => 'int','precision' => '8','nullable' => False),
- 'fs_creator' => array('type' => 'int','precision' => '4','nullable' => False),
- 'fs_modifier' => array('type' => 'int','precision' => '4'),
- 'fs_active' => array('type' => 'bool','nullable' => False,'default' => 't'),
- 'fs_comment' => array('type' => 'varchar','precision' => '255'),
- 'fs_content' => array('type' => 'blob')
- ),
- 'pk' => array('fs_id'),
- 'fk' => array(),
- 'ix' => array(array('fs_dir','fs_active','fs_name')),
- 'uc' => array()
- ));
-
- return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.003';
- }
-
- $test[] = '1.5.003';
- function phpgwapi_upgrade1_5_003()
- {
- // import the current egw_vfs into egw_sqlfs
- // ToDo: moving /infolog and /infolog/$app to /apps in the files dir!!!
- $debug = $GLOBALS['DEBUG'];
-
- // delete the table in case this update runs multiple times
- $GLOBALS['egw_setup']->db->query('DELETE FROM egw_sqlfs',__LINE__,__FILE__);
- if ($GLOBALS['egw_setup']->db->Type == 'mysql')
- {
- $GLOBALS['egw_setup']->db->query('ALTER TABLE egw_sqlfs AUTO_INCREMENT=1',__LINE__,__FILE__);
- }
- // make sure the required dirs are there and have the following id's
- $dirs = array(
- '/' => 1,
- '/home' => 2,
- '/apps' => 3,
+ $nrow = array(
+ 'fs_id' => $id,
+ 'fs_dir' => $path == '/' ? 0 : $dirs['/'],
+ 'fs_name' => substr($path,1),
+ 'fs_mode' => 05,
+ 'fs_uid' => 0,
+ 'fs_gid' => 0,
+ 'fs_created' => time(),
+ 'fs_modified' => time(),
+ 'fs_mime' => 'httpd/unix-directory',
+ 'fs_size' => 0,
+ 'fs_creator' => 0,
+ 'fs_modifier' => 0,
+ 'fs_comment' => null,
+ 'fs_content' => null,
);
- foreach($dirs as $path => $id)
+ $GLOBALS['egw_setup']->db->insert('egw_sqlfs',$nrow,false,__LINE__,__FILE__,'phpgwapi');
+ }
+ $query = $GLOBALS['egw_setup']->db->select('egw_vfs','*',"vfs_mime_type != 'journal' AND vfs_mime_type != 'journal-deleted'",__LINE__,__FILE__,false,'ORDER BY length(vfs_directory) ASC','phpgwapi');
+ if ($debug) echo "rows=\n";
+
+ foreach($query as $row)
+ {
+ // rename the /infolog dir to /apps/infolog and /infolog/$app /apps/$app
+ if (substr($row['vfs_directory'],0,8) == '/infolog')
{
- $nrow = array(
- 'fs_id' => $id,
- 'fs_dir' => $path == '/' ? 0 : $dirs['/'],
- 'fs_name' => substr($path,1),
- 'fs_mode' => 05,
- 'fs_uid' => 0,
- 'fs_gid' => 0,
- 'fs_created' => time(),
- 'fs_modified' => time(),
- 'fs_mime' => 'httpd/unix-directory',
- 'fs_size' => 0,
- 'fs_creator' => 0,
- 'fs_modifier' => 0,
- 'fs_comment' => null,
- 'fs_content' => null,
- );
- $GLOBALS['egw_setup']->db->insert('egw_sqlfs',$nrow,false,__LINE__,__FILE__,'phpgwapi');
+ $parts = explode('/',$row['vfs_directory']); // 0 = '', 1 = 'infolog', 2 = app or info_id
+ //$parts[1] = is_numeric($parts[2]) ? 'apps/infolog' : 'apps';
+ $parts[1] = $row['vfs_directory']=='/infolog' && is_numeric($row['vfs_name']) ||
+ $parts[1]=='infolog' && is_numeric($parts[2]) ? 'apps/infolog' : 'apps';
+ $row['vfs_directory'] = implode('/',$parts);
}
- $query = $GLOBALS['egw_setup']->db->select('egw_vfs','*',"vfs_mime_type != 'journal' AND vfs_mime_type != 'journal-deleted'",__LINE__,__FILE__,false,'ORDER BY length(vfs_directory) ASC','phpgwapi');
- if ($debug) echo "rows=\n";
-
- foreach($query as $row)
+ elseif ($row['vfs_directory'] == '/' && $row['vfs_name'] == 'infolog')
{
- // rename the /infolog dir to /apps/infolog and /infolog/$app /apps/$app
- if (substr($row['vfs_directory'],0,8) == '/infolog')
- {
- $parts = explode('/',$row['vfs_directory']); // 0 = '', 1 = 'infolog', 2 = app or info_id
- //$parts[1] = is_numeric($parts[2]) ? 'apps/infolog' : 'apps';
- $parts[1] = $row['vfs_directory']=='/infolog' && is_numeric($row['vfs_name']) ||
- $parts[1]=='infolog' && is_numeric($parts[2]) ? 'apps/infolog' : 'apps';
- $row['vfs_directory'] = implode('/',$parts);
- }
- elseif ($row['vfs_directory'] == '/' && $row['vfs_name'] == 'infolog')
- {
- $row['vfs_directory'] = '/apps';
- }
- $nrow = array(
- 'fs_dir' => $dirs[$row['vfs_directory']],
- 'fs_name' => $row['vfs_name'],
- 'fs_mode' => $row['vfs_owner_id'] > 0 ?
- ($row['vfs_mime_type'] == 'Directory' ? 0700 : 0600) :
- ($row['vfs_mime_type'] == 'Directory' ? 0070 : 0060),
- 'fs_uid' => $row['vfs_owner_id'] > 0 ? $row['vfs_owner_id'] : 0,
- 'fs_gid' => $row['vfs_owner_id'] < 0 ? -$row['vfs_owner_id'] : 0,
- 'fs_created' => $row['vfs_created'],
- 'fs_modified' => $row['vfs_modified'] ? $row['vfs_modified'] : $row['vfs_created'],
- 'fs_mime' => $row['vfs_mime_type'] == 'Directory' ? 'httpd/unix-directory' :
- ($row['vfs_mime_type'] ? $row['vfs_mime_type'] : 'application/octet-stream'),
- 'fs_size' => $row['vfs_size'],
- 'fs_creator' => $row['vfs_createdby_id'],
- 'fs_modifier' => $row['vfs_modifedby_id'],
- 'fs_comment' => $row['vfs_comment'] ? $row['vfs_comment'] : null,
- 'fs_content' => $row['vfs_content'],
- );
- if ($debug)
- {
- foreach($row as $key => $val)
- {
- if (is_numeric($key)) unset($row[$key]);
- }
- print_r($row);
- print_r($nrow);
- }
- if ($row['vfs_mime_type'] == 'Directory')
- {
- $dir = ($row['vfs_directory'] == '/' ? '' : $row['vfs_directory']).'/'.$row['vfs_name'];
-
- if (!isset($dirs[$dir])) // ignoring doublicate dirs, my devel box has somehow many of them specially /home
- {
- $GLOBALS['egw_setup']->db->insert('egw_sqlfs',$nrow,false,__LINE__,__FILE__,'phpgwapi');
- $dirs[$dir] = $GLOBALS['egw_setup']->db->get_last_insert_id('egw_sqlfs','fs_id');
- if ($debug) echo "$dir = {$dirs[$dir]}\n";
- }
- elseif ($debug)
- {
- echo "ignoring doublicate directory '$dir'!\n";
- }
- }
- else
- {
- $GLOBALS['egw_setup']->db->insert('egw_sqlfs',$nrow,false,__LINE__,__FILE__,'phpgwapi');
- }
-
+ $row['vfs_directory'] = '/apps';
}
+ $nrow = array(
+ 'fs_dir' => $dirs[$row['vfs_directory']],
+ 'fs_name' => $row['vfs_name'],
+ 'fs_mode' => $row['vfs_owner_id'] > 0 ?
+ ($row['vfs_mime_type'] == 'Directory' ? 0700 : 0600) :
+ ($row['vfs_mime_type'] == 'Directory' ? 0070 : 0060),
+ 'fs_uid' => $row['vfs_owner_id'] > 0 ? $row['vfs_owner_id'] : 0,
+ 'fs_gid' => $row['vfs_owner_id'] < 0 ? -$row['vfs_owner_id'] : 0,
+ 'fs_created' => $row['vfs_created'],
+ 'fs_modified' => $row['vfs_modified'] ? $row['vfs_modified'] : $row['vfs_created'],
+ 'fs_mime' => $row['vfs_mime_type'] == 'Directory' ? 'httpd/unix-directory' :
+ ($row['vfs_mime_type'] ? $row['vfs_mime_type'] : 'application/octet-stream'),
+ 'fs_size' => $row['vfs_size'],
+ 'fs_creator' => $row['vfs_createdby_id'],
+ 'fs_modifier' => $row['vfs_modifedby_id'],
+ 'fs_comment' => $row['vfs_comment'] ? $row['vfs_comment'] : null,
+ 'fs_content' => $row['vfs_content'],
+ );
if ($debug)
{
- echo "dirs=";
- print_r($dirs);
- echo "
\n";
- }
- return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.004';
- }
-
- $test[] = '1.5.004';
- function phpgwapi_upgrade1_5_004()
- {
- // convert the filemanager group grants into extended ACL
-
- // delete all sqlfs entries from the ACL table, in case we run multiple times
- $GLOBALS['egw_setup']->db->delete('egw_acl',array('acl_appname' => sqlfs_stream_wrapper::EACL_APPNAME),__LINE__,__FILE__);
-
- $GLOBALS['egw_setup']->setup_account_object();
- $accounts = $GLOBALS['egw_setup']->accounts;
- $accounts = new accounts();
-
- egw_vfs::$is_root = true; // we need root rights to set the extended acl, without being the owner
-
- foreach($GLOBALS['egw_setup']->db->select('egw_acl','*',array(
- 'acl_appname' => 'filemanager',
- "acl_location != 'run'",
- ),__LINE__,__FILE__) as $row)
- {
- $rights = egw_vfs::READABLE | egw_vfs::EXECUTABLE;
- if($row['acl_rights'] > 1) $rights |= egw_vfs::WRITABLE;
-
- if (($lid = $accounts->id2name($row['acl_account'])) && $accounts->exists($row['acl_location']))
+ foreach($row as $key => $val)
{
- $ret = sqlfs_stream_wrapper::eacl('/home/'.$lid,$rights,(int)$row['acl_location']);
- //echo "sqlfs_stream_wrapper::eacl('/home/$lid',$rights,$row[acl_location])=$ret
\n";
+ if (is_numeric($key)) unset($row[$key]);
+ }
+ print_r($row);
+ print_r($nrow);
+ }
+ if ($row['vfs_mime_type'] == 'Directory')
+ {
+ $dir = ($row['vfs_directory'] == '/' ? '' : $row['vfs_directory']).'/'.$row['vfs_name'];
+
+ if (!isset($dirs[$dir])) // ignoring doublicate dirs, my devel box has somehow many of them specially /home
+ {
+ $GLOBALS['egw_setup']->db->insert('egw_sqlfs',$nrow,false,__LINE__,__FILE__,'phpgwapi');
+ $dirs[$dir] = $GLOBALS['egw_setup']->db->get_last_insert_id('egw_sqlfs','fs_id');
+ if ($debug) echo "$dir = {$dirs[$dir]}\n";
+ }
+ elseif ($debug)
+ {
+ echo "ignoring doublicate directory '$dir'!\n";
}
}
- egw_vfs::$is_root = false;
-
- return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.005';
- }
-
- $test[] = '1.5.005';
- function phpgwapi_upgrade1_5_005()
- {
- // move /infolog/$app to /apps/$app and /infolog to /apps/infolog
-
- $files_dir = $GLOBALS['egw_setup']->db->select('egw_config','config_value',array(
- 'config_name' => 'files_dir',
- 'config_app' => 'phpgwapi',
- ),__LINE__,__FILE__)->fetchSingle();
-
- if ($files_dir && file_exists($files_dir) && file_exists($files_dir.'/infolog'))
+ else
{
- mkdir($files_dir.'/apps',0700,true);
- if (($dir = opendir($files_dir.'/infolog')))
+ $GLOBALS['egw_setup']->db->insert('egw_sqlfs',$nrow,false,__LINE__,__FILE__,'phpgwapi');
+ }
+
+ }
+ if ($debug)
+ {
+ echo "dirs=";
+ print_r($dirs);
+ echo "
\n";
+ }
+ return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.004';
+}
+
+$test[] = '1.5.004';
+function phpgwapi_upgrade1_5_004()
+{
+ // convert the filemanager group grants into extended ACL
+
+ // delete all sqlfs entries from the ACL table, in case we run multiple times
+ $GLOBALS['egw_setup']->db->delete('egw_acl',array('acl_appname' => sqlfs_stream_wrapper::EACL_APPNAME),__LINE__,__FILE__);
+
+ $GLOBALS['egw_setup']->setup_account_object();
+ $accounts = $GLOBALS['egw_setup']->accounts;
+ $accounts = new accounts();
+
+ egw_vfs::$is_root = true; // we need root rights to set the extended acl, without being the owner
+
+ foreach($GLOBALS['egw_setup']->db->select('egw_acl','*',array(
+ 'acl_appname' => 'filemanager',
+ "acl_location != 'run'",
+ ),__LINE__,__FILE__) as $row)
+ {
+ $rights = egw_vfs::READABLE | egw_vfs::EXECUTABLE;
+ if($row['acl_rights'] > 1) $rights |= egw_vfs::WRITABLE;
+
+ if (($lid = $accounts->id2name($row['acl_account'])) && $accounts->exists($row['acl_location']))
+ {
+ $ret = sqlfs_stream_wrapper::eacl('/home/'.$lid,$rights,(int)$row['acl_location']);
+ //echo "sqlfs_stream_wrapper::eacl('/home/$lid',$rights,$row[acl_location])=$ret
\n";
+ }
+ }
+ egw_vfs::$is_root = false;
+
+ return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.005';
+}
+
+$test[] = '1.5.005';
+function phpgwapi_upgrade1_5_005()
+{
+ // move /infolog/$app to /apps/$app and /infolog to /apps/infolog
+
+ $files_dir = $GLOBALS['egw_setup']->db->select('egw_config','config_value',array(
+ 'config_name' => 'files_dir',
+ 'config_app' => 'phpgwapi',
+ ),__LINE__,__FILE__)->fetchSingle();
+
+ if ($files_dir && file_exists($files_dir) && file_exists($files_dir.'/infolog'))
+ {
+ mkdir($files_dir.'/apps',0700,true);
+ if (($dir = opendir($files_dir.'/infolog')))
+ {
+ while(($app = readdir($dir)))
{
- while(($app = readdir($dir)))
+ if (!is_numeric($app) && $app[0] != '.') // ingore infolog entries and . or ..
{
- if (!is_numeric($app) && $app[0] != '.') // ingore infolog entries and . or ..
- {
- rename($files_dir.'/infolog/'.$app,$files_dir.'/apps/'.$app);
- }
+ rename($files_dir.'/infolog/'.$app,$files_dir.'/apps/'.$app);
}
- closedir($dir);
- rename($files_dir.'/infolog',$files_dir.'/apps/infolog');
}
+ closedir($dir);
+ rename($files_dir.'/infolog',$files_dir.'/apps/infolog');
}
-
- return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.006';
}
+
+ return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.006';
+}
+
+$test[] = '1.5.006';
+function phpgwapi_upgrade1_5_006()
+{
+ // drop filescenter tables, if filecenter is not installed
+ static $filescenter_tables = array(
+ 'phpgw_vfs2_mimetypes',
+ 'phpgw_vfs2_files',
+ 'phpgw_vfs2_customfields',
+ 'phpgw_vfs2_quota',
+ 'phpgw_vfs2_shares',
+ 'phpgw_vfs2_versioning',
+ 'phpgw_vfs2_customfields_data',
+ 'phpgw_vfs2_prefixes',
+ );
+ $filescenter_app = $GLOBALS['egw_setup']->db->select('egw_applications','*',array(
+ 'app_name' => 'filescenter',
+ ),__LINE__,__FILE__)->fetchSingle();
+
+ if (!$filescenter_app || !is_dir(EGW_INCLUDE_ROOT.'/filescenter'))
+ {
+ foreach($filescenter_tables as $table)
+ {
+ schema_proc::DropTable($table);
+ }
+ if ($filescenter_app) // app installed, but no sources --> deinstall it
+ {
+ $GLOBALS['egw_setup']->db->delete('egw_applications',array(
+ 'app_name' => 'filescenter',
+ ),__LINE__,__FILE__);
+ }
+ }
+ else
+ {
+ // move tables to the filescenter app
+ $GLOBALS['egw_setup']->db->update('egw_applications',array(
+ 'app_tables' => implode(',',$filescenter_tables),
+ ),array(
+ 'app_name' => 'filescenter',
+ ),__LINE__,__FILE__);
+ }
+
+ return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.007';
+}
+
+$test[] = '1.5.007';
+function phpgwapi_upgrade1_5_007()
+{
+ // tables for the eGW-wide index
+
+ foreach(array(
+ 'egw_index_keywords' => array(
+ 'fd' => array(
+ 'si_id' => array('type' => 'auto','nullable' => False),
+ 'si_keyword' => array('type' => 'varchar','precision' => '64','nullable' => False),
+ 'si_ignore' => array('type' => 'bool')
+ ),
+ 'pk' => array('si_id'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array('si_keyword')
+ ),
+ 'egw_index' => array(
+ 'fd' => array(
+ 'si_app' => array('type' => 'varchar','precision' => '25','nullable' => False),
+ 'si_app_id' => array('type' => 'varchar','precision' => '50','nullable' => False),
+ 'si_id' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'si_owner' => array('type' => 'int','precision' => '4','nullable' => False)
+ ),
+ 'pk' => array('si_app','si_app_id','si_id'),
+ 'fk' => array(),
+ 'ix' => array('si_id'),
+ 'uc' => array()
+ ),
+ 'egw_cat2entry' => array(
+ 'fd' => array(
+ 'ce_app' => array('type' => 'varchar','precision' => '25','nullable' => False),
+ 'ce_app_id' => array('type' => 'varchar','precision' => '50','nullable' => False),
+ 'cat_id' => array('type' => 'int','precision' => '4','nullable' => False),
+ 'ce_owner' => array('type' => 'int','precision' => '4','nullable' => False)
+ ),
+ 'pk' => array('ce_app','ce_app_id','cat_id'),
+ 'fk' => array(),
+ 'ix' => array('cat_id'),
+ 'uc' => array()
+ )) as $table => $definition)
+ {
+ $GLOBALS['egw_setup']->oProc->CreateTable($table,$definition);
+ }
+
+ return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.5.008';
+}
\ No newline at end of file