12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364 |
- <?php
- /**
- * elFinder is a AJAX file manager with Wysiwyg API capable editors support
- * Copyright (c) 2010-2013, Alexey Sukhotin
- */
- define('ELFINDER_POPUP_WIDTH', 700);
- define('ELFINDER_POPUP_HEIGHT', 400);
- include_once dirname(elfinder_connector_path()) . DIRECTORY_SEPARATOR . 'elFinder.class.php';
- if (class_exists('elFinder')) {
- include_once drupal_get_path('module', 'elfinder') . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'elfinder.drupal.inc';
- }
- function elfinder_check_badpaths() {
- $ret = array('result' => TRUE, 'message' => '');
- $libpath = elfinder_lib_path();
- $badfiles = array('connectors/php/connector.php', 'php/connector.php', 'php/connector.minimal.php');
- $badpaths = array();
- foreach ($badfiles as $badfile) {
- $path = $libpath . '/' . $badfile;
- if (file_exists($path)) {
- $badpaths[] = $path;
- }
- }
- if (count($badpaths) > 0) {
- $message = t('elFinder library directory containing features test files :files. Please remove these files to avoid security hole.', array(':files' => implode(', ', $badpaths)));
- watchdog('elfinder', $message, array(), WATCHDOG_ALERT);
- drupal_set_message($message, 'error');
-
- $ret['result'] = FALSE;
- $ret['message'] = $message;
-
- }
- return $ret;
- }
- function elfinder_init() {
- elfinder_check_badpaths();
- }
-
- /**
- * Implements hook_menu().
- */
- function elfinder_menu() {
- $items = array();
-
- $access = array('use file manager');
- $items['admin/content/files'] = array(
- 'title' => 'Files',
- 'page callback' => 'elfinder_file_browser',
- 'page arguments' => array('backend'),
- 'description' => 'Manage media files.',
- 'access arguments' => array('administer file manager'),
- );
- $items['admin/content/files']['type'] = MENU_LOCAL_TASK;
-
- $items['elfinder'] = array(
- 'title' => 'File browser',
- 'page callback' => 'elfinder_file_browser',
- 'page arguments' => array('default'),
- 'access arguments' => $access,
- 'type' => MENU_CALLBACK,
- );
- $items['elfinder/connector'] = array(
- 'title' => 'File browser',
- 'page callback' => 'elfinder_filesystemconnector',
- 'page arguments' => array(NULL),
- 'access arguments' => $access,
- 'type' => MENU_CALLBACK,
- );
- // Forced connector relative url mode. For filefield_sources support.
- $items['elfinder/connector/relative'] = array(
- 'title' => 'File browser',
- 'page callback' => 'elfinder_filesystemconnector',
- 'page arguments' => array('relative'),
- 'access arguments' => $access,
- 'type' => MENU_CALLBACK,
- );
- $settings_page = array(
- 'title' => 'elFinder',
- 'description' => 'elFinder file manager settings',
- 'page callback' => 'elfinder_admin',
- 'access arguments' => array('administer file manager'),
- 'file' => 'inc/elfinder.admin.inc',
- );
- $items['admin/config/elfinder'] = $items['admin/config/media/elfinder'] = $settings_page;
- $items['admin/config/elfinder']['type'] = MENU_CALLBACK;
-
- $items['admin/config/media/elfinder/profile'] = array(
- 'title' => 'Add Profile',
- 'page callback' => 'elfinder_admin_profiles',
- 'page arguments' => array('profile_add'),
- 'access arguments' => array('administer file manager'),
- 'type' => MENU_CALLBACK,
- 'file' => 'inc/elfinder.admin.profiles.inc',
- );
-
- $items['admin/config/media/elfinder/profile/%/delete'] = array(
- 'title' => 'Delete Profile',
- 'page callback' => 'elfinder_admin_profiles',
- 'page arguments' => array('profile_delete', 5),
- 'access arguments' => array('administer file manager'),
- 'type' => MENU_CALLBACK,
- 'file' => 'inc/elfinder.admin.profiles.inc',
- );
- $items['admin/config/media/elfinder/profile/%/edit'] = array(
- 'title' => 'Edit Profile',
- 'page callback' => 'drupal_get_form',
- 'page arguments' => array('elfinder_admin_profile', 'profile_edit', 5),
- 'access arguments' => array('administer file manager'),
- 'type' => MENU_CALLBACK,
- 'file' => 'inc/elfinder.admin.profiles.inc',
- );
-
- $items['elfinder/ahah/dir'] = array(
- 'title' => 'JavaScript Volume Add Item',
- 'page callback' => 'elfinder_admin_form_dir_js',
- 'page arguments' => array('item_add'),
- 'access arguments' => array('administer file manager'),
- 'type' => MENU_CALLBACK,
- 'file' => 'inc/elfinder.admin.profiles.inc',
- );
-
- $items['elfinder/ahah/rmdir/%'] = array(
- 'title' => 'JavaScript Volume Remove Item',
- 'page callback' => 'elfinder_admin_form_dir_js',
- 'page arguments' => array('item_remove', 3),
- 'access arguments' => array('administer file manager'),
- 'type' => MENU_CALLBACK,
- 'file' => 'inc/elfinder.admin.profiles.inc',
- );
-
- $items['elfinder/upload/fckeditor'] = array(
- 'title' => 'FCKeditor Quick Upload',
- 'page callback' => 'elfinder_editor_upload_fckeditor',
- 'access arguments' => array('access content'),
- 'type' => MENU_CALLBACK,
- 'file' => 'editors/fckeditor/fckeditor.upload.inc',
- );
-
- $items['elfinder/upload/ckeditor'] = array(
- 'title' => 'CKeditor Quick Upload',
- 'page callback' => 'elfinder_editor_upload_ckeditor',
- 'access arguments' => array('access content'),
- 'type' => MENU_CALLBACK,
- 'file' => 'editors/ckeditor/ckeditor.upload.inc',
- );
-
- /* Getting updated menu items from hook_elfinder_menu */
- $newitems = module_invoke_all('elfinder_menu', $items);
-
- return ($newitems) ? $newitems : $items;
- }
- function elfinder_js_alter(&$javascript) {
- //$javascript['misc/jquery.js']['data'] = drupal_get_path('module', 'elfinder') . '/js/elfinder.jquery.min.js';
- }
- /**
- * File browser render
- */
- function elfinder_file_browser($browser_mode = 'default') {
- $libpath = elfinder_lib_path() . '/';
- $p = elfinder_get_user_profile();
- if (is_readable(elfinder_connector_path())) {
- global $language;
- $path = drupal_get_path('module', 'elfinder');
- $editorApp = '';
- $langCode = isset($language->language) ? $language->language : 'en';
- if (isset($_GET['app'])) {
- if (preg_match("/^[a-zA-Z]+$/", $_GET['app'])) {
- $editorApp = $_GET['app'];
- } elseif (preg_match("/^([a-zA-Z]+)|/", $_GET['app'], $m)) {
- $editorApp = $m[1];
- }
- }
- if (isset($_GET['langCode'])) {
- if (preg_match("/^[a-zA-z]{2}$/", $_GET['langCode'])) {
- $langCode = $_GET['langCode'];
- }
- }
-
- /* Initial frontend settings */
- $elfinder_js_settings = array(
- 'connectorUrl' => url('elfinder/connector'),
- 'moduleUrl' => url('elfinder'),
- 'editorApp' => $editorApp,
- 'langCode' => $langCode,
- 'rememberLastDir' => variable_get('elfinder_settings_misc_rememberlastdir', 'true') == 'true' ? TRUE : FALSE, // remember last opened directory
- 'disabledCommands' => elfinder_get_disabled_commands(),
- 'requestType' => variable_get('elfinder_settings_misc_requesttype', 'get') == 'get' ? 'get' : 'post',
- 'browserMode' => $browser_mode,
- 'token' => drupal_get_token('elFinder'),
- 'soundPath' => base_path() . elfinder_lib_path() . '/sounds',
- );
- if (($mheight = variable_get('elfinder_settings_misc_manager_height', '')) != '') {
- $elfinder_js_settings['height'] = (int)$mheight;
- }
- $elfinder_js_settings['resizable'] = ($browser_mode == 'backend');
- if ($editorApp) {
- $elfinder_js_settings['editorCallback'] = 'elfinder_' . $editorApp . '_callback';
- }
-
- $options = array(
- 'group' => CSS_DEFAULT,
- 'every_page' => FALSE,
- );
- $sysjqver = variable_get('jquery_update_jquery_version', '1.10');
- if (!(module_exists('jquery_update') && preg_match('/1\.(8|9|10|11|12)/', $sysjqver))) {
- drupal_add_js($path . '/js/elfinder.jquery.min.js');
- drupal_add_js($path . '/js/elfinder.jquery-ui.min.js');
- } else {
- drupal_add_library('system', 'ui.button');
- drupal_add_library('system', 'ui.dialog');
- drupal_add_library('system', 'ui.draggable');
- drupal_add_library('system', 'ui.droppable');
- drupal_add_library('system', 'ui.resizable');
- drupal_add_library('system', 'ui.selectable');
- drupal_add_library('system', 'ui.slider');
- }
-
- elfinder_add_css($path . '/css/ui-themes/smoothness/jquery-ui.custom.css', $options);
- elfinder_add_css($path . '/css/elfinder.common.css', $options);
-
- if (is_readable($libpath . 'css/elfinder.min.css') && is_readable($libpath . 'js/elfinder.min.js')) {
- elfinder_add_css($libpath . 'css/elfinder.min.css');
- drupal_add_js($libpath . 'js/elfinder.min.js');
- } else if (is_readable($libpath . 'css/elfinder.full.css') && is_readable($libpath . 'js/elfinder.full.js')) {
- elfinder_add_css($libpath . 'css/elfinder.full.css');
- drupal_add_js($libpath . 'js/elfinder.full.js');
- } else if (is_readable($libpath . 'css/common.css') && is_readable($libpath . 'js/elFinder.js')) {
- elfinder_add_css($libpath . 'css/common.css');
- elfinder_add_css($libpath . 'css/dialog.css');
- elfinder_add_css($libpath . 'css/toolbar.css');
- elfinder_add_css($libpath . 'css/navbar.css');
- elfinder_add_css($libpath . 'css/statusbar.css');
- elfinder_add_css($libpath . 'css/cwd.css');
- elfinder_add_css($libpath . 'css/quicklook.css');
- elfinder_add_css($libpath . 'css/commands.css');
- elfinder_add_css($libpath . 'css/contextmenu.css');
- elfinder_add_css($libpath . 'css/theme.css');
- drupal_add_js($libpath . 'js/elFinder.js');
- drupal_add_js($libpath . 'js/elFinder.version.js');
- drupal_add_js($libpath . 'js/jquery.elfinder.js');
- drupal_add_js($libpath . 'js/elFinder.resources.js');
- drupal_add_js($libpath . 'js/elFinder.options.js');
- drupal_add_js($libpath . 'js/elFinder.history.js');
- drupal_add_js($libpath . 'js/elFinder.command.js');
- drupal_add_js($libpath . 'js/ui/overlay.js');
- drupal_add_js($libpath . 'js/ui/workzone.js');
- drupal_add_js($libpath . 'js/ui/navbar.js');
- drupal_add_js($libpath . 'js/ui/dialog.js');
- drupal_add_js($libpath . 'js/ui/tree.js');
- drupal_add_js($libpath . 'js/ui/cwd.js');
- drupal_add_js($libpath . 'js/ui/toolbar.js');
- drupal_add_js($libpath . 'js/ui/button.js');
- drupal_add_js($libpath . 'js/ui/uploadButton.js');
- drupal_add_js($libpath . 'js/ui/viewbutton.js');
- drupal_add_js($libpath . 'js/ui/searchbutton.js');
- drupal_add_js($libpath . 'js/ui/panel.js');
- drupal_add_js($libpath . 'js/ui/contextmenu.js');
- drupal_add_js($libpath . 'js/ui/path.js');
- drupal_add_js($libpath . 'js/ui/stat.js');
- drupal_add_js($libpath . 'js/ui/places.js');
- drupal_add_js($libpath . 'js/commands/back.js');
- drupal_add_js($libpath . 'js/commands/forward.js');
- drupal_add_js($libpath . 'js/commands/reload.js');
- drupal_add_js($libpath . 'js/commands/up.js');
- drupal_add_js($libpath . 'js/commands/home.js');
- drupal_add_js($libpath . 'js/commands/copy.js');
- drupal_add_js($libpath . 'js/commands/cut.js');
- drupal_add_js($libpath . 'js/commands/paste.js');
- drupal_add_js($libpath . 'js/commands/open.js');
- drupal_add_js($libpath . 'js/commands/rm.js');
- drupal_add_js($libpath . 'js/commands/duplicate.js');
- drupal_add_js($libpath . 'js/commands/rename.js');
- drupal_add_js($libpath . 'js/commands/help.js');
- drupal_add_js($libpath . 'js/commands/getfile.js');
- drupal_add_js($libpath . 'js/commands/mkdir.js');
- drupal_add_js($libpath . 'js/commands/mkfile.js');
- drupal_add_js($libpath . 'js/commands/upload.js');
- drupal_add_js($libpath . 'js/commands/download.js');
- drupal_add_js($libpath . 'js/commands/edit.js');
- drupal_add_js($libpath . 'js/commands/quicklook.js');
- drupal_add_js($libpath . 'js/commands/quicklook.plugins.js');
- drupal_add_js($libpath . 'js/commands/extract.js');
- drupal_add_js($libpath . 'js/commands/archive.js');
- drupal_add_js($libpath . 'js/commands/search.js');
- drupal_add_js($libpath . 'js/commands/view.js');
- drupal_add_js($libpath . 'js/commands/resize.js');
- drupal_add_js($libpath . 'js/commands/info.js');
- drupal_add_js($libpath . 'js/commands/sort.js');
- drupal_add_js($libpath . 'js/commands/netmount.js');
- drupal_add_js($libpath . 'js/proxy/elFinderSupportVer1.js');
- drupal_add_js($libpath . 'js/jquery.dialogelfinder.js');
- } else {
- watchdog('Failed Requirement', 'elFinder unable to load required JS and CSS files', array(), WATCHDOG_ERROR);
- }
-
- $langfile = $libpath . 'js/i18n/elfinder.' . $langCode . '.js';
-
- if (is_readable($libpath . 'css/theme.css')) {
- elfinder_add_css($libpath . 'css/theme.css');
- }
-
- /* Adding localization */
- if (is_readable($langfile)) {
- drupal_add_js($langfile);
- }
- /* Getting updated frontend settings from hook_elfinder_js_settings */
- $newjssettings = module_invoke_all('elfinder_js_settings', $elfinder_js_settings);
-
- if (isset($newjssettings['all'])) {
- $elfinder_js_settings = array_merge($elfinder_js_settings, (array)$newjssettings['all']);
- }
-
- if (isset($newjssettings[$editorApp])) {
- $elfinder_js_settings = array_merge($elfinder_js_settings, (array)$newjssettings[$editorApp]);
- }
- /* Loading callbacks for returning url from file manager to caller */
- $editor_plugins = elfinder_system_listing("$editorApp\.callback\.js\$", $path . '/editors' , 'name', 0);
- $callback_file = '';
- if (isset($editorApp)) {
-
- if (isset($editorApp) && isset($editor_plugins[$editorApp . '.callback'])) {
- $callback_file = $editor_plugins[$editorApp . '.callback']->uri;
- if (isset($callback_file)) {
- drupal_add_js($callback_file);
- }
- }
-
- if (isset($elfinder_js_settings['browserscripts'])) {
- foreach ((array)$elfinder_js_settings['browserscripts'] as $script) {
- drupal_add_js($script, array('weight' => 999));
- }
- unset($elfinder_js_settings['browserscripts']);
- }
-
- }
-
- if (property_exists('elFinder', 'ApiVersion')) {
- $elfinder_js_settings['api21'] = true;
- } else {
- drupal_add_js($path . '/js/info.js');
- }
- // drupal_add_js($path . '/js/mouseover.js');
- drupal_add_js($path . '/js/elfinder.callback.js');
- drupal_add_js(array('elfinder' => $elfinder_js_settings), 'setting');
-
-
- $libs = elfinder_get_libraries('tinymce');
- if (count($libs) > 0 && !empty($libs['tinymce'])) {
-
- $path = $libs['tinymce'] . '/jscripts/tiny_mce/tiny_mce_popup.js';
- $abspath = base_path() . "/$path";
- drupal_add_js($path);
- }
-
- } else {
- drupal_set_message(t('elFinder library was not found. Please download it from <a href="@url">@url</a> and install to @libpath.', array('@url' => elfinder_download_url(), '@libpath' => $libpath)), 'error');
- }
- if ($browser_mode && $browser_mode == 'backend') {
- return theme('elfinder_page_backend');
- } else {
- print theme('elfinder_page');
- }
- module_invoke_all('exit');
- exit();
- }
- function elfinder_get_disabled_commands() {
- $disabled_commands = array();
- $permissions = elfinder_permission();
-
- $commands = elfinder_cmd_permissions();
- // Disable not allowed commands
- foreach ($permissions as $perm_name => $perm_data) {
- if (array_key_exists($perm_name, $commands) && !user_access($perm_name)) {
- array_push($disabled_commands, $commands[$perm_name]);
- }
- }
-
- /* if (!user_access('download own uploaded files') && !user_access('download all uploaded files')) {
- $disabled_commands[] = 'getfile';
- }*/
-
- return $disabled_commands;
- }
- function elfinder_user_roles() {
- global $user;
- return array_reverse(array_keys($user->roles));
- }
- function elfinder_get_user_profile() {
- /* Get role id list sorted by weight descending */
- $profiles = elfinder_admin_profile_get();
-
- if (!is_array($profiles)) {
- $profiles = array($profiles);
- }
-
- $first_profile = NULL;
-
- $rids = elfinder_user_roles();
- $rids[] = 1; // anonymous user
-
- /* Get first matching profile for higest weight user role */
- foreach ($rids as $rid) {
- foreach ($profiles as $profile) {
- if (isset($profile->settings['profile_role']) && in_array($rid, $profile->settings['profile_role']) ) {
- if (is_null($first_profile)) {
- $first_profile = $profile;
- } else if (isset($profile->settings['volume'])) {
- /* Adding all available to current user volumes from other profiles */
- foreach ($profile->settings['volume'] as $volume) {
- $first_profile->settings['volume'][] = $volume;
- }
- }
- }
- }
-
- }
- return $first_profile;
- }
- /**
- * File browser to filesystem php connector callback
- */
- function elfinder_filesystemconnector($mode = 'default') {
- global $base_root, $user;
-
- $p = elfinder_get_user_profile();
-
- $path = drupal_get_path('module', 'elfinder');
-
- include_once dirname(elfinder_connector_path()) . DIRECTORY_SEPARATOR . 'elFinderConnector.class.php';
- include_once dirname(elfinder_connector_path()) . DIRECTORY_SEPARATOR . 'elFinderVolumeDriver.class.php';
- include_once dirname(elfinder_connector_path()) . DIRECTORY_SEPARATOR . 'elFinderVolumeLocalFileSystem.class.php';
- include_once $path . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'elfinder.drupalfs.driver.inc';
- include_once $path . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'elfinder.drupalfs.acl.inc';
- include_once $path . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'elfinder.admin.profiles.inc';
-
- /**
- * Emulate json_encode required by filesystem connector for old php without JSON support
- */
- if (!function_exists('json_encode')) {
- function json_encode($arg) {
- return drupal_json($arg);
- }
- }
-
- /* Disabling incompartible devel module features */
- if (module_exists('devel')) {
- $devel_incompat = array('dev_timer', 'devel_query_display', 'dev_mem', 'devel_redirect_page');
- $flag = FALSE;
- foreach ($devel_incompat as $di) {
- if (variable_get($di, 0)) {
- $flag = TRUE;
- variable_set($di, 0);
- }
- }
- if ($flag) {
- drupal_set_message(t('elFinder disabled incompatible devel module features.'), 'warning');
- }
- }
- // Set absolute/relative url variable.
- if(!isset($mode) && variable_get('elfinder_settings_filesystem_fileurl', 'true') == 'false') {
- $mode = 'relative';
- }
- $disabled_commands = elfinder_get_disabled_commands();
- $acl = new elFinderDrupalACL();
-
- $pubFiles = file_stream_wrapper_get_instance_by_uri('public://');
- $pvtFiles = file_stream_wrapper_get_instance_by_uri('private://');
-
- $roots = array();
- if ($p) {
- $profile = $p->settings;
- } else {
- $profile = array();
- }
- $options_defs = array(
- 'disabled' => $disabled_commands, // list of not allowed commands
- 'debug' => FALSE,
- 'dirSize' => FALSE,
- 'tmbSize' => isset($profile['tmbsize']) ? $profile['tmbsize'] : variable_get('elfinder_settings_thumbnail_size', '48'), // thumbnail image size
- 'tmbPath' => variable_get('elfinder_settings_thumbnail_dirname', 'tmb'), // thumbnail images directory (tmbPath in 2.x)
- 'tmbCrop' => variable_get('elfinder_settings_thumbnail_tmbcrop', 'true') == 'true' ? TRUE : FALSE, // crop thumbnail image
- 'dateFormat' => variable_get('date_format_long', 'j M Y H:i'), // file modification date format
- 'mimeDetect' => isset($profile['mime_detect']) ? $profile['mime_detect'] : variable_get('elfinder_settings_filesystem_mimedetect', 'auto'), // file type detection method
- 'imgLib' => isset($profile['imglib']) ? $profile['imglib'] : variable_get('elfinder_settings_thumbnail_imglib', 'auto'), // image manipulation library
- 'fileMode' => isset($profile['file_perm']) ? octdec($profile['file_perm']) : octdec(variable_get('elfinder_settings_filesystem_fileperm', '0666')), // created file permissions
- 'dirMode' => isset($profile['dir_perm']) ? octdec($profile['dir_perm']) : octdec(variable_get('elfinder_settings_filesystem_dirperm', '0777')), // created directory permissions
- 'accessControlData' => array('uid' => $user->uid),
- 'acceptedName' => '/^[^\.]+/',
- 'uploadMaxSize' => parse_size(variable_get('elfinder_settings_filesystem_maxfilesize', '')),
- 'userProfile' => $p,
- 'jpgQuality' => variable_get('image_jpeg_quality', 75),
- );
-
- if (is_object($pubFiles) && user_access('access public files')) {
- $roots[] = array_merge($options_defs, array(
- 'driver' => 'Drupal',
- 'path' => drupal_realpath('public://'), // path to root directory (named 'path' in elFinder 2.0)
- 'URL' => $mode == 'relative' ? base_path() . $pubFiles->getDirectoryPath() : $pubFiles->getExternalUrl(), // root directory URL
- 'alias' => variable_get('elfinder_settings_filesystem_public_root_label', '') != '' ? variable_get('elfinder_settings_filesystem_public_root_label', '') : t('Public Files'), // display this instead of root directory name (named 'alias' in elFinder 2.0)
- 'accessControl' => array($acl, 'fsAccessPublic'),
- ));
- }
-
- if (is_object($pvtFiles) && user_access('access private files')) {
- $roots[] = array_merge($options_defs, array(
- 'driver' => 'Drupal',
- 'path' => drupal_realpath('private://'), // path to root directory (named 'path' in elFinder 2.0)
- 'URL' => $mode == 'relative' ? base_path() . $pvtFiles->getDirectoryPath() : $pvtFiles->getExternalUrl(), // root directory URL
- 'alias' => variable_get('elfinder_settings_filesystem_private_root_label', '') != '' ? variable_get('elfinder_settings_filesystem_private_root_label', '') : t('Private Files'), // display this instead of root directory name (named 'alias' in elFinder 2.0)
- 'accessControl' => array($acl, 'fsAccessPrivate'),
- ));
- }
-
- if (user_access('access unmanaged files')) {
- $roots[] = array_merge($options_defs, array(
- 'driver' => 'LocalFileSystem',
- 'path' => elfinder_file_directory_path(TRUE), // path to root directory (named 'path' in elFinder 2.0)
- 'URL' => elfinder_file_directory_url($mode == 'relative' ? TRUE : FALSE), // root directory URL
- 'alias' => variable_get('elfinder_settings_filesystem_unmanaged_root_label', '') != '' ? variable_get('elfinder_settings_filesystem_unmanaged_root_label', '') : t('Unmanaged Files'), // display this instead of root directory name (named 'alias' in elFinder 2.0)
- 'accessControl' => array($acl, 'fsAccessUnmanaged'),
- ));
- }
-
- if (isset($profile['volume'])) {
- foreach ($profile['volume'] as $volume) {
- $root = array(
- 'alias' => $volume['label'],
- );
- $is_subdir = FALSE;
- $rootpath = '';
- if (isset($volume['path']) && substr($volume['path'], 0, 1) != DIRECTORY_SEPARATOR) {
- $is_subdir = TRUE;
- }
- if ($is_subdir) {
-
- $root['driver'] = 'Drupal';
- $scheme = file_uri_scheme($volume['path']);
- if ($scheme == FALSE) {
- if (is_object(file_stream_wrapper_get_instance_by_uri('private://'))) {
- $scheme = 'private';
- } else {
- $scheme = 'public';
- }
- }
- $rootpath = $volume['path'];
- if ($pos = strpos($rootpath, '://')) {
- $rootpath = substr($rootpath, $pos + 3);
- }
- $streamWrapper = file_stream_wrapper_get_instance_by_scheme($scheme);
- if (is_object($streamWrapper)) {
- $volpath = $streamWrapper->realpath();
- $volurl = $mode == 'relative' ? base_path() . $streamWrapper->getDirectoryPath() : $streamWrapper->getExternalUrl();
- $url = isset($volume['url']) && $volume['url'] != '' ? elfinder_parse_path_tokens($volume['url']) : $volurl;
- }
- $rootpath = elfinder_parse_path_tokens($rootpath);
- $trimmedpath = ltrim($rootpath, './');
- $rootpath = $volpath . DIRECTORY_SEPARATOR . $trimmedpath;
- $url = rtrim($url, '/');
- $url .= "/$trimmedpath";
- if (!file_prepare_directory($rootpath, FILE_CREATE_DIRECTORY)) {
- drupal_set_message(t('Error. Cannot initialize directory %dir', array('%dir' => $rootpath)), 'error');
- }
- $root['path'] = drupal_realpath($rootpath);
- $root['URL'] = $url;
- $root['tmbPath'] = $volpath . DIRECTORY_SEPARATOR . variable_get('elfinder_settings_thumbnail_dirname', 'tmb');
- $root['tmbURL'] = $volurl . '/' . variable_get('elfinder_settings_thumbnail_dirname', 'tmb');
- } else {
- $rootpath = elfinder_parse_path_tokens($volume['path']);
- $root['driver'] = 'LocalFileSystem';
- $root['path'] = $rootpath;
- if (isset($volume['url'])) {
- $root['URL'] = elfinder_parse_path_tokens($volume['url']);
- }
- }
- $root = array_merge($options_defs, $root);
- $roots[] = $root;
- }
- }
-
- $opts = array(
- 'roots' => $roots,
- 'driver_defaults' => $options_defs,
- );
-
- $newopts = module_invoke_all('elfinder_connector_config', $opts);
-
- if ($newopts) {
- $opts = $newopts;
- }
- class elFinderConnectorDrupal extends elFinderConnector {
- public function test() {
- }
- }
-
- try {
- $elFinderObj = new elFinderDrupal($opts);
- } catch (Exception $e) {
- module_invoke_all('exit');
- exit(drupal_json_encode(array('error' => array(t('Unable to initialize elFinder object. :msg', array(':msg' => basename($e->getFile()) .": ". $e->getMessage()))))));
- }
-
- $bindcmds = module_invoke_all('elfinder_bind');
-
- foreach ($bindcmds as $cmd => $cmdfunc) {
- $elFinderObj->bind($cmd, $cmdfunc);
- }
-
- try {
- $elFinderConnectorObj = new elFinderConnectorDrupal($elFinderObj);
- } catch (Exception $e) {
- module_invoke_all('exit');
- exit(drupal_json_encode(array('error' => array(t('Unable to initialize elFinder connector object. :msg', array(':msg' => basename($e->getFile()) .": ". $e->getMessage()))))));
- }
-
- module_invoke_all('elfinder_connector_init', $elFinderConnectorObj);
-
- if (!drupal_valid_token($_REQUEST['token'], 'elFinder', TRUE)) {
- module_invoke_all('exit');
- exit(drupal_json_encode(array('error' => array(t('Access denied')))));
- } else {
- try {
- $elFinderConnectorObj->run();
- } catch (Exception $e) {
- module_invoke_all('exit');
- exit(drupal_json_encode(array('error' => array(t('Unable to run elFinder connector. :msg', array(':msg' => basename($e->getFile()) .": ". $e->getMessage()))))));
- }
- module_invoke_all('exit');
- exit();
- }
- }
- function elfinder_elfinder_bind() {
- return array('test' => 'test2');
- }
- /**
- * Implements hook_theme().
- */
- function elfinder_theme() {
- $theme = array();
- $theme['elfinder_page'] = array(
- 'template' => 'elfinder-page',
- 'arguments' => array('libPath' => '/' . elfinder_lib_path()),
- 'path' => drupal_get_path('module', 'elfinder') . '/tpl',
- );
- $theme['elfinder_page_backend'] = array(
- 'template' => 'elfinder-page-backend',
- 'arguments' => array('libPath' => '/' . elfinder_lib_path()),
- 'path' => drupal_get_path('module', 'elfinder') . '/tpl',
- );
-
- return $theme;
- }
- /**
- * Implements hook_permission(), D7
- */
- function elfinder_permission() {
- $perm = array(
- 'use file manager' => array(
- 'title' => t('Use elFinder file manager'),
- 'description' => t('Allow accessing elFinder file manager module'),
- ),
- 'administer file manager' => array(
- 'title' => t('Administer file manager'),
- 'description' => t('Allow users to administer file manager'),
- ),
- 'create new directories' => array(
- 'title' => t('Create new directories'),
- 'description' => t('Allow users to create new directories'),
- ),
- 'create new files' => array(
- 'title' => t('Create new files'),
- 'description' => t('Allow users to create new files'),
- ),
- 'rename files and directories' => array(
- 'title' => t('Rename files and directories'),
- 'description' => t('Allow users to rename files and directories'),
- ),
- 'file uploads' => array(
- 'title' => t('File uploads'),
- 'description' => t('Allow users to upload files'),
- ),
- 'paste from clipboard' => array(
- 'title' => t('Paste from clipboard'),
- 'description' => t('Allow users to paste files from clipboard'),
- ),
- 'copy to clipboard' => array(
- 'title' => t('Copy to clipboard'),
- 'description' => t('Allow users to copy files to clipboard'),
- ),
-
- 'cut to clipboard' => array(
- 'title' => t('Cut to clipboard'),
- 'description' => t('Allow users to cut files to clipboard'),
- ),
- 'view file info' => array(
- 'title' => t('View file info'),
- 'description' => t('Allow users to view file info'),
- ),
-
- 'preview files' => array(
- 'title' => t('Preview files'),
- 'description' => t('Allow users to preview files'),
- ),
-
- 'delete files and directories' => array(
- 'title' => t('Delete files and directories'),
- 'description' => t('Allow users to delete files and directories'),
- ),
- 'duplicate files' => array(
- 'title' => t('Duplicate files'),
- 'description' => t('Allow users to duplicate files'),
- ),
- 'edit files' => array(
- 'title' => t('Edit files'),
- 'description' => t('Allow users to edit files'),
- ),
- 'add files to archive' => array(
- 'title' => t('Add files to archive'),
- 'description' => t('Allow users add files to archive'),
- ),
- 'extract files from archive' => array(
- 'title' => t('Extract files from archive'),
- 'description' => t('Allow users to extract files from archive'),
- ),
- 'resize images' => array(
- 'title' => t('Resize images'),
- 'description' => t('Allow users to resize images'),
- ),
- 'download own uploaded files' => array(
- 'title' => t('Download own uploaded files'),
- 'description' => t('Allow users to download own uploaded files'),
- ),
- 'download all uploaded files' => array(
- 'title' => t('Download all uploaded files'),
- 'description' => t('Allow users to download all uploaded files'),
- ),
-
- 'access public files' => array(
- 'title' => t('Access public files'),
- 'description' => t('Allow users to access public files directory'),
- ),
-
- 'access private files' => array(
- 'title' => t('Access private files'),
- 'description' => t('Allow users to access private files directory'),
- ),
- 'access unmanaged files' => array(
- 'title' => t('Access unmanaged files'),
- 'description' => t('Allow users to access unmanaged files in custom directory'),
- ),
-
- 'write public files' => array(
- 'title' => t('Write public files'),
- 'description' => t('Allow users write access to public files directory'),
- ),
-
- 'write private files' => array(
- 'title' => t('Write private files'),
- 'description' => t('Allow users write access to private files directory'),
- ),
- 'access unmanaged files' => array(
- 'title' => t('Access unmanaged files'),
- 'description' => t('Allow users write access to unmanaged files in custom directory'),
- ),
- 'view file description' => array(
- 'title' => t('View file descriptions'),
- 'description' => t('Allow users to view file descriptions'),
- ),
-
- 'edit file description' => array(
- 'title' => t('Edit file descriptions'),
- 'description' => t('Allow users to edit file descriptions'),
- ),
-
- 'view file owner' => array(
- 'title' => t('View file owner'),
- 'description' => t('Allow users to view file owner'),
- ),
-
- 'view file downloads' => array(
- 'title' => t('View file downloads'),
- 'description' => t('Allow users to view file downloads'),
- ),
-
- 'mount network volumes' => array(
- 'title' => t('Mount network volumes'),
- 'description' => t('Allow users to mount remote network volumes'),
- ),
-
- );
-
- $newperms = module_invoke_all('elfinder_perms', $perm);
-
- return ($newperms) ? $newperms : $perm;
- }
- /**
- * elFider commandsto permissions assignment
- */
- function elfinder_cmd_permissions() {
- $perm = array(
- 'create new directories' => 'mkdir',
- 'create new files' => 'mkfile',
- 'rename files and directories' => 'rename',
- 'file uploads' => 'upload',
- 'copy to clipboard' => 'copy',
- 'cut to clipboard' => 'cut',
- 'paste from clipboard' => 'paste',
- 'preview files' => 'quicklook',
- 'view file info' => 'info',
- 'delete files and directories' => 'rm',
- 'duplicate files' => 'duplicate',
- 'edit files' => 'edit',
- 'add files to archive' => 'archive',
- 'extract files from archive' => 'extract',
- 'resize images' => 'resize',
- 'download own uploaded files' => 'download',
- 'view file description' => 'desc',
- 'edit file description' => 'editdesc',
- 'view file owner' => 'owner',
- 'view file downloads' => 'downloadcount',
- 'mount network volumes' => 'netmount',
- );
-
- $newcperms = module_invoke_all('elfinder_cmd_perms', $perm);
-
- return ($newcperms) ? $newcperms : $perm;
- }
- /**
- * Implements hook_wysiwyg_plugin().
- */
- function elfinder_wysiwyg_plugin($editor, $version) {
- $path = drupal_get_path('module', 'elfinder');
- drupal_add_js($path . '/js/elfinder.wysiwyg.init.js', array('group' => JS_LIBRARY));
-
- $options = array(
- 'elfinder_url' => url('elfinder', array('query' => array('app' => $editor ))),
- 'homepage_url' => elfinder_homepage_url(),
- 'path' => $path,
- );
-
- /* bueditor hack */
- if (preg_match('/^(bueditor|bue)/', $editor)) {
- $editor = 'bueditor';
- }
-
- $editor_plugins = elfinder_system_listing("$editor\.inc\$", $path . '/editors' , 'name', 0);
-
- /* loading editor plugin */
- $plugin_file = '';
-
- if (isset($editor_plugins[$editor])) {
-
- $plugin_file = $editor_plugins[$editor]->uri;
-
- if ($plugin_file) {
- $options['plugin_url_base'] = "$path/editors/$editor";
- require_once $plugin_file;
- }
- }
- /* hook for adding another editor support */
- //module_invoke_all('elfinder_editor_plugin');
-
- /* wysiwyg plugin generation func for selected editor */
- $pluginfunc = 'elfinder_' . $editor . '_elfinder_editor_plugin';
-
- /* returning elFinder wysiwyg editor plugin for selected editor */
- if (function_exists($pluginfunc)) {
- return call_user_func_array($pluginfunc, array($options));
- }
- }
- /**
- * library homepage url
- */
- function elfinder_homepage_url() {
- return 'http://elfinder.org/';
- }
- /**
- * library download url
- */
- function elfinder_download_url() {
- return 'http://sourceforge.net/projects/drupal-elfinder/files/Library/';
- }
- /**
- * library files path
- */
- function elfinder_lib_path($name = 'elfinder') {
-
- $libraries = &drupal_static(__FUNCTION__);
- if (!isset($libraries)) {
- $libraries = elfinder_get_libraries();
- }
- $path = '';
-
- if (!isset($libraries[$name])) {
- return FALSE;
- } else {
- $path .= $libraries[$name];
- }
- return $path;
- }
- function elfinder_get_libraries() {
- $directory = 'libraries';
- $searchdir = array();
- $profile = drupal_get_profile();
- $config = conf_path();
- // Similar to 'modules' and 'themes' directories in the root directory,
- // certain distributions may want to place libraries into a 'libraries'
- // directory in Drupal's root directory.
- $searchdir[] = $directory;
- // The 'profiles' directory contains pristine collections of modules and
- // themes as organized by a distribution. It is pristine in the same way
- // that /modules is pristine for core; users should avoid changing anything
- // there in favor of sites/all or sites/<domain> directories.
- if (file_exists("profiles/$profile/$directory")) {
- $searchdir[] = "profiles/$profile/$directory";
- }
- // Always search sites/all/*.
- $searchdir[] = 'sites/all/' . $directory;
- // Also search sites/<domain>/*.
- if (file_exists("$config/$directory")) {
- $searchdir[] = "$config/$directory";
- }
- // Retrieve list of directories.
- // @todo Core: Allow to scan for directories.
- $directories = array();
- $nomask = array('CVS');
- foreach ($searchdir as $dir) {
- if (is_dir($dir) && $handle = opendir($dir)) {
- while (FALSE !== ($file = readdir($handle))) {
- if (!in_array($file, $nomask) && $file[0] != '.') {
- if (is_dir("$dir/$file")) {
- $directories[$file] = "$dir/$file";
- }
- }
- }
- closedir($handle);
- }
- }
- return $directories;
- }
- /**
- * library to filesystem connector path
- */
- function elfinder_connector_path() {
- return elfinder_lib_path() . '/php/elFinder.class.php';
- }
- /**
- * path to files directory
- */
- function elfinder_file_directory_path($absolute = FALSE) {
- $path = variable_get('elfinder_settings_filesystem_root_custom', '');
- $path = elfinder_parse_path_tokens($path);
- return $path;
- }
- /**
- * Returning site document root
- */
- function elfinder_document_root() {
- return realpath('');
- }
- /**
- * replace path tokens to its values (%uid, %user, etc)
- */
- function elfinder_parse_path_tokens($unparsed_path) {
- global $user, $language;
- $path = $unparsed_path;
-
- $uname = isset($user->name) ? preg_replace('/[[:^alnum:]]+/', '', $user->name) : '';
- $langCode = isset($language->language) ? $language->language : 'en';
-
- $path_tokens = array(
- '%uid' => $user->uid,
- '%name' => $uname,
- '%user' => $uname,
- '%files' => elfinder_default_directory_path(),
- '%lang' => $langCode,
- );
- $path = strtr($path, $path_tokens);
- if (function_exists('token_replace')) {
- $node = null;
-
- if (module_exists('og_context') AND isset($_SESSION['og_context']['gid'])) {
- $gid = $_SESSION['og_context']['gid'];
- $node = node_load($gid);
- }
-
- $path = token_replace($path, array('node' => $node, 'user' => $user));
- }
-
- return $path;
- }
- /**
- * default path to files directory
- */
- function elfinder_default_directory_path() {
- $filepath = '';
- $scheme = file_default_scheme();
-
- if ($scheme == 'public') {
- $filepath = variable_get('file_public_path', conf_path() . '/files');
- } else {
- $filepath = variable_get('file_private_path', conf_path());
- }
-
- return $filepath;
- }
- /**
- * files directory url
- */
- function elfinder_file_directory_url($force_relative = FALSE) {
- global $base_root;
- $fileurl = '';
- $fileurl = variable_get('elfinder_settings_filesystem_url_custom', '') . '/';
- if ($fileurl) {
- $fileurl = elfinder_parse_path_tokens($fileurl);
- }
- // Cutting off absolute url prefix
- if ($force_relative) {
- $fileurl = str_replace($base_root, '', $fileurl);
- }
-
- return $fileurl;
- }
- /**
- * prepare directory for files
- */
- function elfinder_prepare_directory($directory) {
- $rc = file_prepare_directory($directory, FILE_CREATE_DIRECTORY);
- return $rc;
- }
- /**
- * Add css
- */
- function elfinder_add_css($path, $options = array()) {
- return drupal_add_css($path, $options);
- }
- /**
- * Removing unwanted css
- */
- function elfinder_browser_css() {
- $css = drupal_add_css();
- $rms = array();
-
- if (module_exists('admin_menu')) {
- $apath = drupal_get_path('module', 'admin_menu');
- $atpath = drupal_get_path('module', 'admin_menu_toolbar');
- $rms[] = isset($apath) ? $apath : '';
- $rms[] = isset($atpath) ? $atpath : '';
- foreach (array_keys($css) as $k) {
-
- foreach ($rms as $rm) {
- if (preg_match('|' . $rm . '|', $k) && $rm != '') {
-
- unset($css[$k]);
- }
- }
- }
- }
-
- return drupal_get_css($css);
- }
- /**
- * Removing unwanted js
- */
- function elfinder_browser_js() {
- $js = drupal_add_js(NULL, array('scope' => 'header'));
-
- if (module_exists('admin_menu')) {
-
- $apath = drupal_get_path('module', 'admin_menu');
- $atpath = drupal_get_path('module', 'admin_menu_toolbar');
- $rms[] = isset($apath) ? $apath : '';
- $rms[] = isset($atpath) ? $atpath : '';
- foreach (array_keys($js) as $k) {
- foreach ($rms as $rm) {
- if (preg_match('|' . $rm . '|', $k) && $rm != '') {
- unset($js[$k]);
- }
- }
- }
- }
- return drupal_get_js('header', $js);
- }
- function elfinder_system_listing($matchexpr, $path, $arg1, $arg2) {
- return drupal_system_listing("/$matchexpr/", $path, $arg1, $arg2);
- }
- function elfinder_get_drupal_file_obj($uri) {
- global $user;
- $file = NULL;
-
- $fid = db_select('file_managed', 'f')
- ->condition('uri', rawurldecode($uri))
- ->fields('f', array('fid'))
- ->execute()
- ->fetchField();
- if ($fid) {
- $file = file_load($fid);
- }
- else {
- $file = new StdClass;
- $file->uid = $user->uid;
- $file->filename = basename($uri);
- $file->uri = $uri;
- $file->filemime = file_get_mimetype($uri);
- if (is_file(drupal_realpath($uri))) {
- $file->filesize = filesize($uri);
- // Use the file_entity module's mimetype to entity type
- // functionality if we have that method available.
- if (function_exists('file_entity_file_type')) {
- $types = file_entity_file_type($file);
- if (count($types) > 0) {
- $file->type = $types[0];
- } else {
- $file->type = 'default';
- }
- } else {
- list($type) = explode("/", $file->filemime);
- switch($type) {
- case 'image':
- case 'video':
- $file->type = $type;
- break;
- default:
- $file->type = 'default';
- break;
- }
- }
- }
- $file->timestamp = REQUEST_TIME;
- $file->status = FILE_STATUS_PERMANENT;
- }
- return $file;
- }
- function elfinder_file_download($uri) {
- if (variable_get('elfinder_settings_filesystem_handleprivate', 'true') == 'true') {
- global $user;
-
- $accessown = 'download own uploaded files';
- $accessall = 'download all uploaded files';
-
- $info = elfinder_get_drupal_file_obj($uri);
- if (($info->uid == $user->uid && user_access($accessown)) || user_access($accessall)) {
-
- $disposition = preg_match("/^(text|image)\//", $info->filemime) ? 'inline' : 'attachment';
- return array(
- 'Content-Type' => $info->filemime,
- 'Content-Length' => $info->filesize,
- 'Content-Disposition' => elFinderDrupal::GetContentDisposition($info->filename, $info->filemime, FALSE),
- );
-
- }
-
- return NULL;
- }
- }
- function elfinder_admin_profile_get($name = '') {
- $q = db_select('elfinder_profile', 'p')->fields('p', array('pid', 'name', 'description', 'settings'));
-
- if ($name) {
- $q->condition('p.name', $name);
- }
-
- $result = $q->execute();
-
- $profile = array();
-
- foreach ($result as $record) {
- $row = $record;
- $row->settings = unserialize($row->settings);
- $profile[] = $row;
- }
-
- if (count($profile) == 1) {
- $profile = $profile[0];
- }
-
- return $profile;
- }
- function elfinder_block_info() {
- // Makes it show up on /admin/build/block page.
- $blocks = array();
- $blocks[0]['info'] = t('File Manager');
- return $blocks;
- }
- function elfinder_block_view() {
- // Show the block.
- $block = array();
- $block['subject'] = t('File Manager');
- $block['content'] = elfinder_file_browser('backend');
- return $block;
- }
- /**
- * Implements hook_ckeditor_settings_alter().
- */
- function elfinder_ckeditor_settings_alter(&$settings, $conf) {
- $width = variable_get('elfinder_settings_misc_manager_width', '');
- if(!$width) {
- $width = ELFINDER_POPUP_WIDTH;
- }
- $height = variable_get('elfinder_settings_misc_manager_height', '');
- if(!$height) {
- $height = ELFINDER_POPUP_HEIGHT;
- }
- $settings['js_conf']['filebrowserWindowWidth'] = $width;
- $settings['js_conf']['filebrowserWindowHeight'] = $height;
- }
|