fix for various bugs: Bug #1718, Bug #1719 Bug #1720 Bug #1721 and related Bug #1463

skala
Juan Carlos Raña 16 years ago
parent 8230dbcd25
commit 97d1880ff2
  1. 89
      main/document/document.inc.php
  2. 88
      main/document/document.php
  3. 8
      main/document/downloadfolder.inc.php
  4. 4
      main/document/upload.php
  5. 22
      main/inc/lib/fckeditor/editor/filemanager/connectors/php/commands.php
  6. 12
      main/inc/lib/fckeditor/editor/filemanager/connectors/php/config.php
  7. 15
      main/inc/lib/fckeditor/editor/plugins/ImageManager/config.inc.php
  8. 10
      main/inc/lib/fckeditor/editor/plugins/ajaxfilemanager/ajax_file_upload.php
  9. 10
      main/inc/lib/fckeditor/editor/plugins/ajaxfilemanager/inc/config.base.php
  10. 17
      main/inc/lib/fckeditor/fckeditor.php
  11. 64
      main/inc/lib/fckeditor/repository.php

@ -55,13 +55,6 @@ function build_directory_selector($folders, $curdirpath, $group_dir = '', $chang
foreach ($folders as & $folder) {
$selected = ($curdirpath == $folder) ? ' selected="selected"' : '';
$path_parts = explode('/', $folder);
if ($folder_titles[$folder] == 'shared_folder') {
$folder_titles[$folder] = get_lang('SharedFolder');
} elseif (strstr($folder_titles[$folder], 'sf_user_')) {
$userinfo = Database::get_user_info_from_id(substr($folder_titles[$folder], 8));
$folder_titles[$folder] = api_get_person_name($userinfo['firstname'], $userinfo['lastname']);
}
$folder_titles[$folder] = cut($folder_titles[$folder], 80);
$label = str_repeat('   ', count($path_parts) - 2).' — '.$folder_titles[$folder];
$parent_select -> addOption($label, $folder);
@ -149,25 +142,26 @@ function create_document_link($www, $title, $path, $filetype, $size, $visibility
//$tooltip_title = str_replace('?cidReq='.$_GET['cidReq'], '', basename($path));
$tooltip_title = explode('?', basename($path));
$tooltip_title = $tooltip_title[0];
$tooltip_title_alt = $tooltip_title;
if ($tooltip_title == 'shared_folder') {
$tooltip_title_alt = get_lang('SharedFolder');
} elseif(strstr($tooltip_title, 'sf_user_')) {
}elseif(strstr($tooltip_title, 'shared_folder_session_')) {
$tooltip_title_alt = get_lang('SharedFolder').' ('.api_get_session_name($current_session_id).')';
}elseif(strstr($tooltip_title, 'sf_user_')) {
$userinfo = Database::get_user_info_from_id(substr($tooltip_title, 8));
$tooltip_title_alt = api_get_person_name($userinfo['firstname'], $userinfo['lastname']);
} else {
$tooltip_title_alt = $tooltip_title;
$tooltip_title_alt = get_lang('SharedFolder').' ('.api_get_person_name($userinfo['firstname'], $userinfo['lastname']).')';
}
if (!$show_as_icon) {
if ($filetype == 'folder') {
if (api_is_allowed_to_edit() || api_is_platform_admin() || api_get_setting('students_download_folders') == 'true') {
//filter when I am into shared folder, I can show for donwload only my shared folder
if(is_shared_folder($_GET['curdirpath']))
{
$my_preg_folder="/shared_folder\/sf_user_".api_get_user_id()."$/";
if (preg_match($my_preg_folder, urldecode($forcedownload_link))|| api_is_allowed_to_edit() || api_is_platform_admin())
$current_session_id=api_get_session_id();
if(is_shared_folder($_GET['curdirpath'],$current_session_id))
{
if (preg_match('/shared_folder\/sf_user_'.api_get_user_id().'$/', urldecode($forcedownload_link))|| preg_match('/shared_folder_session_'.$current_session_id.'\/sf_user_'.api_get_user_id().'$/', urldecode($forcedownload_link)) || api_is_allowed_to_edit() || api_is_platform_admin())
{
$force_download_html = ($size == 0) ? '' : '<a href="'.$forcedownload_link.'" style="float:right"'.$prevent_multiple_click.'>'.Display::return_icon($forcedownload_icon, get_lang('Download'), array('height'=>'16', 'width' => '16')).'</a>';
}
@ -208,7 +202,14 @@ function build_document_icon_tag($type, $path) {
} else {
$basename = get_lang('SharedFolder');
}
} elseif(strstr($basename, 'sf_user_')) {
}elseif(strstr($basename, 'shared_folder_session_')) {
if ($is_allowed_to_edit) {
$basename = '***('.api_get_session_name($current_session_id).')*** '.get_lang('HelpSharedFolder');
} else {
$basename = get_lang('SharedFolder').' ('.api_get_session_name($current_session_id).')';
}
$icon = 'shared_folder.gif';
}elseif(strstr($basename, 'sf_user_')) {
$userinfo = Database::get_user_info_from_id(substr($basename, 8));
$image_path = UserManager::get_user_picture_path_by_id(substr($basename, 8), 'web', false, true);
@ -217,7 +218,9 @@ function build_document_icon_tag($type, $path) {
} else {
$icon = '../upload/users/'.substr($basename, 8).'/'.$image_path['file'];
}
$basename = api_get_person_name($userinfo['firstname'], $userinfo['lastname']);
$basename = get_lang('SharedFolder').' ('.api_get_person_name($userinfo['firstname'], $userinfo['lastname']).')';
} else {
if (($basename =='audio' || $basename =='flash' || $basename =='images' || $basename =='video') && api_is_allowed_to_edit()) {
$basename = get_lang('HelpDefaultDirDocuments');
@ -484,24 +487,52 @@ function create_dir_form() {
/**
* Checks whether the user is in shared folder
* @return return bool Return true when user is in shared folder
* @return return bool Return true when user is into shared folder
*/
function is_shared_folder($curdirpath) {
return Security::remove_XSS($curdirpath) == '/shared_folder';
function is_shared_folder($curdirpath, $current_session_id) {
$clean_curdirpath = Security::remove_XSS($curdirpath);
if($clean_curdirpath== '/shared_folder'){
return true;
}
elseif($clean_curdirpath== '/shared_folder_session_'.$current_session_id){
return true;
}
else{
return false;
}
}
/**
* Checks whether the user is in any user shared folder
* Checks whether the user is into any user shared folder
* @return return bool Return true when user is in any user shared folder
*/
function is_any_user_shared_folder($path) {
return preg_match('/shared_folder\/sf_user_/', Security::remove_XSS($path));
function is_any_user_shared_folder($path, $current_session_id) {
$clean_path = Security::remove_XSS($path);
if(strpos($clean_path,'shared_folder/sf_user_')){
return true;
}
elseif(strpos($clean_path, 'shared_folder_session_'.$current_session_id.'/sf_user_')){
return true;
}
else{
return false;
}
}
/**
* Checks whether the user is in his/her shared folder
* Checks whether the user is into his shared folder
* @return return bool Return true when user is in his user shared folder
*/
function is_my_shared_folder($user_id, $path) {
return Security::remove_XSS($path) == '/shared_folder/sf_user_'.$user_id;
}
function is_my_shared_folder($user_id, $path, $current_session_id) {
$clean_path = Security::remove_XSS($path);
if($clean_path == '/shared_folder/sf_user_'.$user_id){
return true;
}
elseif($clean_path == '/shared_folder_session_'.$current_session_id.'/sf_user_'.$user_id){
return true;
}
else{
return false;
}
}
?>

@ -222,24 +222,46 @@ $course_quota = DocumentManager::get_course_quota();
$current_session_id = api_get_session_id();
/* Create shared folder */
/* Create shared folders */
if (!file_exists($base_work_dir.'/shared_folder')) {
$usf_dir_title = get_lang('SharedFolder');
$usf_dir_name = '/shared_folder';
$to_group_id = 0;
$visibility = 0;
create_unexisting_directory($_course, $_user['user_id'], $to_group_id, $to_user_id, $base_work_dir, $usf_dir_name, $usf_dir_title, $visibility);
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('SharedFolder');
$usf_dir_name = '/shared_folder';
$to_group_id = 0;
$visibility = 0;
create_unexisting_directory($_course, $_user['user_id'], $to_group_id, $to_user_id, $base_work_dir, $usf_dir_name, $usf_dir_title, $visibility);
}
// Create dynamic user shared folder
if (!file_exists($base_work_dir.'/shared_folder/sf_user_'.api_get_user_id())) {
$usf_dir_title = api_get_person_name($_user['firstName'], $_user['lastName']);
$usf_dir_name = '/shared_folder/sf_user_'.api_get_user_id();
$to_group_id = 0;
$visibility = 1;
create_unexisting_directory($_course, $_user['user_id'], $to_group_id, $to_user_id, $base_work_dir, $usf_dir_name, $usf_dir_title, $visibility);
}
}
if (!file_exists($base_work_dir.'/shared_folder/sf_user_'.api_get_user_id())) {
$usf_dir_title = api_get_person_name($_user['firstName'], $_user['lastName']);
$usf_dir_name = '/shared_folder/sf_user_'.api_get_user_id();
$to_group_id = 0;
$visibility = 0;
create_unexisting_directory($_course, $_user['user_id'], $to_group_id, $to_user_id, $base_work_dir, $usf_dir_name, $usf_dir_title, $visibility);
else{
//Create shared folder session
if (!file_exists($base_work_dir.'/shared_folder_session_'.$current_session_id)) {
$usf_dir_title = get_lang('SharedFolder').' ('.api_get_session_name($current_session_id).')';
$usf_dir_name = '/shared_folder_session_'.$current_session_id;
$to_group_id = 0;
$visibility = 0;
create_unexisting_directory($_course, $_user['user_id'], $to_group_id, $to_user_id, $base_work_dir, $usf_dir_name, $usf_dir_title, $visibility);
}
//Create dynamic user shared folder into a shared folder session
if (!file_exists($base_work_dir.'/shared_folder_session_'.$current_session_id.'/sf_user_'.api_get_user_id())) {
$usf_dir_title = api_get_person_name($_user['firstName'], $_user['lastName']).' ('.api_get_session_name($current_session_id).')';
$usf_dir_name = '/shared_folder_session_'.$current_session_id.'/sf_user_'.api_get_user_id();
$to_group_id = 0;
$visibility = 1;
create_unexisting_directory($_course, $_user['user_id'], $to_group_id, $to_user_id, $base_work_dir, $usf_dir_name, $usf_dir_title, $visibility);
}
}
/* MAIN SECTION */
if (isset($_GET['action']) && $_GET['action'] == 'download') {
@ -277,13 +299,13 @@ if (isset($_GET['action']) && $_GET['action'] == 'download') {
// Download a folder
if (isset($_GET['action']) && $_GET['action'] == 'downloadfolder' && $curdirpath!='/' && (api_get_setting('students_download_folders') == 'true' || api_is_allowed_to_edit() || api_is_platform_admin())) {
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']))
if(is_any_user_shared_folder($_GET['path'],$current_session_id))
{
if(is_my_shared_folder($_user['user_id'], $_GET['path']) || api_is_allowed_to_edit() || api_is_platform_admin())
if(is_my_shared_folder($_user['user_id'], $_GET['path'], $current_session_id) || api_is_allowed_to_edit() || api_is_platform_admin())
{
require 'downloadfolder.inc.php';
}
@ -323,12 +345,7 @@ if (!$is_certificate_mode) {
$dir_acum = '';
for ($i = 0; $i < $array_len; $i++) {
if ($dir_array[$i] == 'shared_folder') {
$dir_array[$i] = get_lang('SharedFolder');
} elseif (strpos($dir_array[$i], 'sf_user_') !== false) {
$userinfo = Database::get_user_info_from_id(substr($dir_array[$i], 8));
$dir_array[$i] = api_get_person_name($userinfo['firstname'], $userinfo['lastname']);
}
$url_dir = 'document.php?&curdirpath='.$dir_acum.$dir_array[$i];
@ -655,9 +672,11 @@ if ($is_certificate_mode && $curdirpath != '/certificates') {
}
if (isset($docs_and_folders) && is_array($docs_and_folders)) {
//echo('<pre>');
//print_r($docs_and_folders);
//echo('</pre>');
// Do we need the title field for the document name or not?
// We get the setting here, so we only have to do it once
$use_document_title = api_get_setting('use_document_title');
@ -676,15 +695,7 @@ if (isset($docs_and_folders) && is_array($docs_and_folders)) {
if ($use_document_title == 'true' && $id['title'] != '') {
$document_name = $id['title'];
} else {
$document_name = basename($id['path']);
// Juan Carlos Raña: Get firstname and lastname when folder is in shared_folder.
// TODO: Check if is also necessary (above else)
if (strstr($document_name, 'sf_user_')) {
$userinfo = Database::get_user_info_from_id(substr($document_name, 8));
$document_name = api_get_person_name($userinfo['firstname'], $userinfo['lastname']);
} elseif (strpos($document_name, 'shared_folder') !== false) {
$document_name = get_lang('SharedFolder');
}
$document_name = basename($id['path']);
}
// Data for checkbox
if (($is_allowed_to_edit || $group_member_with_upload_rights) && count($docs_and_folders) > 1) {
@ -746,13 +757,13 @@ if (isset($docs_and_folders) && is_array($docs_and_folders)) {
$column_show = array();
if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_folder($_user['user_id'], $curdirpath)) {
if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_folder($_user['user_id'], $curdirpath, $current_session_id)) {
// @TODO:check enable more options for shared folders
// TODO:check enable more options for shared folders
/* CREATE NEW DOCUMENT OR NEW DIRECTORY / GO TO UPLOAD / DOWNLOAD ZIPPED FOLDER */
// Create new document
if (!$is_certificate_mode && !is_my_shared_folder($_user['user_id'], $curdirpath)) {
if (!$is_certificate_mode && !is_my_shared_folder($_user['user_id'], $curdirpath, $current_session_id)) {
?>
<a href="create_document.php?<?php echo api_get_cidreq(); ?>&dir=<?php echo $curdirpathurl.$req_gid; ?>">
<?php Display::display_icon('filenew.gif', get_lang('CreateDoc')); echo get_lang('CreateDoc'); ?></a>&nbsp;
@ -775,7 +786,7 @@ if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_fold
<?php
// Create directory
if (!$is_certificate_mode && !is_my_shared_folder($_user['user_id'], $curdirpath)) {
if (!$is_certificate_mode && !is_my_shared_folder($_user['user_id'], $curdirpath, $current_session_id)) {
?>
<a href="<?php echo api_get_self(); ?>?<?php echo api_get_cidreq(); ?>&curdirpath=<?php echo $curdirpathurl.$req_gid; ?>&amp;createdir=1">
<?php Display::display_icon('folder_new.gif', get_lang('CreateDir')); echo get_lang('CreateDir'); ?></a>&nbsp;
@ -792,7 +803,7 @@ if (!is_null($docs_and_folders)) {
if (!$is_certificate_mode && $total_size != 0 && (api_get_setting('students_download_folders') == 'true' || api_is_allowed_to_edit() || api_is_platform_admin())) {
//don't show icon into shared folder, and don´t show into main path (root)
if (!is_shared_folder($curdirpath) && $curdirpath!='/' || api_is_allowed_to_edit() || api_is_platform_admin())
if (!is_shared_folder($curdirpath, $current_session_id) && $curdirpath!='/' || api_is_allowed_to_edit() || api_is_platform_admin())
{
echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&action=downloadfolder&path='.$curdirpathurl.'">'.Display::display_icon('zip_save.gif', get_lang('Save').' (ZIP)'). get_lang('Save').' (ZIP)</a>&nbsp';
}
@ -878,4 +889,5 @@ if (!empty($table_footer)) {
}
// Footer
Display::display_footer();
Display::display_footer()
?>

@ -21,6 +21,14 @@ if (($path != '/') && (!DocumentManager::get_document_id($_course, $path))) {
$path = '/';
}
//a student should not be able to download a root shared directory
if (($path == '/shared_folder' || $path=='/shared_folder_session_'.api_get_session_id()) && (!api_is_allowed_to_edit() || !api_is_platform_admin())){
echo '<div align="center">';
Display::display_error_message(get_lang('NotAllowedClickBack').'<br /><br /><a href="'.$_SERVER['HTTP_REFERER'].'">'.get_lang('BackToPreviousPage').'</a><br />', false);
echo '</div>';
exit;
}
//zip library for creation of the zipfile
include api_get_path(LIBRARY_PATH).'pclzip/pclzip.lib.php';

@ -198,7 +198,7 @@ if (isset($_SESSION['_gid']) && $_SESSION['_gid'] != '') { // If the group id is
} else {
api_not_allowed(true);
}
} elseif ($is_allowed_to_edit || is_my_shared_folder($_user['user_id'], $path)) { // Admin for "regular" upload, no group documents. And check if is my shared folder
} elseif ($is_allowed_to_edit || is_my_shared_folder($_user['user_id'], $path,api_get_session_id())) { // Admin for "regular" upload, no group documents. And check if is my shared folder
$to_group_id = 0;
$req_gid = '';
} else { // No course admin and no group member...
@ -488,7 +488,7 @@ if ($is_certificate_mode) {
}
// Link to create a folder
if (!isset($_GET['createdir']) && !is_my_shared_folder($_user['user_id'], $path) && !$is_certificate_mode) {
if (!isset($_GET['createdir']) && !is_my_shared_folder($_user['user_id'], $path, api_get_session_id()) && !$is_certificate_mode) {
echo '<a href="'.api_get_self().'?path='.$path.'&amp;createdir=1">'.Display::return_icon('folder_new.gif', get_lang('CreateDir')).get_lang('CreateDir').'</a>';
}
echo '</div>';

@ -33,11 +33,18 @@ function GetFolders( $resourceType, $currentFolder )
$oCurrentFolder = @opendir( $sServerDir ) ;
$in_group = api_is_in_group();
$in_shared_folder = $currentFolder == '/shared_folder/';
if($currentFolder=='/shared_folder/' || $currentFolder =='/shared_folder_session_'.api_get_session_id().'/')
{
$in_shared_folder=true;
}
else
{
$in_shared_folder=false;
}
$user_id = api_get_user_id();
if ($oCurrentFolder !== false)
{
{
while ( $sFile = readdir( $oCurrentFolder ) )
{
if ( $sFile != '.' && $sFile != '..'
@ -79,7 +86,16 @@ function GetFoldersAndFiles( $resourceType, $currentFolder )
$oCurrentFolder = @opendir( $sServerDir ) ;
$in_group = api_is_in_group();
$in_shared_folder = $currentFolder == '/shared_folder/';
if($currentFolder=='/shared_folder/' || $currentFolder =='/shared_folder_session_'.api_get_session_id().'/')
{
$in_shared_folder=true;
}
else
{
$in_shared_folder=false;
}
$user_id = api_get_user_id();
if ($oCurrentFolder !== false)

@ -49,8 +49,16 @@ if (api_is_in_course()) {
if (api_is_allowed_to_edit()) {
$Config['UserFilesPath'] = api_get_path(REL_COURSE_PATH).api_get_course_path().'/document/';
} else {
// 1.2. Student
$Config['UserFilesPath'] = api_get_path(REL_COURSE_PATH).api_get_course_path().'/document/shared_folder/sf_user_'.api_get_user_id().'/';
// 1.2. Student
$current_session_id = api_get_session_id();
if($current_session_id==0)
{
$Config['UserFilesPath'] = api_get_path(REL_COURSE_PATH).api_get_course_path().'/document/shared_folder/sf_user_'.api_get_user_id().'/';
}
else
{
$Config['UserFilesPath'] = api_get_path(REL_COURSE_PATH).api_get_course_path().'/document/shared_folder_session_'.$current_session_id.'/sf_user_'.api_get_user_id().'/';
}
}
} else {
// 2. Inside a course and inside a group.

@ -46,9 +46,18 @@ if (api_is_in_course())
}
else
{
// 1.2. Student
$IMConfig['base_dir'] = api_get_path(SYS_COURSE_PATH).api_get_course_path().'/document/shared_folder/sf_user_'.api_get_user_id().'/';
$IMConfig['base_url'] = api_get_path(WEB_COURSE_PATH).api_get_course_path().'/document/shared_folder/sf_user_'.api_get_user_id().'/';
// 1.2. Student
$current_session_id = api_get_session_id();
if($current_session_id==0)
{
$IMConfig['base_dir'] = api_get_path(SYS_COURSE_PATH).api_get_course_path().'/document/shared_folder/sf_user_'.api_get_user_id().'/';
$IMConfig['base_url'] = api_get_path(WEB_COURSE_PATH).api_get_course_path().'/document/shared_folder/sf_user_'.api_get_user_id().'/';
}
else
{
$IMConfig['base_dir'] = api_get_path(SYS_COURSE_PATH).api_get_course_path().'/document/shared_folder_session_'.$current_session_id.'/sf_user_'.api_get_user_id().'/';
$IMConfig['base_url'] = api_get_path(WEB_COURSE_PATH).api_get_course_path().'/document/shared_folder_session_'.$current_session_id.'/sf_user_'.api_get_user_id().'/';
}
}
}
else

@ -85,7 +85,15 @@
{
if(!api_is_allowed_to_edit())
{
$dokeosFolder='/shared_folder/sf_user_'.api_get_user_id().$dokeosFolder;
$current_session_id = api_get_session_id();
if($current_session_id==0)
{
$dokeosFolder='/shared_folder/sf_user_'.api_get_user_id().$dokeosFolder;
}
else
{
$dokeosFolder='/shared_folder_session_'.$current_session_id.'/sf_user_'.api_get_user_id().$dokeosFolder;
}
}
}

@ -101,7 +101,15 @@
}
else
{
$PathDokeosAjaxFileManager='../../../../../../../courses/'.$_course['path'].'/document/shared_folder/sf_user_'.api_get_user_id().'/';
$current_session_id = api_get_session_id();
if($current_session_id==0)
{
$PathDokeosAjaxFileManager='../../../../../../../courses/'.$_course['path'].'/document/shared_folder/sf_user_'.api_get_user_id().'/';
}
else
{
$PathDokeosAjaxFileManager='../../../../../../../courses/'.$_course['path'].'/document/shared_folder_session_'.$current_session_id.'/sf_user_'.api_get_user_id().'/';
}
}
}
}

@ -491,9 +491,20 @@ class FCKeditor
$config['BaseHref'] = $script_path;
} else {
// 1.2. Student
$config['CreateDocumentWebDir'] = api_get_path(WEB_COURSE_PATH).api_get_course_path().'/document/shared_folder/sf_user_'.api_get_user_id().'/';
$config['CreateDocumentDir'] = $relative_path_prefix.'courses/'.api_get_course_path().'/document/shared_folder/sf_user_'.api_get_user_id().'/';
$config['BaseHref'] = $script_path;
$current_session_id = api_get_session_id();
if($current_session_id==0)
{
$config['CreateDocumentWebDir'] = api_get_path(WEB_COURSE_PATH).api_get_course_path().'/document/shared_folder/sf_user_'.api_get_user_id().'/';
$config['CreateDocumentDir'] = $relative_path_prefix.'courses/'.api_get_course_path().'/document/shared_folder/sf_user_'.api_get_user_id().'/';
$config['BaseHref'] = $script_path;
}
else
{
$config['CreateDocumentWebDir'] = api_get_path(WEB_COURSE_PATH).api_get_course_path().'/document//shared_folder_session_'.$current_session_id.'/sf_user_'.api_get_user_id().'/';
$config['CreateDocumentDir'] = $relative_path_prefix.'courses/'.api_get_course_path().'/document/shared_folder_session_'.$current_session_id.'/sf_user_'.api_get_user_id().'/';
$config['BaseHref'] = $script_path;
}
}
} else {
// 2. Inside a course and inside a group.

@ -51,25 +51,49 @@ if (api_is_platform_admin()) {
@mkdir($homepage_folder, $permissions_for_new_directories);
}
}
$current_session_id = api_get_session_id();
// Creation in the course document repository of a shared folder if it does not exist.
if (api_is_in_course()) {
$course_shared_folder = api_get_path(SYS_PATH).'courses/'.$_course['path'].'/document/shared_folder/';
if (!file_exists($course_shared_folder)) {
@mkdir($course_shared_folder, $permissions_for_new_directories);
$doc_id = add_document($_course, '/shared_folder', 'folder', 0, 'shared_folder');
api_item_property_update($_course, TOOL_DOCUMENT, $doc_id, 'FolderCreated', api_get_user_id(),null,null,null,null,$current_session_id);
api_item_property_update($_course, TOOL_DOCUMENT, $doc_id, 'invisible', api_get_user_id(),null,null,null,null,$current_session_id);
}
// Added by Ivan Tcholakov.
// When the current user is inside a course, his/her own hidden folder is created (if it does not exist) under shared_folder.
if (!file_exists($course_shared_folder.'sf_user_'.api_get_user_id())) {
//@todo call the create_unexisting_directory function and replace this code Julio Montoya
$new_user_dir = api_get_path(SYS_PATH).'courses/'.$_course['path'].'/document/shared_folder/sf_user_'.api_get_user_id().'/';
@mkdir($new_user_dir, $permissions_for_new_directories);
$doc_id = add_document($_course, '/shared_folder/sf_user_'.api_get_user_id(), 'folder', 0, api_get_person_name($_user['firstName'], $_user['lastName']));
api_item_property_update($_course, TOOL_DOCUMENT, $doc_id, 'FolderCreated', api_get_user_id(),null,null,null,null,$current_session_id);
api_item_property_update($_course, TOOL_DOCUMENT, $doc_id, 'invisible', api_get_user_id(),null,null,null,null,$current_session_id);
// Create course shared folders
if (api_is_in_course()) {
$course_dir = $_course['path'].'/document';
$sys_course_path = api_get_path(SYS_COURSE_PATH);
$base_work_dir = $sys_course_path.$course_dir;
$current_session_id = api_get_session_id();
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('SharedFolder');
$usf_dir_name = '/shared_folder';
$to_group_id = 0;
$visibility = 0;
create_unexisting_directory($_course, $_user['user_id'], $to_group_id, $to_user_id, $base_work_dir, $usf_dir_name, $usf_dir_title, $visibility);
}
// Create dynamic user shared folder
if (!file_exists($base_work_dir.'/shared_folder/sf_user_'.api_get_user_id())) {
$usf_dir_title = api_get_person_name($_user['firstName'], $_user['lastName']);
$usf_dir_name = '/shared_folder/sf_user_'.api_get_user_id();
$to_group_id = 0;
$visibility = 1;
create_unexisting_directory($_course, $_user['user_id'], $to_group_id, $to_user_id, $base_work_dir, $usf_dir_name, $usf_dir_title, $visibility);
}
}
}
else{
//Create shared folder session
if (!file_exists($base_work_dir.'/shared_folder_session_'.$current_session_id)) {
$usf_dir_title = get_lang('SharedFolder').' ('.api_get_session_name($current_session_id).')';
$usf_dir_name = '/shared_folder_session_'.$current_session_id;
$to_group_id = 0;
$visibility = 0;
create_unexisting_directory($_course, $_user['user_id'], $to_group_id, $to_user_id, $base_work_dir, $usf_dir_name, $usf_dir_title, $visibility);
}
//Create dynamic user shared folder into a shared folder session
if (!file_exists($base_work_dir.'/shared_folder_session_'.$current_session_id.'/sf_user_'.api_get_user_id())) {
$usf_dir_title = api_get_person_name($_user['firstName'], $_user['lastName']).' ('.api_get_session_name($current_session_id).')';
$usf_dir_name = '/shared_folder_session_'.$current_session_id.'/sf_user_'.api_get_user_id();
$to_group_id = 0;
$visibility = 1;
create_unexisting_directory($_course, $_user['user_id'], $to_group_id, $to_user_id, $base_work_dir, $usf_dir_name, $usf_dir_title, $visibility);
}
}
}
Loading…
Cancel
Save