phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] filemanager/index.php, 1.42


From: nomail
Subject: [Phpgroupware-cvs] filemanager/index.php, 1.42
Date: Thu, 30 Dec 2004 10:17:57 +0100

Update of /filemanager
Modified Files:
        Branch: 
          index.php

date: 2004/12/30 09:17:57;  author: skwashd;  state: Exp;  lines: +1954 -17

Log Message:
clean up, merge, remove crud and apply patch #3525
=====================================================================
Index: filemanager/index.php
diff -u filemanager/index.php:1.41 filemanager/index.php:1.42
--- filemanager/index.php:1.41  Tue Apr  8 20:47:38 2003
+++ filemanager/index.php       Thu Dec 30 09:17:57 2004
@@ -3,32 +3,1969 @@
 ###
 # DEV NOTE:
 #
-# index.php is depreciated by the inc/class.xxfilemanager.inc.php files.
-# index.php is still used in the 0.9.14 release, but all future changes should 
be
-# made to the inc/class.xxfilemanager.inc.php files (3-tiered).  This includes 
using templates.
+# index.php is depreciated by the inc/class.xxphpwebhosting.inc.php files.
+# index.php is still used in the 0.9.16 release, but all future changes should 
be
+# made to the inc/class.xxphpwebhosting.inc.php files (3-tiered).  This 
includes using templates.
 ###
 
 ###
 # Enable this to display some debugging info
 ###
 
