$file_output[$i][$internal] = array('widget' => array('type' => 'link', 'onClick' => "open_popup('" . $GLOBALS['phpgw']->link('/index.php', array( 'menuaction' => 'filemanager.uifilemanager.history', 'file' => urlencode($file['name']), 'vers' => urlencode($file[$internal]), 'mime_type'=> urlencode($file['mime_type']), 'collapse' => urlencode('collapse'), 'history_path'=> urlencode($this->bofilemanager->path), 'history_file' => urlencode($file['name']) ) ). "','1000','800');", 'href' => '#', 'caption' => $file[$internal])); function history() { $GLOBALS['phpgw_info']['flags']['noframework'] = True; $file = $this->bofilemanager->path.$this->bofilemanager->dispsep.$this->bofilemanager->file; $from_rev=$this->bofilemanager->from_rev; $to_rev=$this->bofilemanager->to_rev; $vers= $this->bofilemanager->vers; $collapse=$this->bofilemanager->collapse; $mime_type=$this->bofilemanager->mime_type; $page=$this->bofilemanager->page; $pages=0; if($GLOBALS['phpgw']->vfs->file_exists(array('string' => $file,'relatives' => Array(RELATIVE_NONE)))) { $col_headers = array ( lang('') => '', lang('version') => 'version', lang('date') => 'created', lang('performed by') => 'owner_id', lang('operation') => 'comment' ); foreach($col_headers as $label => $field) { $header[] = array('widget' => array('type' => 'label','caption' => $label)); } $table_head = array('table_col' => $header); if($from_rev && $to_rev) { if(!is_numeric($from_rev) || $from_rev <0 || $from_rev>$vers) { $from_rev=1; } if(!is_numeric($to_rev) || $to_rev >$vers || $to_rev<0) { $to_rev=$vers; } if($from_rev>$to_rev) { $temp=$from_rev; $from_rev=$to_rev; $to_rev=$temp; } } elseif($from_rev) { if(!is_numeric($from_rev) || $from_rev <0 || $from_rev>$vers) { $from_rev=1; } $to_rev=$vers; } elseif($to_rev) { if(!is_numeric($to_rev) || $to_rev <0 || $to_rev>$vers) { $to_rev=$vers; } $from_rev=1; } $data = array( 'string' => $file, 'from_rev'=>$from_rev, 'to_rev' => $to_rev, 'vers' =>$vers, 'relatives' => Array(RELATIVE_NONE) ); if($collapse) { $data['collapse']='collapse'; } $journal_array = $GLOBALS['phpgw']->vfs->get_journal($data); $revision=count($journal_array); // Calculate the number of pages $pages = floor($revision / $this->maxperpage); if($revision % $this->maxperpage) $pages++; if($page > $pages) { $page= $pages; } else if($page<1) { $page=1; } $this->bofilemanager->save_page($page,$pages); if(is_array($journal_array)) { @reset($journal_array); $startrevision=($page-1)*$this->maxperpage; $endrevision=$startrevision+$this->maxperpage; if($pages==0) { $startrevision=0; $endrevision=0; } for($i=$startrevision; $i<$endrevision;$i++) { if($i==$revision) break; $journal_entry=$journal_array[$i]; $var = array(); @reset($col_headers); foreach($col_headers as $label => $field) { switch($field) { case 'owner_id': $var[] = array('widget' => array('type' => 'label','caption' => $GLOBALS['phpgw']->common->grab_owner_name($journal_entry[$field]))); break; case 'created': $var[] = array('widget' => array('type' => 'label','caption' => $this->bofilemanager->convert_date($journal_entry[$field]))); break; case '': $var[] = array('widget' => array('type' => 'checkbox','name'=>'filehis[]','value'=>$journal_entry['version'],'onClick' => 'checkCB(this)')); break; case 'version': if($mime_type=='Directory') { $href = '#'; $onClick = "open_popup('" . $GLOBALS['phpgw']->link('/index.php',array( 'menuaction' => 'filemanager.ui' .'filemanager.indexhis', 'path' => urlencode($this->bofilemanager->path), 'file' => urlencode($this->bofilemanager->file), 'history_path' => urlencode($this->bofilemanager->history_path), 'history_file' => urlencode($this->bofilemanager->history_file), 'vers' => urlencode($journal_entry[$field]))) . "','800','800');"; } else { $href = '#'; $onClick = "open_popup('" . $GLOBALS['phpgw']->link('/index.php',array( 'menuaction' => 'filemanager.ui' .'filemanager.viewhis', 'path' => urlencode($this->bofilemanager->path), 'history_path' => urlencode($this->bofilemanager->history_path), 'file' => urlencode($this->bofilemanager->file), 'history_file' => urlencode($this->bofilemanager->history_file), 'vers' => urlencode($journal_entry[$field]))) . "','800','800');"; } $var[] = array('widget' => array('type' => 'link','caption' => $journal_entry[$field],'href' => $href,'onClick' => $onClick)); break; default: $var[] = array('widget' => array('type' => 'label','caption' => $journal_entry[$field])); break; } } $table_rows[] = array('table_col' => $var); $table_footer = array(); } } $data = array ( 'form' => array('action' => $GLOBALS['phpgw']->link('/index.php',array( 'menuaction' => 'filemanager.uifilemanager.action', 'path' => urlencode($this->bofilemanager->path))), 'id' => 'form_history', 'name' => 'history', 'method' => 'POST', 'enctype' => 'multipart/form-data'), 'error' => (isset($this->bofilemanager->errors) && is_array(unserialize(base64_decode($this->bofilemanager->errors)))?$GLOBALS['phpgw']->common->error_list(unserialize(base64_decode($this->bofilemanager->errors)),'Results'):''), 'error' => '', 'action_url' => '#', 'title' => lang('history for %1',$file), 'table' => array('width' => '100%','table_head' => $table_head ,'table_row' => $table_rows,'table_footer' => $table_footer), 'lang_close' => lang('close window') ); $data['lang_from_rev'] = lang('from rev'); $data['from'] = array('widget' => array('type' => 'text', 'name' => 'from_rev', 'maxlength' => '255', 'size' => '15', 'value' => $from_rev)); $data['lang_to_rev'] = lang('to rev'); $data['to'] = array('widget' => array('type' => 'text', 'name' => 'to_rev', 'maxlength' => '255', 'size' => '15', 'value' => $to_rev)); $data['img_search'] = array('widget' => array('type' => 'image', 'src' => $GLOBALS['phpgw']->common->image('filemanager','reload'), 'title' => lang('search'), 'name' => 'params[research]', 'value' => 'research')); $data['file'] = array('widget' => array('type' => 'hidden', 'name' => 'file', 'value' => $this->bofilemanager->file )); $data['vers'] = array('widget' => array('type' => 'hidden', 'name' => 'vers', 'value' => $this->bofilemanager->vers )); $data['mime_type'] = array('widget' => array('type' => 'hidden', 'name' => 'mime_type', 'value' => $this->bofilemanager->mime_type )); $data['collapse'] = array('widget' => array('type' => 'checkbox','name'=>'collapse','value'=>'collapse','caption'=> 'collapse','checked' => (isset($this->bofilemanager->collapse)?True:False))); $data['img_compare'] = array('widget' => array('type' => 'image', 'src' => $GLOBALS['phpgw']->common->image('filemanager','button_ok'), 'title' => lang('Compare'), 'name' => 'params[compare]', 'value' => 'compare')); if($page>1) { $data['img_first'] = array('widget' => array('type' => 'image', 'src' => $GLOBALS['phpgw']->common->image('filemanager','first-grey'), 'title' => lang('first'), 'name' => 'params[first]', 'value' => 'first')); $data['img_prev'] = array('widget' => array('type' => 'image', 'src' => $GLOBALS['phpgw']->common->image('filemanager','left-grey'), 'title' => lang('previsous'), 'name' => 'params[prev]', 'value' => 'prev')); } if($page<$pages) { $data['img_next'] = array('widget' => array('type' => 'image', 'src' => $GLOBALS['phpgw']->common->image('filemanager','right-grey'), 'title' => lang('next'), 'name' => 'params[next]', 'value' => 'next')); $data['img_last'] = array('widget' => array('type' => 'image', 'src' => $GLOBALS['phpgw']->common->image('filemanager','last-grey'), 'title' => lang('last'), 'name' => 'params[last]', 'value' => 'last')); } if($pages>1) $data['page'] = array('widget' => array('type' => 'label', 'caption' => lang('Page').$page.'/'.$pages)); } $GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('history' => $data)); } function view_file($file_array='') { if(is_array($file_array)) { $this->bofilemanager->path = $file_array['path']; $this->bofilemanager->file = $file_array['file']; } $file = $this->bofilemanager->path.SEP.$this->bofilemanager->file; if($GLOBALS['phpgw']->vfs->file_exists(array('string' => $file,'relatives' => Array(RELATIVE_NONE)))) { $ls_array = $GLOBALS['phpgw']->vfs->ls(array('string' => $file,'relatives' => array (RELATIVE_ALL),'checksubdirs' => False,'nofiles' => True)); $mime_type = $ls_array[0]['mime_type']; /*$mime_part = explode('/',$mime_type); $mime_type = ($mime_part=='text'?'application/octet-stream':$mime_type); echo $mime_type; exit;*/ $browser = CreateObject('phpgwapi.browser'); $browser->content_header($this->bofilemanager->file,$mime_type,$ls_array[0]['size']); echo $GLOBALS['phpgw']->vfs->read(array('string' => $file,'relatives' => Array(RELATIVE_NONE))); flush(); } if(!is_array($file_array)) { exit(); } }