⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filesystem_treeview.class.inc

📁 groupoffice
💻 INC
字号:
<?php/** * @copyright Intermesh 2005 * @author Merijn Schering <mschering@intermesh.nl> * @version $Revision: 1.10 $ $Date: 2005/11/16 16:18:57 $ * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. */ class filesystem_treeview extends html_element{	var $id;	var $path;	var $form_name;	var $change_folder;	var $treeview;		function filesystem_treeview($id, $path, $return_zero=false, $form_name='forms[0]')	{		global $GO_USERS, $GO_SECURITY, $GO_CONFIG, $GO_MODULES;				$this->id=$id;					$this->form_name=$form_name;		$this->path = isset($_POST[$this->id]['path']) ? smart_stripslashes($_POST[$this->id]['path']) : $path;		$this->change_folder = (isset($_POST[$this->id]['change_folder']) && $_POST[$this->id]['change_folder'] == 'true');							require_once($GO_CONFIG->class_path.'filesystem.class.inc');			$fs = new filesystem();				$this->treeview = new treeview($id);		$img = new image('users_small');		$img->set_attribute('align','middle');		$img->set_attribute('style','border:0px;margin-right:5px;');				$root_node = new treenode($this->treeview, 'users');				$img = new image('user_small');		$img->set_attribute('align','middle');		$img->set_attribute('style','border:0px;margin-right:5px;');				$home_path = $GO_CONFIG->file_storage_path.'users/'.$_SESSION['GO_SESSION']['username'].'/';				$link = new hyperlink($this->get_folder_handler($home_path), $img->get_html().$GLOBALS['fs_personal'], $GLOBALS['fs_personal']);				$user_node = new treenode($this->treeview, $home_path, $link->get_html(), null, true);		$user_node = $this->buildTree($user_node);		$root_node->addNode($user_node);				foreach ($fs->get_my_shares() as $sharer)		{			$GO_USERS->get_user($sharer);			if ($GO_USERS->f('id') != $GO_SECURITY->user_id)			{				$middle_name = $GO_USERS->f('middle_name') == '' ? '' : $GO_USERS->f('middle_name').' ';				$user['name'] = $GO_USERS->f('first_name').' '.$middle_name.$GO_USERS->f('last_name');								$img = new image('user_small');				$img->set_attribute('align','middle');				$img->set_attribute('style','border:0px;margin-right:5px;');								$user_node = new treenode($this->treeview, $GO_USERS->f('id'), $img->get_html().$user['name']);				$share_count = $fs->get_shares($GO_USERS->f('id'));				$shared_folders = array();				$had_permission = false;				while ($fs->next_record())				{					if (file_exists($fs->f('path')))					{						if (is_dir($fs->f('path')))						{							$is_sub_dir = isset($last_folder) ? $fs->is_sub_dir($fs->f('path'), $last_folder) : false;							if (!$had_permission || !$is_sub_dir)							{								if ($GO_SECURITY->has_permission($GO_SECURITY->user_id, $fs->f('acl_read')) || 										$GO_SECURITY->has_permission($GO_SECURITY->user_id, $fs->f('acl_write')))								{																		$closed_img = new image('folderclosed');																$closed_img->set_attribute('align','middle');									$closed_img->set_attribute('style','border:0px;');																		$folder_name = basename($fs->f('path'));									$short_name = cut_string($folder_name, 30);																		$closedFolderLink = new hyperlink($this->get_folder_handler($fs->f('path')), 										$closed_img->get_html().htmlspecialchars($short_name), 										htmlspecialchars($folder_name));																		$opened_img = new image('folderopen');									$opened_img->set_attribute('align','middle');									$opened_img->set_attribute('style','border:0px;');																			$openedFolderLink = new hyperlink($this->get_folder_handler($fs->f('path')), 										$opened_img->get_html().htmlspecialchars($short_name), 										htmlspecialchars($folder_name));																	$folder_node = new treenode($this->treeview, $fs->f('path'), $closedFolderLink->get_html(),$openedFolderLink->get_html());									$folder_node = $this->buildTree($folder_node);									$user_node->addNode($folder_node);								}else								{									$had_permission = false;																}							}						}					}else					{						$fs2 = new filesystem();						$fs2->delete_share($fs->f('path'));					}					if (!$is_sub_dir)					{						$last_folder = $fs->f('path');					}				}				$root_node->addNode($user_node);			}						}				$this->treeview->addRootNode($root_node);	}			function get_html()	{		$this->add_html_element(new input('hidden',$this->id.'[path]', $this->path, false));		$this->add_html_element(new input('hidden',$this->id.'[change_folder]', 'false', false));				$this->innerHTML .= '<script type="text/javascript">function change_folder_'.$this->id.'(path){			document.forms["'.$this->form_name.'"].elements["'.$this->id.'[change_folder]"].value="true";			document.forms["'.$this->form_name.'"].elements["'.$this->id.'[expandId]"].value=path;			document.forms["'.$this->form_name.'"].elements["'.$this->id.'[path]"].value=path;			document.forms["'.$this->form_name.'"].submit();}</script>';					$this->innerHTML .= $this->treeview->getTreeView();		return $this->innerHTML;	}		function get_folder_handler($path=null)	{		$fh= 'javascript:change_folder_'.$this->id.'(';		if(isset($this->path))		{			$fh .= '\''.htmlspecialchars(addslashes($path),ENT_QUOTES).'\'';		}else		{			$fh .= 'this';		}		$fh .= ');';		return $fh;	}		function buildTree($rootNode)	{			$fs = new filesystem();				$folders = $fs->get_folders_sorted($rootNode->id);				foreach($folders as $folder)		{			if($fs->get_share($folder['path']))			{				$closed_img = new image('shared_folder_closed');				$opened_img = new image('shared_folder_open');			}else			{				$closed_img = new image('folderclosed');				$opened_img = new image('folderopen');			}			$closed_img->set_attribute('align','middle');			$closed_img->set_attribute('style','border:0px;');						$short_name = cut_string($folder['name'], 30);						$closedFolderLink = new hyperlink($this->get_folder_handler($folder['path']), 				$closed_img->get_html().htmlspecialchars($short_name), 				htmlspecialchars($folder['name']));							$opened_img->set_attribute('align','middle');			$opened_img->set_attribute('style','border:0px;');							$openedFolderLink = new hyperlink($this->get_folder_handler($folder['path']), 				$opened_img->get_html().htmlspecialchars($short_name), 				htmlspecialchars($folder['name']));							$subNode = new treenode($this->treeview, $folder['path'], $closedFolderLink->get_html(), $openedFolderLink->get_html());			if($rootNode->open)			{				$subNode = $this->buildTree($subNode);							}			$rootNode->addNode($subNode);		}		return $rootNode;		}}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -