parent
aba2fd942d
commit
30a0c06647
@ -1,275 +0,0 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
/* INIT SECTION */ |
||||
require 'global.inc.php'; |
||||
|
||||
/* Libraries */ |
||||
|
||||
require_once api_get_path(LIBRARY_PATH).'course_document.lib.php'; |
||||
|
||||
//if(!$is_in_admin){ |
||||
if (!api_is_platform_admin()){ |
||||
api_protect_course_script(); |
||||
} |
||||
|
||||
//session |
||||
if(isset($_GET['id_session'])) { |
||||
$_SESSION['id_session'] = intval($_GET['id_session']); |
||||
} |
||||
|
||||
$htmlHeadXtra[] = |
||||
"<script type=\"text/javascript\"> |
||||
function confirmation (name) |
||||
{ |
||||
if (confirm(\" ". api_utf8_encode(get_lang('AreYouSureToDelete')) ." \"+ name + \" ?\")) |
||||
{return true;} |
||||
else |
||||
{return false;} |
||||
} |
||||
</script>"; |
||||
|
||||
/* Variables |
||||
- some need defining before inclusion of libraries */ |
||||
|
||||
$sType = isset($sType) ? $sType : ''; |
||||
|
||||
if ($sType=="MP3") $sType="audio"; |
||||
|
||||
// Resource type |
||||
$sType = strtolower($sType); |
||||
|
||||
// Choosing the repository to be used. |
||||
if (api_is_in_course()) { |
||||
if (!api_is_in_group()) { |
||||
// 1. We are inside a course and not in a group. |
||||
if (api_is_allowed_to_edit()) { |
||||
// 1.1. Teacher |
||||
$base_work_dir = api_get_path(SYS_COURSE_PATH).api_get_course_path().'/document/'; |
||||
$http_www = api_get_path(WEB_COURSE_PATH).api_get_course_path().'/document/'; |
||||
} else { |
||||
// 1.2. Student |
||||
$base_work_dir = api_get_path(SYS_COURSE_PATH).api_get_course_path().'/document/shared_folder/'.api_get_user_id().'/'; |
||||
$http_www = api_get_path(WEB_COURSE_PATH).api_get_course_path().'/document/shared_folder/'.api_get_user_id().'/'; |
||||
} |
||||
} else { |
||||
// 2. Inside a course and inside a group. |
||||
$base_work_dir = api_get_path(SYS_COURSE_PATH).api_get_course_path().'/document'.$group_properties['directory'].'/'; |
||||
$http_www = api_get_path(WEB_COURSE_PATH).api_get_course_path().'/document'.$group_properties['directory'].'/'; |
||||
} |
||||
} else { |
||||
if (api_is_platform_admin() && $_SESSION['this_section'] == 'platform_admin') { |
||||
// 3. Platform administration activities. |
||||
$base_work_dir = $_configuration['root_sys'].'home/default_platform_document/'; |
||||
$http_www = $_configuration['root_web'].'home/default_platform_document/'; |
||||
} else { |
||||
// 4. The user is outside courses. |
||||
$userId = api_get_user_id(); |
||||
$base_work_dir = UserManager::getUserPathById($userId, 'system').'my_files/'; |
||||
$http_www = UserManager::getUserPathById($userId, 'web').'my_files/'; |
||||
} |
||||
} |
||||
|
||||
// Set the upload path according to the resource type. |
||||
if ($sType == 'audio') { |
||||
check_and_create_resource_directory($base_work_dir, '/audio', get_lang('Audio')); |
||||
$base_work_dir = $base_work_dir.'audio/'; |
||||
$http_www = $http_www.'audio/'; |
||||
$path = "/audio/"; |
||||
} elseif ($sType == 'flash') { |
||||
check_and_create_resource_directory($base_work_dir, '/flash', get_lang('Flash')); |
||||
$base_work_dir = $base_work_dir.'flash/'; |
||||
$http_www = $http_www.'flash/'; |
||||
$path = "/flash/"; |
||||
} elseif ($sType == 'images') { |
||||
check_and_create_resource_directory($base_work_dir, '/images', get_lang('Images')); |
||||
$base_work_dir = $base_work_dir.'images/'; |
||||
$http_www = $http_www.'images/'; |
||||
$path = "/images/"; |
||||
} elseif ($sType == 'video') { |
||||
check_and_create_resource_directory($base_work_dir, '/video', get_lang('Video')); |
||||
$base_work_dir = $base_work_dir.'video/'; |
||||
$http_www = $http_www.'video/'; |
||||
$path = "/video/"; |
||||
} elseif ($sType == 'video/flv') { |
||||
check_and_create_resource_directory($base_work_dir, '/video', get_lang('Video')); |
||||
check_and_create_resource_directory($base_work_dir, '/video/flv', 'flv'); |
||||
$base_work_dir = $base_work_dir.'video/flv/'; |
||||
$http_www = $http_www.'video/flv/'; |
||||
$path = "/video/flv/"; |
||||
} |
||||
|
||||
$course_dir = $_course['path'].'/document/'.$sType; |
||||
$sys_course_path = api_get_path(SYS_COURSE_PATH); |
||||
|
||||
$dbl_click_id = 0; // used to avoid double-click |
||||
$is_allowed_to_edit = api_is_allowed_to_edit(); |
||||
|
||||
$req_gid = ''; |
||||
|
||||
/* Constants and variables */ |
||||
|
||||
$course_quota = DocumentManager::get_course_quota(); |
||||
|
||||
/* MAIN SECTION */ |
||||
|
||||
/* Header */ |
||||
|
||||
$tool_name = get_lang('Doc'); // Title of the page (should come from the language file) |
||||
|
||||
?> |
||||
<style type="text/css" media="screen, projection"> |
||||
/*<![CDATA[*/ |
||||
@import "<?php echo api_get_path(WEB_CSS_PATH); ?>public_admin/default.css";
|
||||
/*]]>*/ |
||||
</style> |
||||
|
||||
<?php |
||||
if(api_get_setting('stylesheets')<>'') |
||||
{ |
||||
?> |
||||
<style type="text/css" media="screen, projection"> |
||||
/*<![CDATA[*/ |
||||
@import "<?php echo api_get_path(WEB_CSS_PATH), api_get_setting('stylesheets'); ?>/default.css";
|
||||
/*]]>*/ |
||||
</style> |
||||
|
||||
<?php |
||||
} |
||||
|
||||
$is_allowed_to_edit = api_is_allowed_to_edit(); |
||||
|
||||
if ($is_allowed_to_edit) { // TEACHER ONLY |
||||
|
||||
/* DELETE FILE OR DIRECTORY */ |
||||
|
||||
if (isset($_GET['delete'])) { |
||||
if (DocumentManager::delete_document($_course,$_GET['delete'], $base_work_dir)) { |
||||
Display::display_normal_message(api_utf8_encode(get_lang('DocDeleted'))); |
||||
} else { |
||||
Display::display_normal_message(api_utf8_encode(get_lang('DocDeleteError'))); |
||||
} |
||||
} |
||||
|
||||
if (isset($_POST['action'])) { |
||||
switch ($_POST['action']) { |
||||
case 'delete': |
||||
foreach ($_POST['path'] as $index => $path) { |
||||
DocumentManager::delete_document($_course, $path, $base_work_dir); |
||||
} |
||||
Display::display_normal_message(api_utf8_encode(get_lang('DocDeleted'))); |
||||
break; |
||||
} |
||||
} |
||||
} |
||||
|
||||
/* GET ALL DOCUMENT DATA FOR CURDIRPATH */ |
||||
|
||||
$docs_and_folders = getlist ($base_work_dir.'/'); |
||||
|
||||
if ($docs_and_folders) { |
||||
//create a sortable table with our data |
||||
$sortable_data = array(); |
||||
while (list ($key, $id) = each($docs_and_folders)) { |
||||
// Skip directories. |
||||
if ($id['filetype'] != 'file') { |
||||
continue; |
||||
} |
||||
|
||||
$row = array (); |
||||
|
||||
//if the item is invisible, wrap it in a span with class invisible |
||||
$invisibility_span_open = ($id['visibility'] == 0) ? '<span class="invisible">' : ''; |
||||
$invisibility_span_close = ($id['visibility'] == 0) ? '</span>' : ''; |
||||
//size (or total size of a directory) |
||||
$size = $id['filetype'] == 'folder' ? get_total_folder_size($id['path'], $is_allowed_to_edit) : $id[size]; |
||||
//get the title or the basename depending on what we're using |
||||
if ($id['title'] != '') { |
||||
$document_name = $id['title']; |
||||
} else { |
||||
$document_name = basename($id['path']); |
||||
} |
||||
//$row[] = $key; //testing |
||||
//data for checkbox |
||||
/* |
||||
if ($is_allowed_to_edit AND count($docs_and_folders) > 1) { |
||||
$row[] = $id['path']; |
||||
} |
||||
*/ |
||||
// icons with hyperlinks |
||||
$row[]= '<a href="#" onclick="javascript: OpenFile(\''.$http_www.'/'.$id['title'].'\', \''.$sType.'\');return false;">'.DocumentManager::build_document_icon_tag($id['filetype'],$id['path']).'</a>'; |
||||
//document title with hyperlink |
||||
$row[] = '<a href="#" onclick="javascript: OpenFile(\''.$http_www.'/'.$id['title'].'\', \''.$sType.'\');return false;">'.$id['title'].'</a>'; |
||||
//comments => display comment under the document name |
||||
//$row[] = $invisibility_span_open.nl2br(htmlspecialchars($id['comment'])).$invisibility_span_close; |
||||
$display_size = format_file_size($size); |
||||
$row[] = '<span style="display:none;">'.$size.'</span>'.$invisibility_span_open.$display_size.$invisibility_span_close; |
||||
//last edit date |
||||
$display_date = format_date(strtotime($id['lastedit_date'])); |
||||
$row[] = '<span style="display:none;">'.$id['lastedit_date'].'</span>'.$invisibility_span_open.$display_date.$invisibility_span_close; |
||||
|
||||
$sortable_data[] = $row; |
||||
} |
||||
} else { |
||||
$sortable_data = array(); |
||||
//$table_footer='<div style="text-align:center;"><strong>'.get_lang('NoDocsInFolder').'</strong></div>'; |
||||
} |
||||
|
||||
$table = new SortableTableFromArray($sortable_data, 4, 10); |
||||
$query_vars['curdirpath'] = $curdirpath; |
||||
if (isset($_SESSION['_gid'])) { |
||||
$query_vars['gidReq'] = $_SESSION['_gid']; |
||||
} |
||||
$table->set_additional_parameters($query_vars); |
||||
$column = 0; |
||||
/* |
||||
if ($is_allowed_to_edit AND count($docs_and_folders) > 1) { |
||||
$table->set_header($column++, '', false); |
||||
} |
||||
*/ |
||||
|
||||
$table->set_header($column++, api_htmlentities(get_lang('Type'), ENT_QUOTES)); |
||||
$table->set_header($column++, api_htmlentities(get_lang('Title'), ENT_QUOTES)); |
||||
|
||||
//$column_header[] = array(get_lang('Comment'),true); => display comment under the document name |
||||
$table->set_header($column++, api_htmlentities(get_lang('Size'), ENT_QUOTES)); |
||||
$table->set_header($column++, api_htmlentities(get_lang('Date'), ENT_QUOTES)); |
||||
|
||||
//currently only delete action -> take only DELETE right into account |
||||
/* |
||||
if (count($docs_and_folders) > 1) { |
||||
if ($is_allowed_to_edit) { |
||||
$form_actions = array(); |
||||
$form_action['delete'] = get_lang('Delete'); |
||||
$table->set_form_actions($form_action, 'path'); |
||||
} |
||||
} |
||||
*/ |
||||
|
||||
echo api_utf8_encode($table->get_table_html()); |
||||
echo api_utf8_encode($table_footer); |
||||
|
||||
// Functions |
||||
|
||||
?> |
||||
<script type="text/javascript"> |
||||
<!-- |
||||
function OpenFile( fileUrl, type ) |
||||
{ |
||||
if (type=="audio") |
||||
{ |
||||
ret = confirm('<?php echo api_utf8_encode(get_lang('AutostartMp3')); ?>');
|
||||
if (ret) |
||||
{ |
||||
GetE('autostart').checked = true; |
||||
} |
||||
else |
||||
{ |
||||
GetE('autostart').checked = false; |
||||
} |
||||
} |
||||
SetUrl( fileUrl ) ; |
||||
//window.close() ; |
||||
} |
||||
//--> |
||||
</script> |
@ -1,67 +0,0 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
/** |
||||
* @package chamilo.include |
||||
*/ |
||||
/** |
||||
* Code |
||||
*/ |
||||
function getlist ($directory) { |
||||
//global $delim, $win; |
||||
if ($d = @opendir($directory)) { |
||||
|
||||
while (($filename = @readdir($d)) !== false) { |
||||
|
||||
$path = $directory . $filename; |
||||
|
||||
if ($filename != '.' && $filename != '..' && $filename != '.svn') |
||||
{ |
||||
$file = array( |
||||
"lastedit_date" =>date("Y-m-d H:i:s",9876),//date ("Y-m-d H:i:s", filemtime($path)), |
||||
"visibility" => 1, |
||||
"path" => $path, |
||||
"title" => basename($path), |
||||
"filetype" => filetype($path), |
||||
"size" => filesize ($path) |
||||
); |
||||
|
||||
$files[] = $file; |
||||
} |
||||
} |
||||
|
||||
return $files; |
||||
} |
||||
else |
||||
{ |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
function check_and_create_resource_directory($repository_path, $resource_directory, $resource_directory_name) |
||||
{ |
||||
global $permissions_for_new_directories; |
||||
|
||||
$resource_directory_full_path = substr($repository_path, 0, strlen($repository_path) - 1) . $resource_directory . '/'; |
||||
|
||||
if (!is_dir($resource_directory_full_path)) |
||||
{ |
||||
if (@mkdir($resource_directory_full_path, $permissions_for_new_directories)) |
||||
{ |
||||
// While we are in a course: Registering the newly created folder in the course's database. |
||||
if (api_is_in_course()) |
||||
{ |
||||
global $_course, $_user; |
||||
global $group_properties, $to_group_id; |
||||
$group_directory = !empty($group_properties['directory']) ? $group_properties['directory'] : ''; |
||||
|
||||
$doc_id = add_document($_course, $group_directory.$resource_directory, 'folder', 0, $resource_directory_name); |
||||
api_item_property_update($_course, TOOL_DOCUMENT, $doc_id, 'FolderCreated', $_user['user_id'], $to_group_id); |
||||
} |
||||
return true; |
||||
} |
||||
return false; |
||||
} |
||||
return true; |
||||
} |
||||
|
||||
?> |
Loading…
Reference in new issue