diff --git a/main/document/document.inc.php b/main/document/document.inc.php index 0d0bec931c..753a5a58cf 100755 --- a/main/document/document.inc.php +++ b/main/document/document.inc.php @@ -349,15 +349,17 @@ function build_edit_icons($document_data, $id, $is_template, $is_read_only = 0, } else { $req_gid = ''; } - $document_id = $document_data['id']; + $document_id = $document_data['id']; - - $type = $document_data['filetype']; - $path = $document_data['path']; - $parent_id = DocumentManager::get_document_id(api_get_course_info(), dirname($path)); - $visibility= $document_data['visibility']; - $is_read_only= $document_data['readonly']; - $curdirpath = dirname($document_data['path']); + $type = $document_data['filetype']; + $visibility = $document_data['visibility']; + $is_read_only = $document_data['readonly']; + $path = $document_data['path']; + $parent_id = DocumentManager::get_document_id(api_get_course_info(), dirname($path)); + $curdirpath = dirname($document_data['path']); + $is_certificate_mode = DocumentManager::is_certificate_mode($path); + $curdirpath = urlencode($curdirpath); + $extension = pathinfo($path, PATHINFO_EXTENSION); // Build URL-parameters for table-sorting $sort_params = array(); @@ -374,59 +376,98 @@ function build_edit_icons($document_data, $id, $is_template, $is_read_only = 0, $sort_params[] = 'direction='.Security::remove_XSS($_GET['direction']); } $sort_params = implode('&', $sort_params); - $visibility_icon = ($visibility == 0) ? 'invisible' : 'visible'; + $visibility_icon = ($visibility == 0) ? 'invisible' : 'visible'; $visibility_command = ($visibility == 0) ? 'set_visible' : 'set_invisible'; - $curdirpath = urlencode($curdirpath); - - $is_certificate_mode = DocumentManager::is_certificate_mode($path); - $modify_icons = ''; - $cur_ses = api_get_session_id(); - $extension = pathinfo($path, PATHINFO_EXTENSION); + + $modify_icons = ''; + // If document is read only *or* we're in a session and the document // is from a non-session context, hide the edition capabilities - if ($is_read_only /*or ($session_id!=$cur_ses)*/) { - $modify_icons = Display::return_icon('edit_na.png', get_lang('Modify'),'',22); - $modify_icons .= ' '.Display::return_icon('delete_na.png', get_lang('Delete'),array(), 22); - $modify_icons .= ' '.Display::return_icon('move.png', get_lang('Move'),array(), 22); - if (api_is_allowed_to_edit() || api_is_platform_admin()){ + if ($is_read_only /*or ($session_id!=api_get_session_id())*/) { + if (api_is_course_admin() || api_is_platform_admin()) { + if($extension=='svg' && api_browser_support('svg') && api_get_setting('enabled_support_svg') == 'true') { + $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; + } elseif($extension=='png' || $extension=='jpg' || $extension=='jpeg' || $extension=='bmp' || $extension=='gif' ||$extension=='pxd' && api_get_setting('enabled_support_pixlr') == 'true'){ + $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; + } else { + $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; + } + } else { + $modify_icons = Display::return_icon('edit_na.png', get_lang('Modify'),'',22); + } + $modify_icons .= ' '.Display::return_icon('move_na.png', get_lang('Move'),array(), 22); + if (api_is_allowed_to_edit() || api_is_platform_admin()) { $modify_icons .= ' '.Display::return_icon($visibility_icon.'.png', get_lang('VisibilityCannotBeChanged'),'',22); } + $modify_icons .= ' '.Display::return_icon('delete_na.png', get_lang('Delete'),array(), 22); } else { + if ($is_certificate_mode) { //$modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; - $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; - + $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; } else { - if($extension=='svg' && api_browser_support('svg') && api_get_setting('enabled_support_svg') == 'true'){ - $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; - } elseif($extension=='png' || $extension=='jpg' || $extension=='jpeg' || $extension=='bmp' || $extension=='gif' ||$extension=='pxd' && api_get_setting('enabled_support_pixlr') == 'true'){ - $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; + if (api_get_session_id()) { + if ($document_data['session_id'] == api_get_session_id()) { + if ($extension=='svg' && api_browser_support('svg') && api_get_setting('enabled_support_svg') == 'true') { + $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; + } elseif($extension=='png' || $extension=='jpg' || $extension=='jpeg' || $extension=='bmp' || $extension=='gif' ||$extension=='pxd' && api_get_setting('enabled_support_pixlr') == 'true'){ + $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; + } else { + $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; + } + } else { + $modify_icons .= ' '.Display::return_icon('edit_na.png', get_lang('Edit'),array(), 22).''; + + } } else { - $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; + if($extension=='svg' && api_browser_support('svg') && api_get_setting('enabled_support_svg') == 'true') { + $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; + } elseif($extension=='png' || $extension=='jpg' || $extension=='jpeg' || $extension=='bmp' || $extension=='gif' ||$extension=='pxd' && api_get_setting('enabled_support_pixlr') == 'true'){ + $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; + } else { + $modify_icons = ''.Display::return_icon('edit.png', get_lang('Modify'),'',22).''; + } } } - if ($is_certificate_mode) { - $modify_icons .= ' '.Display::return_icon('move.png', get_lang('Move'),array(), 22).''; - $modify_icons .= ' '. - Display::return_icon($visibility_icon.'.png', get_lang('Move'),array(), 22).''; + //$modify_icons .= ' '.Display::return_icon('move.png', get_lang('Move'),array(), 22).''; + $modify_icons .= ' '.Display::return_icon('move_na.png', get_lang('Move'),array(), 22).''; + $modify_icons .= ' '.Display::return_icon($visibility_icon.'.png', get_lang('Move'),array(), 22).''; + + //$modify_icons .= ' '. + Display::return_icon($visibility_icon.'.png', get_lang('VisibilityCannotBeChanged'),array(), 22).''; } else { - $modify_icons .= ' '.Display::return_icon('move.png', get_lang('Move'),array(), 22).''; - if(api_is_allowed_to_edit() || api_is_platform_admin()){ - $modify_icons .= ' '.Display::return_icon($visibility_icon.'.png', get_lang('VisibilityCannotBeChanged'),'',22).''; + if (api_get_session_id()) { + if ($document_data['session_id'] == api_get_session_id()) { + $modify_icons .= ' '.Display::return_icon('move.png', get_lang('Move'),array(), 22).''; + } else { + $modify_icons .= ' '.Display::return_icon('move_na.png', get_lang('Move'),array(), 22).''; + } + } else { + $modify_icons .= ' '.Display::return_icon('move.png', get_lang('Move'),array(), 22).''; + } + if (api_is_allowed_to_edit() || api_is_platform_admin()) { + $modify_icons .= ' '.Display::return_icon($visibility_icon.'.png', get_lang('ChangeVisibility'),'',22).''; } } if (in_array($path, array('/audio', '/flash', '/images', '/shared_folder', '/video', '/chat_files', '/certificates'))) { $modify_icons .= ' '.Display::return_icon('delete_na.png', get_lang('ThisFolderCannotBeDeleted'),array(), 22); } else { - - if (isset($_GET['curdirpath']) && $_GET['curdirpath']=='/certificates' && DocumentManager::get_default_certificate_id(api_get_course_id())==$id) { + if (isset($_GET['curdirpath']) && $_GET['curdirpath']=='/certificates' && DocumentManager::get_default_certificate_id(api_get_course_id())==$id) { $modify_icons .= ' '.Display::return_icon('delete.png', get_lang('Delete'),array(), 22).''; } else { if ($is_certificate_mode) { $modify_icons .= ' '.Display::return_icon('delete.png', get_lang('Delete'),array(), 22).''; } else { - $modify_icons .= ' '.Display::return_icon('delete.png', get_lang('Delete'),array(), 22).''; + if (api_get_session_id()) { + if ($document_data['session_id'] == api_get_session_id()) { + $modify_icons .= ' '.Display::return_icon('delete.png', get_lang('Delete'),array(), 22).''; + } else { + $modify_icons .= ' '.Display::return_icon('delete_na.png', get_lang('ThisFolderCannotBeDeleted'),array(), 22); + } + } else { + $modify_icons .= ' '.Display::return_icon('delete.png', get_lang('Delete'),array(), 22).''; + } } } } @@ -676,13 +717,11 @@ function is_my_shared_folder($user_id, $path, $current_session_id) { $main_user_shared_folder = '/shared_folder\/sf_user_'.$user_id.'\//';//for security does not remove the last slash $main_user_shared_folder_session='/shared_folder_session_'.$current_session_id.'\/sf_user_'.$user_id.'\//';//for security does not remove the last slash - if(preg_match($main_user_shared_folder, $clean_path)){ + if (preg_match($main_user_shared_folder, $clean_path)){ return true; - } - elseif(preg_match($main_user_shared_folder_session, $clean_path)){ + } elseif(preg_match($main_user_shared_folder_session, $clean_path)) { return true; - } - else{ + } else { return false; } } @@ -720,6 +759,4 @@ function is_browser_viewable($file_extension) { return api_browser_support('svg'); } return $result; -} - -?> +} \ No newline at end of file diff --git a/main/document/document.php b/main/document/document.php index 8cc4e3f730..cdb6fa5718 100755 --- a/main/document/document.php +++ b/main/document/document.php @@ -69,7 +69,11 @@ DocumentManager::create_directory_certificate_in_course($course_id); //Hack in order to use document.php?id=X if (isset($_GET['id'])) { - $document_data = DocumentManager::get_document_data_by_id($_GET['id'], api_get_course_id()); + $document_data = DocumentManager::get_document_data_by_id($_GET['id'], api_get_course_id()); + $parent_id = DocumentManager::get_document_id(api_get_course_info(), dirname($document_data['path'])); + if (!$parent_id) { + $parent_id = 0; + } //@todo replace all $_GET['curdirpath'] = $document_data['path']; } @@ -208,7 +212,8 @@ require_once $lib_path.'fileUpload.lib.php'; // Check the path // If the path is not found (no document id), set the path to / -if (!DocumentManager::get_document_id($_course, $curdirpath)) { +$document_id = DocumentManager::get_document_id($_course, $curdirpath); +if (!$document_id) { $curdirpath = '/'; // Urlencoded version $curdirpathurl = '%2F'; @@ -218,7 +223,7 @@ if ($to_group_id != 0 && $curdirpath == '/') { $curdirpath = $group_properties['directory']; $curdirpathurl = urlencode($group_properties['directory']); } - +$current_folder_id = $document_id; // Check visibility of the current dir path. Don't show anything if not allowed //@todo check this validation for coaches @@ -231,13 +236,12 @@ if (!$is_allowed_to_edit && api_is_coach()) { } /* Constants and variables */ - $current_session_id = api_get_session_id(); /* Create shared folders */ -if($current_session_id==0){ +if ($current_session_id==0) { //Create shared folder. Necessary for courses recycled. Allways session_id should be zero. Allway should be created from a base course, never from a session. if (!file_exists($base_work_dir.'/shared_folder')) { $usf_dir_title = get_lang('UserFolders'); @@ -314,9 +318,7 @@ if (isset($_GET['action']) && $_GET['action'] == 'download') { // Download a folder if (isset($_GET['action']) && $_GET['action'] == 'downloadfolder' && (api_get_setting('students_download_folders') == 'true' || api_is_allowed_to_edit() || api_is_platform_admin())) { - //filter when I am into shared folder, I can donwload only my shared folder - if(is_any_user_shared_folder($_GET['path'],$current_session_id)){ if(is_my_shared_folder(api_get_user_id(), $_GET['path'], $current_session_id) || api_is_allowed_to_edit() || api_is_platform_admin()){ require 'downloadfolder.inc.php'; @@ -752,12 +754,10 @@ if (isset($_GET['curdirpath']) && $_GET['curdirpath'] == '/certificates' && isse /* GET ALL DOCUMENT DATA FOR CURDIRPATH */ if(isset($_GET['keyword']) && !empty($_GET['keyword'])) { - $docs_and_folders = DocumentManager::get_all_document_data($_course, $curdirpath, $to_group_id, null, $is_allowed_to_edit || $group_member_with_upload_rights, $search=true); - -}else{ + $docs_and_folders = DocumentManager::get_all_document_data($_course, $curdirpath, $to_group_id, null, $is_allowed_to_edit || $group_member_with_upload_rights, $search=true); +} else { $docs_and_folders = DocumentManager::get_all_document_data($_course, $curdirpath, $to_group_id, null, $is_allowed_to_edit || $group_member_with_upload_rights, $search=false); } - $folders = DocumentManager::get_all_document_folders($_course, $to_group_id, $is_allowed_to_edit || $group_member_with_upload_rights); if ($folders === false) { $folders = array(); @@ -775,13 +775,12 @@ if ($is_allowed_to_edit || $group_member_with_upload_rights){ $form->display(); echo ''; } -/* GO TO PARENT DIRECTORY */ +/* GO TO PARENT DIRECTORY */ if ($curdirpath!= '/' && $curdirpath != $group_properties['directory'] && !$is_certificate_mode) { -?> - - -'; + echo Display::display_icon('folder_up.png', get_lang('Up'),'','32'); + echo ''; } if ($is_certificate_mode && $curdirpath != '/certificates') { @@ -792,7 +791,6 @@ if ($is_certificate_mode && $curdirpath != '/certificates') { } if (isset($docs_and_folders) && is_array($docs_and_folders)) { - //echo('
');
//print_r($docs_and_folders);
//echo('');
@@ -804,43 +802,43 @@ if (isset($docs_and_folders) && is_array($docs_and_folders)) {
$sortable_data = array();
//while (list($key, $id) = each($docs_and_folders)) {
- foreach ($docs_and_folders as $key=>$id) {
+ foreach ($docs_and_folders as $key => $document_data) {
$row = array();
// If the item is invisible, wrap it in a span with class invisible
- $invisibility_span_open = ($id['visibility'] == 0) ? '' : '';
- $invisibility_span_close = ($id['visibility'] == 0) ? '' : '';
+ $invisibility_span_open = ($document_data['visibility'] == 0) ? '' : '';
+ $invisibility_span_close = ($document_data['visibility'] == 0) ? '' : '';
// Size (or total size of a directory)
- $size = $id['filetype'] == 'folder' ? get_total_folder_size($id['path'], $is_allowed_to_edit) : $id['size'];
+ $size = $document_data['filetype'] == 'folder' ? get_total_folder_size($document_data['path'], $is_allowed_to_edit) : $document_data['size'];
// Get the title or the basename depending on what we're using
- if ($use_document_title == 'true' && $id['title'] != '') {
- $document_name = $id['title'];
+ if ($use_document_title == 'true' && $document_data['title'] != '') {
+ $document_name = $document_data['title'];
} else {
- $document_name = basename($id['path']);
+ $document_name = basename($document_data['path']);
}
// Data for checkbox
if (($is_allowed_to_edit || $group_member_with_upload_rights) && count($docs_and_folders) > 1) {
- $row[] = $id['path'];
+ $row[] = $document_data['path'];
}
// Hide HotPotatoes Certificates and all css folders
- if ($id['path']=='/HotPotatoes_files' || $id['path']=='/certificates' || basename($id['path'])=='css'){
+ if ($document_data['path']=='/HotPotatoes_files' || $document_data['path']=='/certificates' || basename($document_data['path'])=='css'){
continue;
}
//Admin setting for Hide/Show the folders of all users
- if (api_get_setting('show_users_folders') == 'false' && ($id['path']=='/shared_folder' || strstr($id['path'], 'shared_folder_session_'))){
+ if (api_get_setting('show_users_folders') == 'false' && ($document_data['path']=='/shared_folder' || strstr($document_data['path'], 'shared_folder_session_'))){
continue;
}
//Admin setting for Hide/Show Default folders to all users
- if (api_get_setting('show_default_folders') == 'false' && ($id['path']=='/images' || $id['path']=='/flash' || $id['path']=='/audio' || $id['path']=='/video')){
+ if (api_get_setting('show_default_folders') == 'false' && ($document_data['path']=='/images' || $document_data['path']=='/flash' || $document_data['path']=='/audio' || $document_data['path']=='/video')){
continue;
}
//Admin setting for Hide/Show chat history folder
- if (api_get_setting('show_chat_folder') == 'false' && $id['path']=='/chat_files'){
+ if (api_get_setting('show_chat_folder') == 'false' && $document_data['path']=='/chat_files'){
continue;
}
@@ -848,42 +846,40 @@ if (isset($docs_and_folders) && is_array($docs_and_folders)) {
$user_link = '';
if (isset($_SESSION['_gid']) && $_SESSION['_gid'] != '') {
- if (!empty($id['insert_user_id'])) {
- $user_info = UserManager::get_user_info_by_id($id['insert_user_id']);
+ if (!empty($document_data['insert_user_id'])) {
+ $user_info = UserManager::get_user_info_by_id($document_data['insert_user_id']);
$user_name = api_get_person_name($user_info['firstname'], $user_info['lastname']);
- $user_link = '';
+ //var_dump($xapian_data); echo '';
$ic_slide->xapian_data = serialize($xapian_data);
$di = new DokeosIndexer();
@@ -1950,7 +1948,7 @@ class DocumentManager {
$di->addChunk($ic_slide);
// Index and return a new search engine document id
$did = $di->index();
- var_dump($did);
+ //var_dump($did);
if ($did) {
// update the search_did on db
$tbl_se_ref = Database::get_main_table(TABLE_MAIN_SEARCH_ENGINE_REF);
@@ -1994,12 +1992,12 @@ class DocumentManager {
}
}
- // Check for missing images in html files
+ /*// Check for missing images in html files
$missing_files = check_for_missing_files($base_work_dir.$new_path);
if ($missing_files && $show_output) {
// Show a form to upload the missing files
Display::display_normal_message(build_missing_files_form($missing_files, $path, $files['file']['name']), false);
- }
+ }*/
if (!empty($docid) && is_numeric($docid)) {
$document_data = self::get_document_data_by_id($docid, $course_info['code']);
@@ -2041,7 +2039,6 @@ class DocumentManager {
break;
case 'application/msword':
exec("catdoc $doc_path", $output, $ret_val);
- //var_dump($output);
break;
case 'text/html':
exec("html2text $doc_path", $output, $ret_val);
diff --git a/main/inc/lib/fileUpload.lib.php b/main/inc/lib/fileUpload.lib.php
index 6b3a489316..e708a255bc 100755
--- a/main/inc/lib/fileUpload.lib.php
+++ b/main/inc/lib/fileUpload.lib.php
@@ -813,7 +813,7 @@ function add_document($_course, $path, $filetype, $filesize, $title, $comment =
*/
function update_existing_document($_course, $document_id, $filesize, $readonly = 0) {
$document_table = Database::get_course_table(TABLE_DOCUMENT, $_course['dbName']);
- $sql = "UPDATE $document_table SET size = '$filesize' , readonly = '$readonly' WHERE id='$document_id'";
+ $sql = "UPDATE $document_table SET size = '$filesize' , readonly = '$readonly' WHERE id = $document_id";
if (Database::query($sql)) {
return true;
} else {
@@ -1355,26 +1355,28 @@ function check_for_missing_files($file) {
function build_missing_files_form($missing_files, $upload_path, $file_name) {
// Do we need a / or not?
$added_slash = ($upload_path == '/') ? '' : '/';
+ $folder_id = DocumentManager::get_document_id(api_get_course_info(), $upload_path);
// Build the form
- $form .= "".get_lang('MissingImagesDetected')."
\n"
- ."\n";
+ ."";
return $form;
}
diff --git a/main/upload/upload.document.php b/main/upload/upload.document.php
index 35b796af90..27beffd2b9 100755
--- a/main/upload/upload.document.php
+++ b/main/upload/upload.document.php
@@ -98,9 +98,8 @@ if(isset($_FILES['user_upload']))
}
}
//missing images are submitted
-if(isset($_POST['submit_image']))
-{
- $number_of_uploaded_images = count($_FILES['img_file']['name']);
+if(isset($_POST['submit_image'])) {
+ $number_of_uploaded_images = count($_FILES['img_file']['name']);
//if images are uploaded
if ($number_of_uploaded_images > 0)
{