-       $phpgw_flags = Array(
-               'currentapp'    =>      'filemanager',
-               'noheader'      =>      True,
-               'nonavbar'      =>      True,
-               'noappheader'   =>      True,
-               'noappfooter'   =>      True,
-               'nofooter'      =>      True
+$phpwh_debug = 0;
+
address@hidden ($_POST);
+while (list ($name,) = @each ($_POST))
+{
+       $$name = $_POST[$name];
+}
+
address@hidden ($_GET);
+while (list ($name,) = @each ($_GET))
+{
+       $$name = $_GET[$name];
+}
+
+$to_decode = array
+(
+       /*
+       Decode
+       'var'   when      'avar' == 'value'
+       or
+       'var'   when      'var'  is set
+       */
+       'op'    => array ('op' => ''),
+       'path'  => array ('path' => ''),
+       'file'  => array ('file' => ''),
+       'sortby'        => array ('sortby' => ''),
+       'fileman'       => array ('fileman' => ''),
+       'messages'      => array ('messages'    => ''),
+       'help_name'     => array ('help_name' => ''),
+       'renamefiles'   => array ('renamefiles' => ''),
+       'comment_files' => array ('comment_files' => ''),
+       'show_upload_boxes'     => array ('show_upload_boxes' => '')
+);
+
+reset ($to_decode);
+while (list ($var, $conditions) = each ($to_decode))
+{
+       while (list ($condvar, $condvalue) = each ($conditions))
+       {
+               if (isset ($$condvar) && ($condvar == $var || $$condvar == 
$condvalue))
+               {
+                       if (is_array ($$var))
+                       {
+                               $temp = array ();
+                               //some fixes in this section were supplied by 
Michael Totschnig
+                               while (list ($varkey, $varvalue) = each ($$var))
+                               {
+                                       if (is_int ($varkey))
+                                       {
+                                               $temp[$varkey] = stripslashes 
(base64_decode(urldecode(($varvalue))));
+                                       }
+                                       else
+                                       {
+                                               $temp[stripslashes 
(base64_decode(urldecode(($varkey))))] = $varvalue;
+                                       }
+                               }
+                               $$var = $temp;
+                       }
+                       elseif (isset ($$var))
+                       {
+                               $$var = stripslashes (base64_decode(urldecode 
($$var)));
+                       }
+               }
+       }
+}
+
+/* This allows files to be uploaded using "enter" on your keyboard */
+$upload_files = false;
+$array_fileuploads = count ($_FILES['upload_file']['name']);
+if ($array_fileuploads > 0)
+{
+       for ($i = 0; $i < $array_fileuploads; ++$i)
+               {
+               if ($_FILES['upload_file']['name'][$i])
+                       {
+                               $upload_files = true;
+                       }
+               }
+}
+
+if ($noheader || $nofooter || ($download && (count ($fileman) > 0)) || ($op == 
'view' && $file) || ($op == 'history' && $file) || ($op == 'help' && 
$help_name))
+{
+       $noheader = True;
+       $nofooter = True;
+}
+
+$GLOBALS['phpgw_info']['flags'] = array
+(
+       'currentapp'    => 'filemanager',
+       'noheader'      => $noheader,
+       'nofooter'      => $nofooter,
+       'noappheader'   => False,
+       'enable_vfs_class'      => True,
+       'enable_browser_class'  => True
+);
+
+include ('../header.inc.php');
+$GLOBALS['phpgw']->accounts->read_repository();
+$quota = ($GLOBALS['phpgw']->accounts->data['quota'] == -1 ? -1 
+       : $GLOBALS['phpgw']->accounts->data['quota']*1024*1024); 
+
+$imagepath=$GLOBALS['phpgw']->common->get_image_path();
+if ($execute && $command_line)
+{
+       if ($result = $GLOBALS['phpgw']->vfs->command_line (array 
('command_line' => stripslashes ($command_line))))
+       {
+               $messages = html_text_bold (lang('Command sucessfully run'),1);
+               if ($result != 1 && strlen ($result) > 0)
+               {
+                       $messages .= html_break (2, NULL, 1) . $result;
+               }
+       }
+       else
+       {
+               $messages = $GLOBALS['phpgw']->common->error_list (array 
(lang('Error running command')));
+       }
+}
+
+###
+# Page to process users
+# Code is fairly hackish at the beginning, but it gets better
+# Highly suggest turning wrapping off due to long SQL queries
+###
+
+###
+# Some hacks to set and display directory paths correctly
+###
+
+if (/*$go || */$menu == 'go_to')
+{
+       $path = $todir;
+}
+
+if (!$path)
+{
+       $path = $GLOBALS['phpgw']->vfs->pwd ();
+
+       if (!$path || $GLOBALS['phpgw']->vfs->pwd (array ('full' => False)) == 
'')
+       {
+               $path = $GLOBALS['homedir'];
+       }
+}
+
+$GLOBALS['phpgw']->vfs->cd (array ('string' => False, 'relatives' => array 
(RELATIVE_NONE), 'relative' => False));
+$GLOBALS['phpgw']->vfs->cd (array ('string' => $path, 'relatives' => array 
(RELATIVE_NONE), 'relative' => False));
+
+$pwd = $GLOBALS['phpgw']->vfs->pwd ();
+
+if (!$cwd = substr ($path, strlen ($GLOBALS['homedir']) + 1))
+{
+       $cwd = '/';
+}
+else
+{
+       $cwd = substr ($pwd, strrpos ($pwd, '/') + 1);
+}
+
+$disppath = $path;
+
+/* This just prevents // in some cases */
+if ($path == '/')
+{
+       $dispsep = '';
+}
+else
+{
+       $dispsep = '/';
+}
+
+if (!($lesspath = substr ($path, 0, strrpos ($path, '/'))))
+{
+       $lesspath = '/';
+}
+$now = date ('Y-m-d');
+
+if ($phpwh_debug)
+{
+       echo "<b>PHPWebHosting debug:</b><br>
+               path: $path<br>
+               disppath: $disppath<br>
+               cwd: $cwd<br>
+               lesspath: $lesspath
+               <p>
+               <b>phpGW debug:</b><br>
+               real getabsolutepath: " . 
$GLOBALS['phpgw']->vfs->getabsolutepath (array ('target' => False, 'mask' => 
False, 'fake' => False)) . "<br>
+               fake getabsolutepath: " . 
$GLOBALS['phpgw']->vfs->getabsolutepath (array ('target' => False)) . "<br>
+               appsession: " . $GLOBALS['phpgw']->session->appsession 
('vfs','') . "<br>
+               pwd: " . $GLOBALS['phpgw']->vfs->pwd () . "<br>";
+}
+
+###
+# Get their readable groups to be used throughout the script
+###
+
+$groups = array ();
+
+$groups = $GLOBALS['phpgw']->accounts->get_list ('groups');
+
+$readable_groups = array ();
+
+while (list ($num, $account) = each ($groups))
+{
+       if ($GLOBALS['phpgw']->vfs->acl_check (array (
+                       'owner_id' => $account['account_id'],
+                       'operation' => PHPGW_ACL_READ
+               ))
+       )
+       {
+               $readable_groups[$account['account_lid']] = Array('account_id' 
=> $account['account_id'], 'account_name' => $account['account_lid']);
+       }
+}
+
+$groups_applications = array ();
+
+while (list ($num, $group_array) = each ($readable_groups))
+{
+       $group_id = $GLOBALS['phpgw']->accounts->name2id 
($group_array['account_name']);
+
+       $applications = CreateObject('phpgwapi.applications', $group_id);
+       $groups_applications[$group_array['account_name']] = 
$applications->read_account_specific ();
+}
+
+###
+# We determine if they're in their home directory or a group's directory,
+# and set the VFS working_id appropriately
+###
+
+if ((preg_match ('+^'.$GLOBALS['fakebase'].'\/(.*)(\/|$)+U', $path, $matches)) 
&& $matches[1] != $GLOBALS['userinfo']['account_lid'])
+{
+       $GLOBALS['phpgw']->vfs->working_id = 
$GLOBALS['phpgw']->accounts->name2id ($matches[1]);
+}
+else
+{
+       $GLOBALS['phpgw']->vfs->working_id = $GLOBALS['userinfo']['username'];
+}
+
+if ($path != $GLOBALS['homedir']
+       && $path != $GLOBALS['fakebase']
+       && $path != '/'
+       && !$GLOBALS['phpgw']->vfs->acl_check (array (
+                       'string' => $path,
+                       'relatives' => array (RELATIVE_NONE),
+                       'operation' => PHPGW_ACL_READ
+       ))
+)
+{
+       echo $GLOBALS['phpgw']->common->error_list (array (lang('You do not 
have access to %1', $path)));
+       html_break (2);
+       html_link ($GLOBALS['appname'].'/index.php?path='.$GLOBALS['homedir'], 
lang('Go to your home directory'));
+       html_page_close ();
+}
+
+$GLOBALS['userinfo']['working_id'] = $GLOBALS['phpgw']->vfs->working_id;
+$GLOBALS['userinfo']['working_lid'] = $GLOBALS['phpgw']->accounts->id2name 
($GLOBALS['userinfo']['working_id']);
+
+###
+# If their home directory doesn't exist, we create it
+# Same for group directories
+###
+
+if (($path == $GLOBALS['homedir'])
+       && !$GLOBALS['phpgw']->vfs->file_exists (array (
+               'string' => $GLOBALS['homedir'],
+               'relatives' => array (RELATIVE_NONE)
+       ))
+)
+{
+       $GLOBALS['phpgw']->vfs->override_acl = 1;
+
+       if (!$GLOBALS['phpgw']->vfs->mkdir (array ('string' => 
$GLOBALS['homedir'], 'relatives' => array (RELATIVE_NONE))))
+       {
+               $p = $phpgw->vfs->path_parts (array ('string' => 
$GLOBALS['homedir'], 'relatives' => array (RELATIVE_NONE)));
+               echo $GLOBALS['phpgw']->common->error_list (array (lang('Could 
not create directory %1', $GLOBALS['homedir'] . ' (' . $p->real_full_path . 
')')));
+       }
+
+       $GLOBALS['phpgw']->vfs->override_acl = 0;
+}
+
+###
+# Verify path is real
+###
+
+if ($path != $GLOBALS['homedir'] && $path != '/' && $path != 
$GLOBALS['fakebase'])
+{
+       if (!$GLOBALS['phpgw']->vfs->file_exists (array ('string' => $path, 
'relatives' => array (RELATIVE_NONE))))
+       {
+               echo $GLOBALS['phpgw']->common->error_list (array 
(lang('Directory %1 does not exist', $path)));
+               html_break (2);
+               html_link 
($GLOBALS['appname'].'/index.php?path='.$GLOBALS['homedir'], lang('Go to your 
home directory'));
+               html_break (2);
+               html_link_back ();
+               html_page_close ();
+       }
+}
+
+/* Update if they request it, or one out of 20 page loads */
+srand ((double) microtime() * 1000000);
+if ($update || rand (0, 19) == 4)
+{
+       $GLOBALS['phpgw']->vfs->update_real (array ('string' => $path, 
'relatives' => array (RELATIVE_NONE)));
+}
+
+###
+# Check available permissions for $path, so we can disable unusable operations 
in user interface
+###
+
+if ($GLOBALS['phpgw']->vfs->acl_check (array (
+        'string'        => $path,
+        'relatives' => array (RELATIVE_NONE),
+        'operation' => PHPGW_ACL_ADD
+        ))
+)
+{
+       $can_add = True;
+}
+
+###
+# Default is to sort by name
+###
+
+if (!$sortby)
+{
+       $sortby = 'name';
+}
+
+###
+# Decide how many upload boxes to show
+###
+
+if (!$show_upload_boxes || $show_upload_boxes <= 0)
+{
+       if (!$show_upload_boxes = $GLOBALS['settings']['show_upload_boxes'])
+       {
+               $show_upload_boxes = 1;
+       }
+}
+
+
+###
+# Read in file info from database to use in the rest of the script
+# $fakebase is a special directory.  In that directory, we list the user's
+# home directory and the directories for the groups they're in
+###
+
+$numoffiles = 0;
+if ($path == $GLOBALS['fakebase'])
+{
+       if (!$GLOBALS['phpgw']->vfs->file_exists (array ('string' => 
$GLOBALS['homedir'], 'relatives' => array (RELATIVE_NONE))))
+       {
+               $GLOBALS['phpgw']->vfs->mkdir (array ('string' => 
$GLOBALS['homedir'], 'relatives' => array (RELATIVE_NONE)));
+       }
+
+       $ls_array = $GLOBALS['phpgw']->vfs->ls (array (
+                       'string'        => $GLOBALS['homedir'],
+                       'relatives'     => array (RELATIVE_NONE),
+                       'checksubdirs'  => False,
+                       'nofiles'       => True
+               )
        );
-       $GLOBALS['phpgw_info']['flags'] = $phpgw_flags;
+       $files_array[] = $ls_array[0];
+       ++$numoffiles;
+//     $files_array = $ls_array;
+//     $numoffiles = count($ls_array);
+
+       reset ($readable_groups);
+       while (list ($num, $group_array) = each ($readable_groups))
+       {
+               ###
+               # If the group doesn't have access to this app, we don't show it
+               ###
+
+               if 
(!$groups_applications[$group_array['account_name']][$GLOBALS['appname']]['enabled'])
+               {
+                       continue;
+               }
+
+               if (!$GLOBALS['phpgw']->vfs->file_exists (array (
+                               'string'        => 
$GLOBALS['fakebase'].'/'.$group_array['account_name'],
+                               'relatives'     => array (RELATIVE_NONE)
+                       ))
+               )
+               {
+                       $GLOBALS['phpgw']->vfs->override_acl = 1;
+                       $GLOBALS['phpgw']->vfs->mkdir (array (
+                                       'string'        => 
$GLOBALS['fakebase'].'/'.$group_array['account_name'],
+                                       'relatives'     => array (RELATIVE_NONE)
+                               )
+                       );
+                       $GLOBALS['phpgw']->vfs->override_acl = 0;
+
+                       $GLOBALS['phpgw']->vfs->set_attributes (array (
+                                       'string'        => 
$GLOBALS['fakebase'].'/'.$group_array['account_name'],
+                                       'relatives'     => array 
(RELATIVE_NONE),
+                                       'attributes'    => array (
+                                                               'owner_id' => 
$group_array['account_id'],
+                                                               'createdby_id' 
=> $group_array['account_id']
+                                                       )
+                               )
+                       );
+               }
+
+               $ls_array = $GLOBALS['phpgw']->vfs->ls (array (
+                               'string'        => 
$GLOBALS['fakebase'].'/'.$group_array['account_name'],
+                               'relatives'     => array (RELATIVE_NONE),
+                               'checksubdirs'  => False,
+                               'nofiles'       => True
+                       )
+               );
+
+               $files_array[] = $ls_array[0];
+
+               ++$numoffiles;
+       }
+}
+else
+{
+       $ls_array = $GLOBALS['phpgw']->vfs->ls (array (
+                       'string'        => $path,
+                       'relatives'     => array (RELATIVE_NONE),
+                       'checksubdirs'  => False,
+                       'nofiles'       => False,
+                       'orderby'       => $sortby
+               )
+       );
+
+       if ($phpwh_debug)
+       {
+               echo '# of files found in "'.$path.'" : 
'.count($ls_array).'<br>'."\n";
+       }
+
+       while (list ($num, $file_array) = each ($ls_array))
+       {
+               ++$numoffiles;
+               $files_array[] = $file_array;
+               if ($phpwh_debug)
+               {
+                       echo 'Filename: '.$file_array['name'].'<br>'."\n";
+               }
+       }
+}
+
+if (!is_array ($files_array))
+{
+       $files_array = array ();
+}
+
+if ($download)
+{
+       $lt_tmp = array();
+       foreach ($ls_array as $arr)
+       {
+               $ls_tmp[$arr['name']] = $arr;
+       }
+       unset ($arr);
+                                                                               
                                
+       for ($i = 0; $i != $numoffiles; ++$i)
+       {
+               if (!$fileman[$i])
+               {
+                       continue;
+               }
+
+               $download_browser = CreateObject ('phpgwapi.browser');
+               $download_browser->content_header 
($fileman[$i],'',$ls_tmp[$fileman[$i]]['size']);
+               echo $GLOBALS['phpgw']->vfs->read (array ('string' => 
$fileman[$i]));
+               $GLOBALS['phpgw']->common->phpgw_exit ();
+       }
+       unset ($ls_tmp);
+}
+
+if ($op == 'view' && $file)
+{
+       $ls_array = $GLOBALS['phpgw']->vfs->ls (array (
+                       'string'        => $path.'/'.$file,
+                       'relatives'     => array (RELATIVE_ALL),
+                       'checksubdirs'  => False,
+                       'nofiles'       => True
+               )
+       );
+
+       if ($ls_array[0]['mime_type'])
+       {
+               $mime_type = $ls_array[0]['mime_type'];
+       }
+       elseif ($GLOBALS['settings']['viewtextplain'])
+       {
+               $mime_type = 'text/plain';
+       }
+
+       $download_browser = CreateObject ('phpgwapi.browser');
+       $download_browser->content_header 
($file,$mime_type,$ls_array[0]['size']);
+       echo $GLOBALS['phpgw']->vfs->read (array (
+                       'string'        => $path.'/'.$file,
+                       'relatives'     => array (RELATIVE_NONE)
+               )
+       );
+       $GLOBALS['phpgw']->common->phpgw_exit ();
+}
+
+if ($op == 'history' && $file)
+{
+       $journal_array = $GLOBALS['phpgw']->vfs->get_journal (array (
+                       'string'        => $file,
+                       'relatives'     => array (RELATIVE_ALL)
+               )
+       );
+
+       if (is_array ($journal_array))
+       {
+               html_table_begin ();
+               html_table_row_begin ();
+               html_table_col_begin ();
+               html_text_bold (lang('Date'));
+               html_table_col_end ();
+               html_table_col_begin ();
+               html_text_bold (lang('Version'));
+               html_table_col_end ();
+               html_table_col_begin ();
+               html_text_bold (lang('Who'));
+               html_table_col_end ();
+               html_table_col_begin ();
+               html_text_bold (lang('Operation'));
+               html_table_col_end ();
+               html_table_row_end ();
+
+               while (list ($num, $journal_entry) = each ($journal_array))
+               {
+                       html_table_row_begin ();
+                       html_table_col_begin ();
+                       html_text ($journal_entry['created'] . html_nbsp (3, 
1));
+                       html_table_col_end ();
+                       html_table_col_begin ();
+                       html_text ($journal_entry['version'] . html_nbsp (3, 
1));
+                       html_table_col_end ();
+                       html_table_col_begin ();
+                       html_text ($GLOBALS['phpgw']->accounts->id2name 
($journal_entry['owner_id']) . html_nbsp (3, 1));
+                       html_table_col_end ();
+                       html_table_col_begin ();
+                       html_text ($journal_entry['comment']);
+                       html_table_col_end ();
+               }
+
+               html_table_end ();
+               html_page_close ();
+       }
+       else
+       {
+               html_text_bold (lang('No version history for this 
file/directory'));
+       }
+
+}
+
+if ($createfile)
+{
+       if ($badchar = bad_chars ($createfile, True, True))
+       {
+               echo $GLOBALS['phpgw']->common->error_list (array (html_encode 
(lang('File names cannot contain "%1"',$badchar), 1)));
+               html_break (2);
+               html_link_back ();
+               html_page_close ();
+       }
+
+       if ($GLOBALS['phpgw']->vfs->file_exists (array (
+                       'string'        => $createfile,
+                       'relatives'     => array (RELATIVE_ALL)
+               ))
+       )
+       {
+               echo $GLOBALS['phpgw']->common->error_list (array (lang('File 
%1 already exists. Please edit it or delete it first.', $createfile)));
+               html_break (2);
+               html_link_back ();
+               html_page_close ();
+       }
+
+       if ($GLOBALS['phpgw']->vfs->touch (array (
+                       'string'        => $createfile,
+                       'relatives'     => array (RELATIVE_ALL)
+               ))
+       )
+       {
+               $fileman = array ();
+               $fileman[0] = $createfile;
+               $edit = 1;
+               ++$numoffiles;
+       }
+       else
+       {
+               echo $GLOBALS['phpgw']->common->error_list (array (lang('File 
%1 could not be created.', $createfile)));
+       }
+}
+
+if ($op == 'help' && $help_name)
+{
+       while (list ($num, $help_array) = each ($help_info))
+       {
+               if ($help_array[0] != $help_name)
+               {
+                       continue;
+               }
+               $help_array[1] = preg_replace ("/\[(.*)\|(.*)\]/Ue", 
"html_help_link ('\\1', '\\2', False, True)", $help_array[1]);
+               $help_array[1] = preg_replace ("/\[(.*)\]/Ue", "html_help_link 
('\\1', '\\1', False, True)", $help_array[1]);
+
+               html_font_set ('4');
+               $title = ereg_replace ('_', ' ', $help_array[0]);
+               $title = ucwords ($title);
+               html_text ($title);
+               html_font_end ();
+
+               html_break (2);
+
+               html_font_set ('2');
+               html_text ($help_array[1]);
+               html_font_end ();
+       }
+
+       $GLOBALS['phpgw']->common->phpgw_exit ();
+}
+
+###
+# Start Main Page
+###
+
+html_page_begin (lang('Users').' :: '.$GLOBALS['userinfo']['username']);
+html_page_body_begin (HTML_PAGE_BODY_COLOR);
+
+if ($messages)
+{
+       html_text ($messages);
+}
+
+if (!count ($GLOBALS['settings']))
+{
+       $pref = CreateObject ('phpgwapi.preferences', 
$GLOBALS['userinfo']['username']);
+       $pref->read_repository (); 
+       $GLOBALS['phpgw']->hooks->single ('add_def_pref', $GLOBALS['appname']);
+       $pref->save_repository (True);
+       $pref_array = $pref->read_repository ();
+       $GLOBALS['settings'] = $pref_array[$GLOBALS['appname']];
+}
+
+###
+# Start Main Table 
+###
+
+if (!$op && !$delete && !$createdir && !$renamefiles && !$move && !$copy && 
!$edit && !$comment_files && ($menu == '' || $menu == 'rename' || $menu == 
'edit_comments' || $menu == 'go_to'))
+{
+       html_table_begin ('100%');
+               html_table_row_begin ();
+                       html_table_col_begin ('right');
+                               html_form_begin 
($GLOBALS['appname'].'/index.php?path='.$path,'post',NULL,'','update' );
+                                       html_form_input ('image', 'update', 
lang('refresh'), NULL, NULL, NULL, $imagepath.'/reload.png');
+                               html_form_end();
+                       html_table_col_end ();
+               html_table_row_end ();
+       html_table_end ();
+       html_form_begin 
($GLOBALS['appname'].'/index.php?path='.$path,'post','multipart/form-data','','files',
 0,'form_files' );
+       if ($numoffiles || $cwd)
+       {
+               while (list ($num, $name) = each ($GLOBALS['settings']))
+               {
+                       if ($name)
+                       {
+                               $columns++;
+                       }
+               }
+               $columns++;
+               html_table_begin ('100%');
+               
+                       html_table_row_begin (NULL, NULL, NULL, 
HTML_TABLE_FILES_HEADER_BG_COLOR);
+                       
+                               html_table_col_begin ('center', NULL, NULL, 
NULL, $columns);
+       // Table creating Folders and Files
+                               html_table_begin ('100%');
+                                       html_table_row_begin ();
+                                               html_table_col_begin ();
+                                               if ($path != '/')
+                                               {
+                                                       html_link 
($GLOBALS['appname'].'/index.php?path='.$lesspath, html_image 
($imagepath.'/1uparrow.png', lang('Up'), 'left', 0, NULL, 1));
+                                                       html_help_link ('up');
+                                                       html_text_bold (lang 
('up'));
+                                               }
+                                               html_table_col_end ();
+                                               
+                                               html_table_col_begin ('left', 
NULL, NULL, NULL, $columns);
+                                               if ($cwd)
+                                               {
+                                                       html_image 
($imagepath.'/folder.png', lang('Folder'), 'center');
+                                               }
+                                               else
+                                               {
+                                                       html_image 
($imagepath.'/gohome.png', lang('Home'));
+                                               }
+                                               
+                                               html_font_set (4, 
HTML_TABLE_FILES_HEADER_TEXT_COLOR);
+                                               html_text_bold (strtoupper 
($disppath));
+                                               html_font_end ();
+                                               html_help_link 
('directory_name');
+                                               html_table_col_end ();
+                               
+                                               html_table_col_begin ('left', 
NULL, NULL, NULL, $columns);
+                                               if ($can_add)
+                                               {
+                                                       html_text_bold 
(lang('Create Folder'));
+                                                       html_form_input 
('text', 'createdir', NULL, 255, 15);
+                                                       html_form_input 
('image', 'newdir', lang('Create Folder'), NULL, NULL, NULL, 
$imagepath.'/folder_new.png');
+                                                       html_help_link 
('create_folder');
+                                               }
+                                               html_table_col_end ();
+                               
+                                               html_table_col_begin ('left', 
NULL, NULL, NULL, $columns);
+                                               if ($path != '/' && $path != 
$GLOBALS['fakebase'] && $can_add)
+                                               {
+                                                       html_text_bold 
(lang('Create File'));
+                                                       html_form_input 
('text', 'createfile', NULL, 255, 15);
+                                                       html_form_input 
('image', 'newfile', lang('Create File'), NULL, NULL, NULL, 
$imagepath.'/filenew.png');
+                                                       html_help_link 
('create_file');                 
+                                               }
+                                       html_table_row_end ();
+                               html_table_end ();// Table creating new Folders 
and  new Files end
+                               
+                               html_table_col_end ();
+                               
+                       html_table_row_end();
+                       
+                       html_table_row_begin (NULL, NULL, NULL, 
HTML_TABLE_FILES_HEADER_BG_COLOR);
+                               html_table_col_begin ('center', NULL, NULL, 
NULL, $columns);
+                                               ###
+                                               # Show file upload boxes. Note 
the last argument to html ().  Repeats $show_upload_boxes times
+                                               ###
+                               
+                                               if ($path != '/' && $path != 
$GLOBALS['fakebase'] && $can_add)
+                                               {                               
                
+                                                       html_table_begin 
('100%');
+                                                               // Show Upload 
fields
+                                                               
html_table_row_begin ('center','', '', '', '', 
'','style="background-color:#C0C0C0"');
+                                                                       
html_table_col_begin (NULL, NULL, NULL, NULL, 4);
+                                                                               
html_text (lang('Show') . html_nbsp (1, True));
+                                                                               
html_link ($GLOBALS['appname'].'/index.php?show_upload_boxes=1', '1');
+                                                                               
html_nbsp ();
+                                                                               
html_link ($GLOBALS['appname'].'/index.php?show_upload_boxes=5', '5');
+                                                                               
html_nbsp ();
+                                                                               
html_link ($GLOBALS['appname'].'/index.php?show_upload_boxes=10', '10');
+                                                                               
html_nbsp ();
+                                                                               
html_link ($GLOBALS['appname'].'/index.php?show_upload_boxes=15', '15');
+                                                                               
html_nbsp ();
+                                                                               
html_text (lang('upload fields'));
+                                                                               
html_nbsp ();
+                                                                               
html_help_link ('show_upload_fields');
+                                                                       
html_table_col_end ();
+                                                               
html_table_row_end ();
+                                                               
html_table_row_begin ('center');
+                                                               
+                                                                       
html_table_col_begin (NULL,NULL,NULL,NULL,NULL,'',0,'33%');
+                                                                               
html_text_bold (lang('File'));
+                                                                               
html_help_link ('upload_file');
+                                                                       
html_table_col_end ();
+                                                                       
+                                                                       
html_table_col_begin (NULL,NULL,NULL,NULL,NULL,'',0,'33%');
+                                                                               
html_text_bold (lang('Comment'));
+                                                                               
html_help_link ('upload_comment');
+                                                                       
html_table_col_end ();
+                                                                       
+                                                                       
html_table_col_begin (NULL,NULL,NULL,NULL,NULL,'',0,'33%');
+                                                                       
html_table_col_end ();
+                                                                       
+                                                               
html_table_row_end ();
+                                       
+                                                               
html_table_row_begin ('center');
+                                                               
+                                                                       
html_table_col_begin ();
+                                                                               
html_form_input ('hidden', 'show_upload_boxes', base64_encode 
($show_upload_boxes));
+                                                                               
html (html_form_input ('file', 'upload_file[]', NULL, 255, NULL, NULL, NULL, 
'', 1) . html_break (1, NULL, 1), $show_upload_boxes);
+                                                                       
html_table_col_end ();
+                                                                       
+                                                                       
+                                                                       
html_table_col_begin ();
+                                                                               
html (html_form_input ('text', 'upload_comment[]', NULL, NULL, NULL, NULL, 
NULL, '', 1) . html_break (1, NULL, 1), $show_upload_boxes);
+                                                                       
html_table_col_end ();
+                                                                       
html_table_col_begin ('left',NULL,NULL,NULL,NULL,'',0,'');
+                                                                               
html_form_input ('image', 'upload_files', lang('Upload files'), NULL, NULL, 
NULL, $imagepath.'/1uparrow.png', NULL, NULL, NULL, 'upload_files' );
+                                                                               
html_help_link ('upload_files');
+                                                                               
html_text_bold (lang('upload files'));
+                                                                       
html_table_col_end ();
+                                                               
html_table_row_end ();
+                                                       html_table_end ();
+                                                       html_break (2);
+                                               }
+                               html_table_col_end ();
+                       html_table_row_end();
+                       
+                       html_table_row_begin('','', '', '', '', '', 
'style="background-color:#C0C0C0"');
+                               ###
+                               # Start File Table Column Headers
+                               # Reads values from $file_attributes array and 
preferences
+                               ###
+                               html_table_col_begin ();
+                                       html_text (lang('Sort by:') . html_nbsp 
(1, 1), NULL, NULL, 0);
+                                       html_help_link ('sort_by');
+                               html_table_col_end ();
+                               
+                               $col_count=1; 
+                               
+                               reset ($file_attributes);
+                               while (list ($internal, $displayed) = each 
($file_attributes))
+                               {
+                                       if ($GLOBALS['settings'][$internal])
+                                       {
+                                               html_table_col_begin ();
+                                                       html_link 
($GLOBALS['appname'].'/index.php?path='.$path.'&sortby='.$internal, 
html_text_bold ($displayed, 1, 0));
+                                                       html_help_link 
(strtolower (ereg_replace (' ', '_', $displayed)));
+                                               html_table_col_end ();
+                                               $col_count++;
+                                       }
+                               }
+                               
+                               html_table_col_begin ();
+                               html_table_col_end ();
+                       
+               
+                               if ($GLOBALS['settings']['dotdot'] && 
$GLOBALS['settings']['name'] && $path != '/')
+                               {
+                                               html_table_col_begin ();
+                                               html_table_col_end ();
+               
+                                               /* We can assume the next 
column is the name */
+                                               html_table_col_begin ();
+                                                       html_image 
($imagepath.'/folder.png', lang('Folder'));
+                                                       html_link 
($GLOBALS['appname'].'/index.php?path='.$lesspath, '..');
+                                               html_table_col_end ();
+                       
+                                               if 
($GLOBALS['settings']['mime_type'])
+                                               {
+                                                       html_table_col_begin ();
+                                                               html_text 
(lang('Directory'));
+                                                       html_table_col_end ();
+                                               }       
+                               }
+                       html_table_row_end();
+                       ###
+                       # List all of the files, with their attributes
+                       ###
+                       reset ($files_array);
+                       for ($i = 0; $i != $numoffiles; $i++)
+                       {
+                               
+                               $files = $files_array[$i];
+       
+                               //if ($rename || $edit_comments)
+                               if ($menu == "rename" || $menu == 
"edit_comments")
+                               {
+                                       unset ($this_selected);
+                                       unset ($renamethis);
+                                       unset ($edit_this_comment);
+       
+                                       for ($j = 0; $j != $numoffiles; $j++)
+                                       {
+                                               if ($fileman[$j] == 
$files['name'])
+                                               {
+                                                       $this_selected = 1;
+                                                       break;
+                                               }
+                                       }
+
+                                       if (($rename || ($menu=='rename')) && 
$this_selected)
+                                       {
+                                               $renamethis = 1;
+                                               echo 'rename' . $rename;
+                                       }
+                                       elseif (($edit_comments || 
($menu=='edit_comments')) && $this_selected)
+                                       {
+                                               $edit_this_comment = 1;
+                                       }
+                               }
+       
+                               if (!$GLOBALS['settings']['dotfiles'] && ereg 
("^\.", $files['name']))
+                               {
+                                       continue;
+                               }
+                               // alternate row colors
+                               if ($i % 2)
+                               {
+                                       html_table_row_begin (NULL, NULL, NULL, 
HTML_TABLE_FILES_BG_COLOR,'','','style="background-color:#dddddd"');
+                               }
+                               else
+                               {
+                                       html_table_row_begin (NULL, NULL, NULL, 
HTML_TABLE_FILES_BG_COLOR,'','','style="background-color:white"');
+                               }
+       
+                               ###
+                               # Checkboxes
+                               ###
+       
+                               html_table_col_begin ('right');
+       
+                                       if (!$rename && !$edit_comments && 
$path != $GLOBALS['fakebase'] && $path != '/')
+                                       {
+                                               html_form_input ('checkbox', 
'fileman['.$i.']', base64_encode ($files['name']));
+                                       }
+                                       elseif ($renamethis)
+                                       {
+                                               html_form_input ('hidden', 
'fileman[' . base64_encode ($files['name']) . ']', $files['name'], NULL, NULL, 
'checked');
+                                       }
+                                       else
+                                       {
+                                               html_nbsp();
+                                       }
+       
+                               html_table_col_end ();
+       
+                               ###
+                               # File name and icon
+                               ###
+       
+                               if ($GLOBALS['settings']['name'])
+                               {
+                                       if ($phpwh_debug)
+                                       {
+                                               echo 'Setting file name: 
'.$files['name'].'<br>'."\n";
+                                       }
+       
+                                       html_table_col_begin ();
+       
+                                               if ($renamethis)
+                                               {
+                                                       if ($files['mime_type'] 
== 'Directory')
+                                                       {
+                                                               html_image 
($imagepath.'/folder.png', lang('Folder'));
+                                                       }
+                                                       html_form_input 
('text', 'renamefiles[' . base64_encode ($files['name']) . ']', $files['name'], 
255);
+                                               }
+                                               else
+                                               {
+                                                       if ($files['mime_type'] 
== 'Directory')
+                                                       {
+                                                               html_image 
($imagepath.'/folder.png', lang('Folder'));          
+                                                               html_link 
($GLOBALS['appname'].'/index.php?path='.$path.$dispsep.$files['name'], 
$files['name']);
+                                                       }
+                                                       else
+                                                       {
+                                                               if 
($GLOBALS['settings']['viewonserver'] && isset ($GLOBALS['filesdir']) && 
!$files['link_directory'])
+                                                               {
+                                                                       
$clickview = $GLOBALS['filesdir'].$pwd.'/'.$files['name'];
+               
+                                                                       if 
($phpwh_debug)
+                                                                       {
+                                                                               
echo 'Setting clickview = '.$clickview.'<br>'."\n";
+                                                                       }
+                                                               }
+                                                               else
+                                                               {
+                                                                       
$clickview = 
$GLOBALS['appname'].'/index.php?op=view&file='.$files['name'].'&path='.$path;
+                                                               }
+               
+                                                               if 
($GLOBALS['settings']['viewinnewwin'])
+                                                               {
+                                                                       $target 
= '_new';
+                                                               }
+               
+                                                               html_link 
($clickview, $files['name'], 0, 1, 0, $target);
+                                                       }
+                                               }
+       
+                                       html_table_col_end ();
+                               }
+       
+                               ###
+                               # Lock is on or off
+                               ###
+                               if ( $GLOBALS['settings']['locks'] )
+                               {
+                                       html_table_col_begin ();
+                                       $lock = @end($files['locks']);
+                                       if ( $lock ) 
+                                       {
+                                               if ( 
!ereg('Second-',$lock[0]['timeout']))
+                                               {
+                                                       html_text 
($lock[0]['timeout']);
+                                               }
+                                               else
+                                               {
+                                                       $t = 
explode('-',$lock[0]['timeout']);
+                                                       html_text ($t[1] .'s');
+                                               }
+                                       }
+                                       else
+                                       {
+                                               html_text('-');
+                                       }
+                                       html_table_col_end ();
+                               }
+                               
+                               ###
+                               # MIME type
+                               ###
+       
+                               if ($GLOBALS['settings']['mime_type'])
+                               {
+                                       html_table_col_begin ();
+                                               html_text ($files['mime_type']);
+                                       html_table_col_end ();
+                               }
+       
+                               ###
+                               # File size
+                               ###
+       
+                               if ($GLOBALS['settings']['size'])
+                               {
+                                       html_table_col_begin ();
+                                               borkb(get_size ($files, 
False));                
+                                       html_table_col_end ();
+                               }
+       
+                               ###
+                               # Date created
+                               ###
+                               if ($GLOBALS['settings']['created'])
+                               {
+                                       html_table_col_begin ();
+                                               html_text ($files['created']);
+                                       html_table_col_end ();
+                               }
+       
+                               ###
+                               # Date modified
+                               ###
+       
+                               if ($GLOBALS['settings']['modified'])
+                               {
+                                       html_table_col_begin ();
+                                               if ($files['modified'] != 
'0000-00-00' && $files['modified'] != '')
+                                               {
+                                                       html_text 
($files['modified']);
+                                               }
+                                               else
+                                               {
+                                                       html_nbsp();
+                                               }
+                                       html_table_col_end ();
+                               }
+       
+                               ###
+                               # Owner name
+                               ###
+       
+                               if ($GLOBALS['settings']['owner'])
+                               {
+                                       html_table_col_begin ();
+                                               html_text 
($GLOBALS['phpgw']->accounts->id2name ($files['owner_id']));
+                                       html_table_col_end ();
+                               }
        
-       include('../header.inc.php');
+                               ###
+                               # Creator name
+                               ###
+       
+                               if ($GLOBALS['settings']['createdby_id'])
+                               {
+                                       html_table_col_begin ();
+                                               if ($files['createdby_id'])
+                                               {
+                                                       html_text 
($GLOBALS['phpgw']->accounts->id2name ($files['createdby_id']));
+                                               }
+                                       html_table_col_end ();
+                               }
+       
+                               ###
+                               # Modified by name
+                               ###
+       
+                               if ($GLOBALS['settings']['modifiedby_id'])
+                               {
+                                       html_table_col_begin ();
+                                               if ($files['modifiedby_id'] != 
'')
+                                               {
+                                                       html_text 
($GLOBALS['phpgw']->accounts->id2name ($files['modifiedby_id']));
+                                               }
+                                               else 
+                                               {
+                                                       html_nbsp();
+                                               }
+                                       html_table_col_end ();
+                               }
+       
+                               ###
+                               # Application
+                               ###
+       
+                               if ($GLOBALS['settings']['app'])
+                               {
+                                       html_table_col_begin ();
+                                               html_text ($files['app']);
+                                       html_table_col_end ();
+                               }
+       
+                               ###
+                               # Comment
+                               ###
+       
+                               if ($GLOBALS['settings']['comment'])
+                               {
+                                       html_table_col_begin ();
+                                               if ($edit_this_comment)
+                                               {
+                                                       html_form_input 
('text', 'comment_files[' . base64_encode ($files['name']) . ']', html_encode 
($files['comment'], 1), 255);
+                                               }
+                                               else
+                                               {
+                                                       if ($files['comment'] 
!= '')
+                                                       {
+                                                               html_text 
($files['comment']);
+                                                       }
+                                                       else
+                                                       {
+                                                               html_nbsp();
+                                                       }
+                                               }
+                                       html_table_col_end ();
+                               }
+       
+                               ###
+                               # Version
+                               ###
+       
+                               if ($GLOBALS['settings']['version'])
+                               {
+                                       html_table_col_begin ();
+                                               html_link 
($GLOBALS['appname'].'/index.php?op=history&file='.$files['name'].'&path='.$path,
 $files['version'], NULL, True, NULL, '_new');
+                                       html_table_col_end ();
+                               }
+       
+                               ###
+                               # Deleteable (currently not used)
+                               ###
+       
+                               if ($GLOBALS['settings']['deleteable'])
+                               {
+                                       if ($files['deleteable'] == 'N')
+                                       {
+                                               html_table_col_begin ();
+                                                       html_image 
($imagepath.'/locked.png', lang('Locked'));
+                                               html_table_col_end ();
+                                       }
+                                       else
+                                       {
+                                               html_table_col_begin ();
+                                               html_table_col_end ();
+                                       }
+                               }
+       
+                               if ($files['mime_type'] == 'Directory')
+                               {
+                                       $usedspace += $fileinfo[0];
+                               }
+                               else
+                               {
+                                       $usedspace += $files['size'];
+                               }
+                               html_table_row_end ();
+                       }
+                       html_table_row_begin();
+
+                               
html_table_col_begin(NULL,NULL,NULL,NULL,$col_count,'',0,NULL);
+                                       html_table_begin('100%');
+                                               html_table_row_begin();
+                                                       html_break (1);
+                                                       
html_table_col_begin('center',NULL,NULL,NULL,NULL,'',0,'33%');
+                                                               
html_form_select_begin 
('menu',0,"document.getElementById('file_menu').selectedIndex>5 ? 
(document.getElementById('menu_todir').disabled=false) : 
document.getElementById('form_files').submit()",NULL,True,'file_menu');
+                                                                       
html_form_option ('',lang('Menu -->'),1);
+                                                                       
html_form_option ('edit',lang('Edit'));
+                                                                       
//FIXME: This is only available for webdav 'till now
+                                                                       //if ( 
$GLOBALS['phpgw_info']['server']['file_repository'] == 'dav' )
+                                                                       {
+                                                                               
html_form_option ('lock',lang('Lock'));
+                                                                               
html_form_option ('unlock',lang('Unlock'));
+                                                                       }
+                                                                       
html_form_option ('rename',lang('Rename'));
+                                                                       
html_form_option ('delete',lang('Delete'));
+                                                                       
html_form_option ('edit_comments',lang('Edit comments'));
+                                                                       
html_form_option ('','---------------',NULL,1);
+                                                                       
html_form_option ('move_to',lang('Move To:'));
+                                                                       
html_form_option ('copy_to',lang('Copy To:'));  
+                                                                       
html_form_option ('','---------------',NULL,1);
+                                                                       
html_form_option ('go_to',lang('Go To:'));                                      
                                                        
+                                                               
html_form_select_end ();
+                                                               html_nbsp ();
+                                                               echo 
'<noscript>';
+                                                               html_form_input 
('submit', NULL, lang('OK'));
+                                                               echo 
'</noscript>';
+                                                               html_nbsp ();
+                                                               
html_form_select_begin 
('todir',0,"document.getElementById('form_files').submit()",NULL,False,'menu_todir');
+                                                               
html_form_option ('',lang('Choose Directory -->'),1);
+                                                               //Folder select 
box
+                                                               ###
+                                                               # First we get 
the directories in their home directory
+                                                               ###
+                                               
+                                                               $dirs = array 
();
+                                                               $dirs[] = array 
('directory' => $GLOBALS['fakebase'], 'name' => 
$GLOBALS['userinfo']['account_lid']);
+                                               
+                                                               $ls_array = 
$GLOBALS['phpgw']->vfs->ls (array (
+                                                                               
'string'        => $GLOBALS['homedir'],
+                                                                               
'relatives'     => array (RELATIVE_NONE),
+                                                                               
'checksubdirs'  => True,
+                                                                               
'mime_type'     => 'Directory'
+                                                                       )
+                                                               );
+                                               
+                                                               while (list 
($num, $dir) = each ($ls_array))
+                                                               {
+                                                                       $dirs[] 
= $dir;
+                                                               }
+                                               
+                                               
+                                                               ###
+                                                               # Then we get 
the directories in their readable groups' home directories
+                                                               ###
+                                               
+                                                               reset 
($readable_groups);
+                                                               while (list 
($num, $group_array) = each ($readable_groups))
+                                                               {
+                                                                       ###
+                                                                       # Don't 
list directories for groups that don't have access
+                                                                       ###
+                                               
+                                                                       if 
(!$groups_applications[$group_array['account_name']][$GLOBALS['appname']]['enabled'])
+                                                                       {
+                                                                               
continue;
+                                                                       }
+                                               
+                                                                       $dirs[] 
= array ('directory' => $GLOBALS['fakebase'], 'name' => 
$group_array['account_name']);
+                                               
+                                                                       
$ls_array = $phpgw->vfs->ls (array (
+                                                                               
        'string'        => 
$GLOBALS['fakebase'].'/'.$group_array['account_name'],
+                                                                               
        'relatives'     => array (RELATIVE_NONE),
+                                                                               
        'checksubdirs'  => True,
+                                                                               
        'mime_type'     => 'Directory'
+                                                                               
)
+                                                                       );
+                                                                       while 
(list ($num, $dir) = each ($ls_array))
+                                                                       {
+                                                                               
$dirs[] = $dir;
+                                                                       }
+                                                               }
+                                               
+                                                               reset ($dirs);
+                                                               while (list 
($num, $dir) = each ($dirs))
+                                                               {
+                                                                       if 
(!$dir['directory'])
+                                                                       {
+                                                                               
continue;
+                                                                       }
+                                                                       
+                                                                       ###
+                                                                       # So we 
don't display //
+                                                                       ###
+                                               
+                                                                       if 
($dir['directory'] != '/')
+                                                                       {
+                                                                               
$dir['directory'] .= '/';
+                                                                       }
+                                               
+                                                                       ###
+                                                                       # No 
point in displaying the current directory, or a directory that doesn't exist
+                                                                       ###
+                                                                       
+                                                                       if 
((($dir['directory'] . $dir['name']) != $path)
+                                                                               
&& $GLOBALS['phpgw']->vfs->file_exists (array (
+                                                                               
                'string'        => $dir['directory'] . $dir['name'],
+                                                                               
                'relatives'     => array (RELATIVE_NONE)
+                                                                               
))
+                                                                       )
+                                                                       {
+                                                                               
html_form_option ($dir['directory'] . $dir['name'], $dir['directory'] . 
$dir['name']);
+                                                                       }
+                                                               }
+                                               
+                                                               
html_form_select_end ();
+                                                               html_help_link 
('directory_list');
+                                                       html_table_col_end();
+                                                       
html_table_col_begin('left',NULL,NULL,NULL,NULL,'',0,'33%');                    
                        
+                                                               html_form_input 
('image', 'download', lang('Download'), NULL, NULL, NULL, 
$imagepath.'/bottom.png');
+                                                               html_help_link 
('download');
+                                                               html_text_bold 
(lang('Download'));
+                                                       html_table_col_end();
+                                                       html_table_col_begin();
+                                                       html_table_col_end();
+                                               html_table_row_end();
+                                               
+                                               html_table_row_begin();
+                                                       
+                                                       
html_table_col_begin('center',NULL,NULL,NULL,3,'',0,'100%');
+                                                               if (strstr 
($path, $GLOBALS['homedir']))
+                                                               {
+                                                                       
html_break (1);
+                                                                       
html_help_link ('file_stats');
+                                                                       
html_text_bold (lang('Files').': ');    
+                                                                       
html_text (count_files($path, False));
+                                                                       
html_nbsp (3);
+                                                       
+                                                                       
html_text_bold (lang('Used space').': ');
+                                                                       // 
Always show the used space inour Homedir
+                                                                       
html_text (borkb (get_size($GLOBALS['homedir'],1), NULL, 1));
+                                                                       
html_nbsp (3);
+                                                                       if 
($quota == -1 || $quota == 0)
+                                                                       {
+                                                                               
html_text ('',NULL,1);
+                                                                       }
+                                                                       else 
+                                                                       {
+                                                                               
html_text_bold (lang('Unused space').': ');
+                                                                               
html_text (borkb ($quota - get_size($GLOBALS['homedir'],True), NULL, 1));       
+                                                                       }
+                                                                               
$i = count_files($GLOBALS['homedir'],True);
+                                                       
+                                                                               
html_break (2);
+                                                                               
html_text_bold (lang('Total Files').': ');
+                                                                               
html_text ($i);
+                                                               }
+                                                               
+                                                       html_table_col_end();
+                                                       
+                                               html_table_row_end();
+                                               
+                                               if 
($GLOBALS['settings']['show_command_line'])
+                                               {
+                                                       html_table_row_begin();
+                                                       
+                                                               
html_table_col_begin('center',NULL,NULL,NULL,3,'',0,NULL);
+                                                                       
html_break (2);
+                                                                       
html_form_input ('text', 'command_line', NULL, NULL, 50);
+                                                                       
html_help_link ('command_line');
+                                               
+                                                                       
html_break (1);
+                                                                       
html_form_input ('submit', 'execute', lang('Execute'));
+                                                                       
html_help_link ('execute');
+                                                               
html_table_col_end();
+                                                       
+                                                       html_table_row_end();
+                                               }
+                                                       
+                                       html_table_end();
+                               html_table_col_end();
+                       html_table_row_end();
+               html_table_end ();
+       }
+       html_form_end();
+}
+
+###
+# Handle Editing files
+###
+
+if ($edit or $menu == "edit")
+//if ($edit)
+{
+       
+       ###
+       # If $edit is "Edit", we do nothing, and let the for loop take over
+       ###
+
+       if ($edit_file)
+       {
+               $edit_file_content = stripslashes ($edit_file_content);
+       }
+
+       if ($edit_preview)
+       {
+               $content = $edit_file_content;
+
+               html_break (1);
+               html_text_bold (lang('Preview of %1', $path.'/'.$edit_file));
+               html_break (2);
+
+               html_table_begin ('90%');
+               html_table_row_begin ();
+               html_table_col_begin ();
+               html_text (nl2br ($content));
+               html_table_col_end ();
+               html_table_row_end ();
+               html_table_end ();
+       }
+       elseif ($edit_save || $edit_leave)
+       {
+               $content = $edit_file_content;
+               if ($GLOBALS['phpgw']->vfs->write (array (
+                               'string'        => $edit_file,
+                               'relatives'     => array (RELATIVE_ALL),
+                               'content'       => $content
+                       ))
+               )
+               {
+                       html_text_bold (lang('Saved %1', $path.'/'.$edit_file));
+                       html_break (2);
+//                     html_link_back ();
+               }
+               else
+               {
+                       html_text_error (lang('Could not save %1', 
$path.'/'.$edit_file));
+                       html_break (2);
+//                     html_link_back ();
+               }
+               if ( $edit_leave )
+               {
+                       html_link_back ();
+               }
+               $file_ar = array ('string'    => $edit_file,'relatives' => 
array (RELATIVE_ALL),'owner_lid' => False);
+               if ( $lock_hidden && $edit_leave )
+               {
+                       $file_ar['token'] = $lock_hidden;
+                       $GLOBALS['phpgw']->vfs->unlock($file_ar);
+               }
+               if ( $edit_leave ) unset($lock_hidden);
+               unset($file_ar);
+       }
+
+/* This doesn't work just yet
+       elseif ($edit_save_all)
+       {
+               for ($j = 0; $j != $numoffiles; $j++)
+               {
+                       $fileman[$j];
+
+                       $content = $fileman[$j];
+                       echo 'fileman['.$j.']: 
'.$fileman[$j].'<br><b>'.$content.'</b><br>';
+                       continue;
+
+                       if ($GLOBALS['phpgw']->vfs->write (array (
+                                       'string'        => $fileman[$j],
+                                       'relatives'     => array (RELATIVE_ALL),
+                                       'content'       => $content
+                               ))
+                       )
+                       {
+                               html_text_bold (lang('Saved %1', 
$path.'/'.$fileman[$j]));
+                               html_break (1);
+                       }
+                       else
+                       {
+                               html_text_error (lang('Could not save %1', 
$path.'/'.$fileman[$j]));
+                               html_break (1);
+                       }
+               }
+
+               html_break (1);
+       }
+*/
+
+       ###
+       # Now we display the edit boxes and forms
+       ###
+       if ( !$edit_leave )
+       {
+       for ($j = 0; $j != $numoffiles; $j++)
+       {
+               ###
+               # If we're in preview or save mode, we only show the file
+               # being previewed or saved
+               ###
 
-       $parms = Array(
-               'menuaction'=> 'filemanager.uifilemanager.index'
+               if ($edit_file && ($fileman[$j] != $edit_file))
+               {
+                       continue;
+               }
+
+               $file_ar = array ( 'string'    => $fileman[$j], 'relatives' => 
array (RELATIVE_ALL));
+               if ($fileman[$j] && $GLOBALS['phpgw']->vfs->file_exists (array (
+                                               'string'        => $fileman[$j],
+                                               'relatives'     => array 
(RELATIVE_ALL)
+                       ))
+               )
+               {
+                       if ( empty($lock_hidden) && 
$GLOBALS['phpgw']->vfs->lock($file_ar) )
+                       {
+                               
$GLOBALS['phpgw']->vfs->add_lock_override($file_ar);
+                       }
+                       unset($lock_hidden);
+                       if ($edit_file)
+                       {
+                               $content = stripslashes ($edit_file_content);
+                       }
+                       else
+                       {
+                               $content = $GLOBALS['phpgw']->vfs->read (array 
('string' => $fileman[$j]));
+                       }
+
+                       html_table_begin ('100%');
+                       html_form_begin 
($GLOBALS['appname'].'/index.php?path='.$path);
+                                       html_form_input('hidden', 
'lock_hidden', $GLOBALS['phpgw']->vfs->lock_token($file_ar));
+                                       html_form_input ('hidden', 'edit', 
True);
+                                               html_form_input ('hidden', 
'edit_file', $fileman[$j]);
+                       
+                                               ###
+                                               # We need to include all of the 
fileman entries for each file's form,
+                                               # so we loop through again
+                                               ###
+                       
+                                               for ($i = 0; $i != $numoffiles; 
$i++)
+                                               {
+                                                       html_form_input 
('hidden', 'fileman['.$i.']', base64_encode ($fileman[$i]));
+                                               }
+                       
+                                               html_table_row_begin ();
+                                                       html_table_col_begin ();
+                                                               
html_form_textarea ('edit_file_content', 35, 75, $content);
+                                                       html_table_col_end ();
+                                                       html_table_col_begin 
('center');
+                                                               html_form_input 
('submit', 'edit_preview', lang('Preview %1', html_encode ($fileman[$j], 1)));
+                                                               html_break (1);
+                                                               html_form_input 
('submit', 'edit_save', lang('Save %1', html_encode ($fileman[$j], 1)));
+                                       //                      html_break (1);
+                                       //                      html_form_input 
('submit', 'edit_save_all', lang('Save all'));
+                                                               html_break(1);
+                                                               html_form_input 
('submit', 'edit_leave', lang('Leave edit Session') );
+                                                       html_table_col_end ();
+                                               html_table_row_end ();
+                                               html_break (2);
+                                       html_form_end ();
+                       html_table_end ();
+               }
+               unset($file_ar);
+       }
+       }
+}
+
+###
+# Handle File Uploads
+###
+
+elseif ($upload_files && ($path != '/') && $path != $GLOBALS['fakebase'])
+{
+       for ($i = 0; $i != $show_upload_boxes; $i++)
+       {
+               if ($badchar = bad_chars ($_FILES['upload_file']['name'][$i], 
True, True))
+               {
+                       echo $GLOBALS['phpgw']->common->error_list (array 
(html_encode (lang('File names cannot contain "%1"', $badchar), 1)));
+
+                       continue;
+               }
+
+               ###
+               # Check to see if the file exists in the database, and get its 
info at the same time
+               ###
+
+               $ls_array = $GLOBALS['phpgw']->vfs->ls (array (
+                               'string'        => $path . '/' . 
$_FILES['upload_file']['name'][$i],
+                               'relatives'     => array (RELATIVE_NONE),
+                               'checksubdirs'  => False,
+                               'nofiles'       => True
+                       )
+               );
+
+               $fileinfo = $ls_array[0];
+
+               if ($fileinfo['name'])
+               {
+                       if ($fileinfo['mime_type'] == 'Directory')
+                       {
+                               echo $GLOBALS['phpgw']->common->error_list 
(array (lang('Cannot replace %1 because it is a directory', 
$fileinfo['name'])));
+                               continue;
+                       }
+               }
+//check either no quota is given or quota is exceeded
+               if (!strstr ($path, $GLOBALS['homedir']) || $quota==-1 || 
$quota - 
get_size($GLOBALS['homedir'],True)-$_FILES['upload_file']['size'][$i]>0)
+               {
+                       if ($_FILES['upload_file']['size'][$i] > 0)
+                       {
+                               if ($fileinfo['name'] && 
$fileinfo['deleteable'] != 'N')
+                               {
+                                       $GLOBALS['phpgw']->vfs->set_attributes 
(array (
+                                                       'string'        => 
$_FILES['upload_file']['name'][$i],
+                                                       'relatives'     => 
array (RELATIVE_ALL),
+                                                       'attributes'    => 
array (
+                                                                               
'owner_id' => $GLOBALS['userinfo']['username'],
+                                                                               
'modifiedby_id' => $GLOBALS['userinfo']['username'],
+                                                                               
'modified' => $now,
+                                                                               
'size' => $_FILES['upload_file']['size'][$i],
+                                                                               
'mime_type' => $_FILES['upload_file']['type'][$i],
+                                                                               
'deleteable' => 'Y',
+                                                                               
'comment' => stripslashes ($upload_comment[$i])
+                                                                       )
+                                               )
+                                       );
+       
+                                       $GLOBALS['phpgw']->vfs->cp(array (
+                                                       'from'  => 
$_FILES['upload_file']['tmp_name'][$i],
+                                                       'to'    => 
$_FILES['upload_file']['name'][$i],
+                                                       'relatives'     => 
array (RELATIVE_NONE|VFS_REAL, RELATIVE_ALL)
+                                               )
+                                       );
+       
+                                       html_text_summary(lang('Replaced %1', 
$disppath.'/'.$_FILES['upload_file']['name'][$i]), 
$_FILES['upload_file']['size'][$i]);
+                               }
+                               else
+                               {
+                                       $GLOBALS['phpgw']->vfs->cp (array (
+                                                       'from'          => 
$_FILES['upload_file']['tmp_name'][$i],
+                                                       'to'                    
=> $_FILES['upload_file']['name'][$i],
+                                                       'relatives'     => 
array (RELATIVE_NONE|VFS_REAL, RELATIVE_ALL)
+                                               )
+                                       );
+       
+                                       $GLOBALS['phpgw']->vfs->set_attributes 
(array (
+                                                       'string'        => 
$_FILES['upload_file']['name'][$i],
+                                                       'relatives'     => 
array (RELATIVE_ALL),
+                                                       'attributes'    => 
array (
+                                                       'mime_type' => 
$_FILES['upload_file']['type'][$i],
+                                                       'comment' => 
stripslashes ($upload_comment[$i])
+                                                                       )
+                                               )
+                                       );
+       
+                                       html_text_summary(lang('Created %1', 
$disppath.'/'.$_FILES['upload_file']['name'][$i]), 
$_FILES['upload_file']['size'][$i]);
+                               }
+                       }
+                       elseif ($_FILES['upload_file']['name'][$i])
+                       {
+                               $GLOBALS['phpgw']->vfs->touch (array (
+                                               'string'        => 
$_FILES['upload_file']['name'][$i],
+                                               'relatives'     => array 
(RELATIVE_ALL)
+                                       )
+                               );
+       
+                               $GLOBALS['phpgw']->vfs->set_attributes (array (
+                                               'string'        => 
$_FILES['upload_file']['name'][$i],
+                                               'relatives'     => array 
(RELATIVE_ALL),
+                                               'attributes'    => array (
+                                                                       
'mime_type' => $_FILES['upload_file']['type'][$i],
+                                                                       
'comment' => $upload_comment[$i]
+                                                               )
+                                       )
+                               );
+       
+                               html_text_summary(lang('Created %1', 
$disppath.'/'.$_FILES['upload_file']['name'][$i]), $file_size[$i]);
+                       }
+               }
+               else
+               {
+                       html_text_summary(lang('could not upload %1 quota 
exceeded', $disppath.'/' . $_FILES['upload_file']['name'][$i]), '');
+               }
+               
+       }
+
+       html_break (2);
+       html_link_back ();
+}
+
+###
+# Handle Editing comments
+###
+
+//elseif ($comment_files)
+elseif ($comment_files  || $menu == "edit_comments")
+{
+       if (is_array($comment_files))
+       {
+               while (list ($file) = each ($comment_files))
+               {
+                       if ($badchar = bad_chars ($comment_files[$file], False, 
True))
+                       {
+                               echo $GLOBALS['phpgw']->common->error_list 
(array (html_text_italic ($file, 1) . html_encode (': ' . lang('Comments cannot 
contain "%1"', $badchar), 1)));
+                               continue;
+                       }
+       
+                       $GLOBALS['phpgw']->vfs->set_attributes (array (
+                                       'string'        => $file,
+                                       'relatives'     => array (RELATIVE_ALL),
+                                       'attributes'    => array (
+                                                               'comment' => 
stripslashes ($comment_files[$file])
+                                                       )
+                               )
+                       );
+       
+                       html_text_summary (lang('Updated comment for %1', 
$path.'/'.$file));
+               }
+       
+               html_break (2);
+               html_link_back ();
+       }
+}
+
+###
+# Handle Renaming Files and Directories
+###
+
+//elseif ($renamefiles)
+elseif ($renamefiles || $menu == "rename")
+{
+       if (is_array($renamefiles))
+       {
+               while (list ($from, $to) = each ($renamefiles))
+               {
+                       if ($badchar = bad_chars ($to, True, True))
+                       {
+                               echo $GLOBALS['phpgw']->common->error_list 
(array (html_encode (lang('File names cannot contain "%1"', $badchar), 1)));
+                               continue;
+                       }
+       
+                       if (ereg ("/", $to) || ereg ("\\\\", $to))
+                       {
+                               echo $GLOBALS['phpgw']->common->error_list 
(array (lang("File names cannot contain \\ or /")));
+                       }
+                       elseif (!$GLOBALS['phpgw']->vfs->mv (array (
+                                               'from'  => $from,
+                                               'to'    => $to
+                               ))
+                       )
+                       {
+                               echo $GLOBALS['phpgw']->common->error_list 
(array (lang('Could not rename %1 to %2', $disppath.'/'.$from, 
$disppath.'/'.$to)));
+                       }
+                       else 
+                       {
+                               html_text_summary (lang('Renamed %1 to %2', 
$disppath.'/'.$from, $disppath.'/'.$to));
+                       }
+               }
+       
+               html_break (2);
+               html_link_back ();
+       }
+}
+
+###
+# Handle Moving Files and Directories
+###
+
+//elseif ($move)
+elseif ($menu == 'move_to')
+{
+       while (list ($num, $file) = each ($fileman))
+       {
+               // check either no quota is given or quota is exceeded
+               if (strstr ($todir,$disppath) || !strstr ($todir, 
$GLOBALS['homedir']) || $quota==-1 || $quota - 
get_size($GLOBALS['homedir'],True)-get_size(array('directory' => 
$disppath,'name'      => $file), False)>0)
+               {
+                       if ($GLOBALS['phpgw']->vfs->mv (array (
+                               'from'  => $file,
+                               'to'    => $todir . '/' . $file,
+                               'relatives'     => array (RELATIVE_ALL, 
RELATIVE_NONE)
+                       ))
+                       )
+                       {
+                               $moved++;
+                               html_text_summary (lang('Moved %1 to %2', 
$disppath.'/'.$file, $todir.'/'.$file));
+                       }
+                       else
+                       {
+                               echo $GLOBALS['phpgw']->common->error_list 
(array (lang('Could not move %1 to %2', $disppath.'/'.$file, 
$todir.'/'.$file)));
+                       }
+               }
+               else
+               {
+                       html_text_summary (lang('Could not move %1 to %2 quota 
exceeded', $disppath.'/'.$file, $todir.'/'.$file));
+               }
+       }
+
+       if ($moved)
+       {
+               html_break (2);
+               html_link ($GLOBALS['appname'].'/index.php?path='.$todir, 
lang('Go to %1', $todir));
+       }
+
+       html_break (2);
+       html_link_back ();
+}
+
+###
+# Handle Copying of Files and Directories
+###
+
+//elseif ($copy)
+elseif ($menu == 'copy_to')
+{
+       while (list ($num, $file) = each ($fileman))
+       {
+               // check either no quota is given or quota is exceeded
+               if (!strstr ($todir, $GLOBALS['homedir']) || $quota==-1 || 
$quota - get_size($GLOBALS['homedir'],True)-get_size(array('directory' => 
$disppath,'name'   => $file), False)>0)
+               {
+                       if ($GLOBALS['phpgw']->vfs->cp (array (
+                               'from'  => $file,
+                               'to'    => $todir . '/' . $file,
+                               'relatives'     => array (RELATIVE_ALL, 
RELATIVE_NONE)
+                               ))
+                       )
+                       {
+                               $copied++;
+                               html_text_summary (lang('Copied %1 to %2', 
$disppath.'/'.$file, $todir.'/'.$file));
+                       }
+                       else
+                       {
+                               echo $GLOBALS['phpgw']->common->error_list 
(array (lang('Could not copy %1 to %2', $disppath.'/'.$file, 
$todir.'/'.$file)));
+                       }
+               }
+               else
+               {
+                       html_text_summary (lang('Could not copy %1 to %2 quota 
exceeded', $disppath.'/'.$file, $todir.'/'.$file));
+               }
+       }
+
+       if ($copied)
+       {
+               html_break (2);
+               html_link ($GLOBALS['appname'].'/index.php?path='.$todir, 
lang('Go to %1', $todir));
+       }
+
+       html_break (2);
+       html_link_back ();
+}
+
+###
+# Handle Deleting Files and Directories
+###
+
+//elseif ($delete  or $menu == "delete")
+elseif ($menu == "delete")
+{
+       for ($i = 0; $i != $numoffiles; $i++)
+       {
+               if ($fileman[$i])
+               {
+                       if ($GLOBALS['phpgw']->vfs->delete (array ('string' => 
$fileman[$i])))
+                       {
+                               html_text_summary (lang('Deleted %1', 
$disppath.'/'.$fileman[$i]), $fileinfo['size']);
+                       }
+                       else
+                       {
+                               $GLOBALS['phpgw']->common->error_list (array 
(lang('Could not delete %1', $disppath.'/'.$fileman[$i])));
+                       }
+               }
+       }
+
+       html_break (2);
+       html_link_back ();
+}
+
+elseif ($createdir)
+{
+       if ($badchar = bad_chars ($createdir, True, True))
+       {
+               echo $GLOBALS['phpgw']->common->error_list (array (html_encode 
(lang('Directory names cannot contain "%1"', $badchar), 1)));
+               html_break (2);
+               html_link_back ();
+               html_page_close ();
+       }
+       
+       if ($createdir[strlen($createdir)-1] == ' ' || $createdir[0] == ' ')
+       {
+               echo $GLOBALS['phpgw']->common->error_list (array (lang('Cannot 
create directory because it begins or ends in a space')));
+               html_break (2);
+               html_link_back ();
+               html_page_close ();
+       }
+
+       $ls_array = $GLOBALS['phpgw']->vfs->ls (array (
+                               'string'        => $path . '/' . $createdir,
+                               'relatives'     => array (RELATIVE_NONE),
+                               'checksubdirs'  => False,
+                               'nofiles'       => True
+               )
        );
 
-       
$GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/index.php',$parms));
-       $GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
-       exit;
+       $fileinfo = $ls_array[0];
+
+       if ($fileinfo['name'])
+       {
+               if ($fileinfo['mime_type'] != 'Directory')
+               {
+                       echo $GLOBALS['phpgw']->common->error_list (array 
(lang('%1 already exists as a file', $fileinfo['name'])));
+                       html_break (2);
+                       html_link_back ();
+                       html_page_close ();
+               }
+               else
+               {
+                       echo $GLOBALS['phpgw']->common->error_list (array 
(lang('Directory %1 already exists', $fileinfo['name'])));
+                       html_break (2);
+                       html_link_back ();
+                       html_page_close ();
+               }
+       }
+       else
+       {
+               if ($GLOBALS['phpgw']->vfs->mkdir (array ('string' => 
$createdir)))
+               {
+                       html_text_summary (lang('Created directory %1', 
$disppath.'/'.$createdir));
+                       html_break (2);
+                       html_link 
($GLOBALS['appname'].'/index.php?path='.$disppath.'/'.$createdir, lang('Go to 
%1', $disppath.'/'.$createdir));
+               }
+               else
+               {
+                       echo $GLOBALS['phpgw']->common->error_list (array 
(lang('Could not create %1', $disppath.'/'.$createdir)));
+               }
+       }
+
+       html_break (2);
+       html_link_back ();
+}
+##
+# Handle locking files
+##
+elseif($menu == 'lock')
+{
+       while (list ($num, $file) = @each ($fileman))
+       {
+               $fileop = array ( 'string'        => $path . '/' . $file,
+                               'relatives'     => array (RELATIVE_NONE),
+                               'checksubdirs'  => False,
+                               'nofiles'       => True
+                               );
+               if ( $GLOBALS['settings']['lock_timeout'] )
+               {
+                       $fileop += array('timeout' => 
$GLOBALS['settings']['lock_timeout']);
+               }
+               else
+               {
+                       $fileop += array('timeout' => 3600);
+               }
+               if ( ($ans = $GLOBALS['phpgw']->vfs->lock($fileop)) )
+               {
+                       html_text( lang( 'Locking the files ok !' ) );
+                       $tok = $GLOBALS['phpgw']->vfs->lock_token($fileop);
+                       $fileinfo['token'] = $tok;
+                       //Doing this allow us (and only us !) to work on the 
file for this session
+                       $GLOBALS['phpgw']->vfs->add_lock_override($fileop,$tok);
+               }
+               else
+               {
+                       html_text( lang( 'Locking file failed !' ));
+               }
+       }
+       html_break (2);
+       html_link_back ();
+}
+elseif($menu == 'unlock')
+{
+       while (list ($num, $file) = @each ($fileman))
+       {
+               $fileop = array ( 'string'        => $path . '/' . $file,
+                               'relatives'     => array (RELATIVE_NONE),
+                               'checksubdirs'  => False,
+                               'nofiles'       => True,
+                               'owner_lid'             => False //<= So 
default user now
+                               );
+               $tok = $GLOBALS['phpgw']->vfs->lock_token($fileop);
+               $fileop['token'] = $tok;
+               if ( $GLOBALS['phpgw']->vfs->unlock($fileop) )
+               {
+                       html_text(lang( 'unlocking ok' ) );
+               }
+               else
+               {
+                       html_text( lang( 'unlocking failed !' ));
+               }
+       }
+       html_break (2);
+       html_link_back ();
+}
+html_page_close ();
 ?>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]