Accès interdit au gestionnaire de fichiers !"); $file = $g['profil'][$group][$profil]['file']; $folder = $g['profil'][$group][$profil]['folder']; // Chemin du dossier partagé dans le profil $sharedPathKey = ($courseId === 'home') ? 'homePath' : 'coursePath'; $sharedPath = isset($folder[$sharedPathKey]) ? $folder[$sharedPathKey] : ''; // Un dossier renvoie vers le dossier confiné $uploadDir = empty($sharedPath) ? '/site/file/source/' . $courseId . '/' : $sharedPath; $currentPath = '../../..' . $uploadDir . '/'; break; default: // Pas d'autorisation d'accès au gestionnaire de fichiers exit("

Accès interdit au gestionnaire de fichiers !

"); } } /* Fin lecture du groupe de l'utilisateur connecté pour attribuer les droits et les dossiers */ /* |-------------------------------------------------------------------------- | Optional security |-------------------------------------------------------------------------- | | if set to true only those will access RF whose url contains the access key(akey) like: | | in tinymce a new parameter added: filemanager_access_key:"myPrivateKey" | example tinymce config: | | tiny init ... | external_filemanager_path:"../filemanager/", | filemanager_title:"Filemanager" , | filemanager_access_key:"myPrivateKey" , | ... | */ define('USE_ACCESS_KEYS', true); // TRUE or FALSE $privateKey = md5_file('../../../site/data/core.json'); /* |-------------------------------------------------------------------------- | DON'T COPY THIS VARIABLES IN FOLDERS config.php FILES |-------------------------------------------------------------------------- */ define('DEBUG_ERROR_MESSAGE', false); // TRUE or FALSE /* |-------------------------------------------------------------------------- | Path configuration |-------------------------------------------------------------------------- | In this configuration the folder tree is | root | |- source <- upload folder | |- thumbs <- thumbnail folder [must have write permission (755)] | |- filemanager | |- js | | |- tinymce | | | |- plugins | | | | |- responsivefilemanager | | | | | |- plugin.min.js */ $config = array( /* |-------------------------------------------------------------------------- | DON'T TOUCH (base url (only domain) of site). |-------------------------------------------------------------------------- | | without final / (DON'T TOUCH) | */ 'base_url' => ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && !in_array(strtolower($_SERVER['HTTPS']), array('off', 'no'))) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . rtrim(str_replace('/core/vendor/filemanager', '', pathinfo($_SERVER['PHP_SELF'])['dirname']), ' /'), /* |-------------------------------------------------------------------------- | path from base_url to base of upload folder |-------------------------------------------------------------------------- | | with start and final / | */ 'upload_dir' => $uploadDir, /* |-------------------------------------------------------------------------- | relative path from filemanager folder to upload folder |-------------------------------------------------------------------------- | | with final / | */ 'current_path' => $currentPath, /* |-------------------------------------------------------------------------- | relative path from filemanager folder to thumbs folder |-------------------------------------------------------------------------- | | with final / | DO NOT put inside upload folder | */ 'thumbs_base_path' => '../../../site/file/thumb/', /* |-------------------------------------------------------------------------- | path from base_url to base of thumbs folder |-------------------------------------------------------------------------- | | with final / | DO NOT put inside upload folder | */ 'thumbs_upload_dir' => '/thumb/', /* |-------------------------------------------------------------------------- | mime file control to define files extensions |-------------------------------------------------------------------------- | | If you want to be forced to assign the extension starting from the mime type | */ 'mime_extension_rename' => false, /* |-------------------------------------------------------------------------- | FTP configuration BETA VERSION |-------------------------------------------------------------------------- | | If you want enable ftp use write these parametres otherwise leave empty | Remember to set base_url properly to point in the ftp server domain and | upload dir will be ftp_base_folder + upload_dir so without final / | */ 'ftp_host' => false, //put the FTP host 'ftp_user' => "user", 'ftp_pass' => "pass", 'ftp_base_folder' => "base_folder", 'ftp_base_url' => "http://site to ftp root", // Directory where place files before to send to FTP with final / 'ftp_temp_folder' => "../temp/", /* |--------------------------------------------------------------------------- | path from ftp_base_folder to base of thumbs folder with start and final / |--------------------------------------------------------------------------- */ 'ftp_thumbs_dir' => '/thumbs/', 'ftp_ssl' => false, 'ftp_port' => 21, /* EXAMPLE 'ftp_host' => "host.com", 'ftp_user' => "test@host.com", 'ftp_pass' => "pass.1", 'ftp_base_folder' => "", 'ftp_base_url' => "http://host.com/testFTP", */ /* |-------------------------------------------------------------------------- | Multiple files selection |-------------------------------------------------------------------------- | The user can delete multiple files, select all files , deselect all files */ 'multiple_selection' => true, /* | | The user can have a select button that pass a json to external input or pass the first file selected to editor | If you use responsivefilemanager tinymce extension can copy into editor multiple object like images, videos, audios, links in the same time | */ 'multiple_selection_action_button' => true, /* |-------------------------------------------------------------------------- | Access keys |-------------------------------------------------------------------------- | | add access keys eg: array('myPrivateKey', 'someoneElseKey'); | keys should only containt (a-z A-Z 0-9 \ . _ -) characters | if you are integrating lets say to a cms for admins, i recommend making keys randomized something like this: | $username = 'Admin'; | $salt = 'dsflFWR9u2xQa' (a hard coded string) | $akey = md5($username.$salt); | DO NOT use 'key' as access key! | Keys are CASE SENSITIVE! | */ 'access_keys' => array($privateKey), //-------------------------------------------------------------------------------------------------------- // YOU CAN COPY AND CHANGE THESE VARIABLES INTO FOLDERS config.php FILES TO CUSTOMIZE EACH FOLDER OPTIONS //-------------------------------------------------------------------------------------------------------- /* |-------------------------------------------------------------------------- | Maximum size of all files in source folder |-------------------------------------------------------------------------- | | in Megabytes | */ 'MaxSizeTotal' => false, /* |-------------------------------------------------------------------------- | Maximum upload size |-------------------------------------------------------------------------- | | in Megabytes | */ 'MaxSizeUpload' => 20000, /* |-------------------------------------------------------------------------- | File and Folder permission |-------------------------------------------------------------------------- | */ 'filePermission' => 0644, 'folderPermission' => 0777, /* |-------------------------------------------------------------------------- | default language file name |-------------------------------------------------------------------------- */ 'default_language' => 'fr_FR', /* |-------------------------------------------------------------------------- | Icon theme |-------------------------------------------------------------------------- | | Default available: ico and ico_dark | Can be set to custom icon inside filemanager/img | */ 'icon_theme' => "ico", //Show or not total size in filemanager (is possible to greatly increase the calculations) 'show_total_size' => true, //Show or not show folder size in list view feature in filemanager (is possible, if there is a large folder, to greatly increase the calculations) 'show_folder_size' => true, //Show or not show sorting feature in filemanager 'show_sorting_bar' => true, //Show or not show filters button in filemanager 'show_filter_buttons' => true, //Show or not language selection feature in filemanager 'show_language_selection' => true, //active or deactive the transliteration (mean convert all strange characters in A..Za..z0..9 characters) 'transliteration' => true, //convert all spaces on files name and folders name with $replace_with variable 'convert_spaces' => true, //convert all spaces on files name and folders name this value 'replace_with' => "_", //convert to lowercase the files and folders name 'lower_case' => true, //Add ?484899493349 (time value) to returned images to prevent cache 'add_time_to_img' => false, //******************************************* //Images limit and resizing configuration //******************************************* // set maximum pixel width and/or maximum pixel height for all images // If you set a maximum width or height, oversized images are converted to those limits. Images smaller than the limit(s) are unaffected // if you don't need a limit set both to 0 'image_max_width' => 0, 'image_max_height' => 0, 'image_max_mode' => 'auto', /* # $option: 0 / exact = defined size; # 1 / portrait = keep aspect set height; # 2 / landscape = keep aspect set width; # 3 / auto = auto; # 4 / crop= resize and crop; */ //Automatic resizing // // If you set $image_resizing to TRUE the script converts all uploaded images exactly to image_resizing_width x image_resizing_height dimension // If you set width or height to 0 the script automatically calculates the other dimension // Is possible that if you upload very big images the script not work to overcome this increase the php configuration of memory and time limit 'image_resizing' => false, 'image_resizing_width' => 0, 'image_resizing_height' => 0, 'image_resizing_mode' => 'auto', // same as $image_max_mode 'image_resizing_override' => false, // If set to TRUE then you can specify bigger images than $image_max_width & height otherwise if image_resizing is // bigger than $image_max_width or height then it will be converted to those values //****************** // // WATERMARK IMAGE // //Watermark path or false 'image_watermark' => false, //"../watermark.png", # Could be a pre-determined position such as: # tl = top left, # t = top (middle), # tr = top right, # l = left, # m = middle, # r = right, # bl = bottom left, # b = bottom (middle), # br = bottom right # Or, it could be a co-ordinate position such as: 50x100 'image_watermark_position' => 'br', # padding: If using a pre-determined position you can # adjust the padding from the edges by passing an amount # in pixels. If using co-ordinates, this value is ignored. 'image_watermark_padding' => 10, //****************** // Default layout setting // // 0 => boxes // 1 => detailed list (1 column) // 2 => columns list (multiple columns depending on the width of the page) // YOU CAN ALSO PASS THIS PARAMETERS USING SESSION VAR => $_SESSION['RF']["VIEW"]= // //****************** 'default_view' => 0, //set if the filename is truncated when overflow first row 'ellipsis_title_after_first_row' => true, //************************* //Permissions configuration //****************** 'delete_files' => $file['delete'] ? $file['delete'] : false, 'create_folders' => $folder['create'] ? $folder['create'] : false, 'delete_folders' => $folder['delete'] ? $folder['delete'] : false, 'upload_files' => $file['upload'] ? $file['upload'] : false, 'rename_files' => $file['rename'] ? $file['rename'] : false, 'rename_folders' => $folder['create'] ? $folder['create'] : false, 'duplicate_files' => $file['duplicate'] ? $file['duplicate'] : false, 'extract_files' => $file['extract'] ? $file['extract'] : false, 'copy_cut_files' => $file['copycut'] ? $file['copycut'] : false, // for copy/cut files 'copy_cut_dirs' => $folder['copycut'] ? $folder['copycut'] : false, // for copy/cut directories 'chmod_files' => $file['chmod'] ? $file['chmod'] : false, // change file permissions 'chmod_dirs' => $folder['chmod'] ? $folder['chmod'] : false, // change folder permissions 'preview_text_files' => $file['preview'] ? $file['preview'] : false, // eg.: txt, log etc. 'edit_text_files' => $file['edit'] ? $file['edit'] : false, // eg.: txt, log etc. 'create_text_files' => $file['extract'] ? $file['extract'] : false, // only create files with exts. defined in $config['editable_text_file_exts'] 'download_files' => $file['download'] ? $file['download'] : false, // allow download files or just preview // you can preview these type of files if $preview_text_files is true 'previewable_text_file_exts' => array("bsh", "c", "css", "cc", "cpp", "cs", "csh", "cyc", "cv", "htm", "html", "java", "js", "m", "mxml", "perl", "pl", "pm", "py", "rb", "sh", "xhtml", "xml", "xsl", 'txt', 'log', 'gpx', 'kml', ''), // you can edit these type of files if $edit_text_files is true (only text based files) // you can create these type of files if $config['create_text_files'] is true (only text based files) // if you want you can add html,css etc. // but for security reasons it's NOT RECOMMENDED! 'editable_text_file_exts' => array('txt', 'log', 'xml', 'html', 'css', 'htm', 'js', ''), 'jplayer_exts' => array("mp4", "flv", "webmv", "webma", "webm", "m4a", "m4v", "ogv", "oga", "mp3", "midi", "mid", "ogg", "wav"), 'cad_exts' => array('dwg', 'dxf', 'hpgl', 'plt', 'spl', 'step', 'stp', 'iges', 'igs', 'sat', 'cgm', 'svg'), // Preview with Google Documents 'googledoc_enabled' => true, 'googledoc_file_exts' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf', 'odt', 'odp', 'ods'), // defines size limit for paste in MB / operation // set 'FALSE' for no limit 'copy_cut_max_size' => 100, // defines file count limit for paste / operation // set 'FALSE' for no limit 'copy_cut_max_count' => 200, //IF any of these limits reached, operation won't start and generate warning //********************** //Allowed extensions (lowercase insert) //********************** 'ext_img' => array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg', 'ico', 'webp', 'avif'), //Images 'ext_file' => array('doc', 'docx', 'rtf', 'pdf', 'xls', 'xlsx', 'txt', 'md', 'csv', 'html', 'xhtml', 'psd', 'sql', 'log', 'fla', 'xml', 'ade', 'adp', 'mdb', 'accdb', 'ppt', 'pptx', 'odt', 'ots', 'ott', 'odb', 'odg', 'otp', 'otg', 'odf', 'ods', 'odp', 'css', 'ai', 'kmz', 'dwg', 'dxf', 'hpgl', 'plt', 'spl', 'step', 'stp', 'iges', 'igs', 'sat', 'cgm', 'ics', 'gpx', 'kml', ''), //Files 'ext_video' => array('mov', 'mpeg', 'm4v', 'mp4', 'avi', 'mpg', 'wma', 'flv', 'webm'), //Video 'ext_music' => array('mp3', 'mpga', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav'), //Audio 'ext_misc' => array('zip', 'rar', 'gz', 'tar', 'iso', 'dmg', 'woff'), //Archives et polices de caractères //********************* // If you insert an extensions blacklist array the filemanager don't check any extensions but simply block the extensions in the list // otherwise check Allowed extensions configuration //********************* 'ext_blacklist' => false, //['exe','bat','jpg'], //Empty filename permits like .htaccess, .env, ... 'empty_filename' => false, /* |-------------------------------------------------------------------------- | accept files without extension |-------------------------------------------------------------------------- | | If you want to accept files without extension, remember to add '' extension on allowed extension | */ 'files_without_extension' => false, /****************** * TUI Image Editor config *******************/ // Add or modify the options below as needed - they will be json encoded when added to the configuration so arrays can be utilized as needed 'tui_active' => false, 'tui_position' => 'bottom', // 'common.bi.image' => "../assets/images/logo.png", // 'common.bisize.width' => '70px', // 'common.bisize.height' => '25px', 'common.backgroundImage' => 'none', 'common.backgroundColor' => '#ececec', 'common.border' => '1px solid #E6E7E8', // header 'header.backgroundImage' => 'none', 'header.backgroundColor' => '#ececec', 'header.border' => '0px', // main icons 'menu.normalIcon.path' => 'svg/icon-d.svg', 'menu.normalIcon.name' => 'icon-d', 'menu.activeIcon.path' => 'svg/icon-b.svg', 'menu.activeIcon.name' => 'icon-b', 'menu.disabledIcon.path' => 'svg/icon-a.svg', 'menu.disabledIcon.name' => 'icon-a', 'menu.hoverIcon.path' => 'svg/icon-c.svg', 'menu.hoverIcon.name' => 'icon-c', 'menu.iconSize.width' => '24px', 'menu.iconSize.height' => '24px', // submenu primary color 'submenu.backgroundColor' => '#ececec', 'submenu.partition.color' => '#000000', // submenu icons 'submenu.normalIcon.path' => 'svg/icon-d.svg', 'submenu.normalIcon.name' => 'icon-d', 'submenu.activeIcon.path' => 'svg/icon-b.svg', 'submenu.activeIcon.name' => 'icon-b', 'submenu.iconSize.width' => '32px', 'submenu.iconSize.height' => '32px', // submenu labels 'submenu.normalLabel.color' => '#000', 'submenu.normalLabel.fontWeight' => 'normal', 'submenu.activeLabel.color' => '#000', 'submenu.activeLabel.fontWeight' => 'normal', // checkbox style 'checkbox.border' => '1px solid #E6E7E8', 'checkbox.backgroundColor' => '#000', // rango style 'range.pointer.color' => '#333', 'range.bar.color' => '#ccc', 'range.subbar.color' => '#606060', 'range.disabledPointer.color' => '#d3d3d3', 'range.disabledBar.color' => 'rgba(85,85,85,0.06)', 'range.disabledSubbar.color' => 'rgba(51,51,51,0.2)', 'range.value.color' => '#000', 'range.value.fontWeight' => 'normal', 'range.value.fontSize' => '11px', 'range.value.border' => '0', 'range.value.backgroundColor' => '#f5f5f5', 'range.title.color' => '#000', 'range.title.fontWeight' => 'lighter', // colorpicker style 'colorpicker.button.border' => '0px', 'colorpicker.title.color' => '#000', //The filter and sorter are managed through both javascript and php scripts because if you have a lot of //file in a folder the javascript script can't sort all or filter all, so the filemanager switch to php script. //The plugin automatic swich javascript to php when the current folder exceeds the below limit of files number 'file_number_limit_js' => 500, //********************** // Hidden files and folders //********************** // set the names of any folders you want hidden (eg "hidden_folder1", "hidden_folder2" ) Remember all folders with these names will be hidden (you can set any exceptions in config.php files on folders) 'hidden_folders' => array(), // set the names of any files you want hidden. Remember these names will be hidden in all folders (eg "this_document.pdf", "that_image.jpg" ) 'hidden_files' => array('config.php'), /******************* * URL upload *******************/ 'url_upload' => false, //************************************ //Thumbnail for external use creation //************************************ // New image resized creation with fixed path from filemanager folder after uploading (thumbnails in fixed mode) // If you want create images resized out of upload folder for use with external script you can choose this method, // You can create also more than one image at a time just simply add a value in the array // Remember than the image creation respect the folder hierarchy so if you are inside source/test/test1/ the new image will create at // path_from_filemanager/test/test1/ // PS if there isn't write permission in your destination folder you must set it // 'fixed_image_creation' => true, //activate or not the creation of one or more image resized with fixed path from filemanager folder 'fixed_path_from_filemanager' => array('../../../site/file/thumb/'), //fixed path of the image folder from the current position on upload folder 'fixed_image_creation_name_to_prepend' => array('mini_'), //name to prepend on filename 'fixed_image_creation_to_append' => array(''), //name to appendon filename 'fixed_image_creation_width' => array(640), //width of image 'fixed_image_creation_height' => array(480), //height of image /* # $option: 0 / exact = defined size; # 1 / portrait = keep aspect set height; # 2 / landscape = keep aspect set width; # 3 / auto = auto; # 4 / crop= resize and crop; */ 'fixed_image_creation_option' => array('auto', 'crop'), //set the type of the crop // New image resized creation with relative path inside to upload folder after uploading (thumbnails in relative mode) // With Responsive filemanager you can create automatically resized image inside the upload folder, also more than one at a time // just simply add a value in the array // The image creation path is always relative so if i'm inside source/test/test1 and I upload an image, the path start from here // 'relative_image_creation' => false, //activate or not the creation of one or more image resized with relative path from upload folder 'relative_path_from_current_pos' => array('./', './'), //relative path of the image folder from the current position on upload folder 'relative_image_creation_name_to_prepend' => array('', ''), //name to prepend on filename 'relative_image_creation_name_to_append' => array('_thumb', '_thumb1'), //name to append on filename 'relative_image_creation_width' => array(300, 400), //width of image 'relative_image_creation_height' => array(200, 300), //height of image /* # $option: 0 / exact = defined size; # 1 / portrait = keep aspect set height; # 2 / landscape = keep aspect set width; # 3 / auto = auto; # 4 / crop= resize and crop; */ 'relative_image_creation_option' => array('crop', 'crop'), //set the type of the crop // Remember text filter after close filemanager for future session 'remember_text_filter' => false, ); return array_merge( $config, array( 'ext' => array_merge( $config['ext_img'], $config['ext_file'], $config['ext_misc'], $config['ext_video'], $config['ext_music'] ), 'tui_defaults_config' => array( //'common.bi.image' => $config['common.bi.image'], //'common.bisize.width' => $config['common.bisize.width'], //'common.bisize.height' => $config['common.bisize.height'], 'common.backgroundImage' => $config['common.backgroundImage'], 'common.backgroundColor' => $config['common.backgroundColor'], 'common.border' => $config['common.border'], 'header.backgroundImage' => $config['header.backgroundImage'], 'header.backgroundColor' => $config['header.backgroundColor'], 'header.border' => $config['header.border'], 'menu.normalIcon.path' => $config['menu.normalIcon.path'], 'menu.normalIcon.name' => $config['menu.normalIcon.name'], 'menu.activeIcon.path' => $config['menu.activeIcon.path'], 'menu.activeIcon.name' => $config['menu.activeIcon.name'], 'menu.disabledIcon.path' => $config['menu.disabledIcon.path'], 'menu.disabledIcon.name' => $config['menu.disabledIcon.name'], 'menu.hoverIcon.path' => $config['menu.hoverIcon.path'], 'menu.hoverIcon.name' => $config['menu.hoverIcon.name'], 'menu.iconSize.width' => $config['menu.iconSize.width'], 'menu.iconSize.height' => $config['menu.iconSize.height'], 'submenu.backgroundColor' => $config['submenu.backgroundColor'], 'submenu.partition.color' => $config['submenu.partition.color'], 'submenu.normalIcon.path' => $config['submenu.normalIcon.path'], 'submenu.normalIcon.name' => $config['submenu.normalIcon.name'], 'submenu.activeIcon.path' => $config['submenu.activeIcon.path'], 'submenu.activeIcon.name' => $config['submenu.activeIcon.name'], 'submenu.iconSize.width' => $config['submenu.iconSize.width'], 'submenu.iconSize.height' => $config['submenu.iconSize.height'], 'submenu.normalLabel.color' => $config['submenu.normalLabel.color'], 'submenu.normalLabel.fontWeight' => $config['submenu.normalLabel.fontWeight'], 'submenu.activeLabel.color' => $config['submenu.activeLabel.color'], //'submenu.activeLabel.fontWeight' => $config['submenu.activeLabel.fontWeightcommon.bi.image'], 'checkbox.border' => $config['checkbox.border'], 'checkbox.backgroundColor' => $config['checkbox.backgroundColor'], 'range.pointer.color' => $config['range.pointer.color'], 'range.bar.color' => $config['range.bar.color'], 'range.subbar.color' => $config['range.subbar.color'], 'range.disabledPointer.color' => $config['range.disabledPointer.color'], 'range.disabledBar.color' => $config['range.disabledBar.color'], 'range.disabledSubbar.color' => $config['range.disabledSubbar.color'], 'range.value.color' => $config['range.value.color'], 'range.value.fontWeight' => $config['range.value.fontWeight'], 'range.value.fontSize' => $config['range.value.fontSize'], 'range.value.border' => $config['range.value.border'], 'range.value.backgroundColor' => $config['range.value.backgroundColor'], 'range.title.color' => $config['range.title.color'], 'range.title.fontWeight' => $config['range.title.fontWeight'], 'colorpicker.button.border' => $config['colorpicker.button.border'], 'colorpicker.title.color' => $config['colorpicker.title.color'] ), ) );