Changeset 3477842
- Timestamp:
- 03/09/2026 08:23:01 AM (3 weeks ago)
- Location:
- file-manager-advanced/trunk
- Files:
-
- 1 added
- 6 edited
-
application/assets/js/elfinder_script.js (modified) (2 diffs)
-
application/class_fma_connector.php (modified) (5 diffs)
-
application/class_fma_local_filesystem.php (added)
-
application/pages/main.php (modified) (1 diff)
-
constants.php (modified) (1 diff)
-
file_manager_advanced.php (modified) (2 diffs)
-
readme.txt (modified) (19 diffs)
Legend:
- Unmodified
- Added
- Removed
-
file-manager-advanced/trunk/application/assets/js/elfinder_script.js
r3452622 r3477842 363 363 } 364 364 365 // Persistent hover handling for errors using CodeMirror coordinates365 // Hover tooltip: CodeMirror coordsChar() "page" mode needs document coords (pageX/pageY) 366 366 var wrapper = editor.getWrapperElement(); 367 367 jQuery(wrapper).on('mousemove.fma-debug', function (e) { 368 368 if (!hasErrors || currentErrors.length === 0) return; 369 369 370 var coords = editor.coordsChar({ left: e.clientX, top: e.clientY }); 370 var docLeft = e.pageX != null ? e.pageX : (e.clientX + (window.scrollX || document.documentElement.scrollLeft || 0)); 371 var docTop = e.pageY != null ? e.pageY : (e.clientY + (window.scrollY || document.documentElement.scrollTop || 0)); 372 var coords = editor.coordsChar({ left: docLeft, top: docTop }, 'page'); 373 if (coords.outside) return; 371 374 var error = getErrorForLine(coords.line); 372 375 … … 414 417 workerBaseUrl: afm_object.plugin_url + 'application/library/js/worker/', 415 418 }); 419 420 // Override search command to add contentTag parameter for content search (after init) 421 function applyContentSearchOverride(fm) { 422 if (!fm || !fm._commands || !fm._commands.search) return; 423 if (fm._commands.search._fmaContentSearchPatched) return; 424 fm._commands.search._fmaContentSearchPatched = true; 425 var originalSearchExec = fm._commands.search.exec; 426 427 // Override exec method to add contentTag for SearchTag type 428 fm._commands.search.exec = function(q, target, mime, type) { 429 var self = this; 430 var sType = type || ''; 431 432 // If SearchTag type, we need to send contentTag parameter 433 if (sType === 'SearchTag' && q) { 434 var contentTag = q; // Store the tag 435 var fm = this.fm; 436 var reqDef = []; 437 var onlyMimes = fm.options.onlyMimes; 438 var phash, targetVolids = []; 439 440 // Custom setType function that encodes tag in q parameter for SearchTag 441 var setType = function(data) { 442 if (sType && sType !== 'SearchName' && sType !== 'SearchMime') { 443 data.type = sType; 444 } 445 if (sType === 'SearchTag') { 446 data.q = '__CONTENT_SEARCH__:' + contentTag; 447 } 448 return data; 449 }; 450 451 var rootCnt; 452 453 // Process target 454 if (typeof target == 'object') { 455 mime = target.mime || ''; 456 target = target.target || ''; 457 } 458 target = target ? target : ''; 459 460 // Process mimes 461 if (mime) { 462 mime = jQuery.trim(mime).replace(',', ' ').split(' '); 463 if (onlyMimes.length) { 464 mime = jQuery.map(mime, function(m) { 465 m = jQuery.trim(m); 466 return m && (jQuery.inArray(m, onlyMimes) !== -1 467 || jQuery.grep(onlyMimes, function(om) { return m.indexOf(om) === 0 ? true : false; }).length 468 ) ? m : null; 469 }); 470 } 471 } else { 472 mime = [].concat(onlyMimes); 473 } 474 475 fm.trigger('searchstart', setType({query: '', target: target, mimes: mime})); 476 477 if (!onlyMimes.length || mime.length) { 478 if (target === '' && fm.api >= 2.1) { 479 rootCnt = Object.keys(fm.roots).length; 480 jQuery.each(fm.roots, function(id, hash) { 481 reqDef.push(fm.request({ 482 data: setType({cmd: 'search', target: hash, mimes: mime}), 483 notify: {type: 'search', cnt: 1, hideCnt: (rootCnt > 1 ? false : true)}, 484 cancel: true, 485 preventDone: true 486 })); 487 }); 488 } else { 489 reqDef.push(fm.request({ 490 data: setType({cmd: 'search', target: target, mimes: mime}), 491 notify: {type: 'search', cnt: 1, hideCnt: true}, 492 cancel: true, 493 preventDone: true 494 })); 495 if (target !== '' && fm.api >= 2.1 && Object.keys(fm.leafRoots).length) { 496 jQuery.each(fm.leafRoots, function(hash, roots) { 497 phash = hash; 498 while (phash) { 499 if (target === phash) { 500 jQuery.each(roots, function() { 501 var f = fm.file(this); 502 f && f.volumeid && targetVolids.push(f.volumeid); 503 reqDef.push(fm.request({ 504 data: setType({cmd: 'search', target: this, mimes: mime}), 505 notify: {type: 'search', cnt: 1, hideCnt: false}, 506 cancel: true, 507 preventDone: true 508 })); 509 }); 510 } 511 phash = (fm.file(phash) || {}).phash; 512 } 513 }); 514 } 515 } 516 } else { 517 reqDef = [jQuery.Deferred().resolve({files: []})]; 518 } 519 520 fm.searchStatus.mixed = (reqDef.length > 1) ? targetVolids : false; 521 522 return jQuery.when.apply(jQuery, reqDef).done(function(data) { 523 var argLen = arguments.length, i; 524 data.warning && fm.error(data.warning); 525 if (argLen > 1) { 526 data.files = (data.files || []); 527 for (i = 1; i < argLen; i++) { 528 arguments[i].warning && fm.error(arguments[i].warning); 529 if (arguments[i].files) { 530 data.files.push.apply(data.files, arguments[i].files); 531 } 532 } 533 } 534 data.files && data.files.length && fm.cache(data.files); 535 fm.lazy(function() { 536 fm.trigger('search', data); 537 }).then(function() { 538 return fm.lazy(function() { 539 fm.trigger('searchdone'); 540 }); 541 }).then(function() { 542 data.sync && fm.sync(); 543 }); 544 }); 545 } else { 546 return originalSearchExec.call(self, q, target, mime, type); 547 } 548 }; 549 } 550 if (elfinder_object && elfinder_object.length) { 551 var fm = elfinder_object.elfinder('instance'); 552 if (fm) { 553 fm.one('init', function() { applyContentSearchOverride(fm); }); 554 applyContentSearchOverride(fm); 555 } 556 } 557 558 // When user clears search and presses Enter (or closes search), go back to folder they were in before search 559 if (elfinder_object && elfinder_object.length) { 560 var fm = elfinder_object.elfinder('instance'); 561 if (fm) { 562 var cwdBeforeSearch = null; 563 fm.bind('searchstart', function() { 564 var cwd = fm.cwd(); 565 if (cwd && cwd.hash) { 566 cwdBeforeSearch = cwd.hash; 567 } 568 }); 569 fm.bind('searchend', function() { 570 if (cwdBeforeSearch && fm.file(cwdBeforeSearch)) { 571 fm.exec('open', cwdBeforeSearch); 572 } 573 cwdBeforeSearch = null; 574 }); 575 } 576 } 577 578 // Add Content search radio button after elFinder is initialized 579 if (elfinder_object && elfinder_object.length) { 580 var fm = elfinder_object.elfinder('instance'); 581 if (fm) { 582 var addContentRadioButton = function() { 583 var searchMenu = jQuery('.elfinder-button-search-menu'); 584 if (searchMenu.length) { 585 var namespace = fm.namespace || 'elfinder-'; 586 var id = function(name) { 587 return namespace + (fm.escape ? fm.escape(name) : name); 588 }; 589 590 var searchTypeSet = searchMenu.find('.elfinder-search-type'); 591 if (searchTypeSet.length && !searchTypeSet.find('#' + id('SearchTag')).length) { 592 var tagRadio = jQuery('<input id="' + id('SearchTag') + '" name="serchcol" type="radio" value="SearchTag"/>'); 593 var tagLabel = jQuery('<label for="' + id('SearchTag') + '">Content</label>'); 594 595 searchTypeSet.append(tagRadio).append(tagLabel); 596 searchTypeSet.buttonset('refresh'); 597 598 // Remember search type when target is "Here", so we can restore only when user had chosen Content then switched to "All" 599 var lastSearchTypeWhenHere = null; 600 601 var updateContentState = function() { 602 var isHere = jQuery('#' + id('SearchFromCwd')).prop('checked'); 603 var tagRadio = jQuery('#' + id('SearchTag')); 604 var tagLabel = tagRadio.next('label'); 605 606 if (tagRadio.length) { 607 if (isHere) { 608 tagRadio.prop('disabled', false); 609 tagLabel.css({'opacity': '1', 'cursor': 'pointer'}); 610 // Restore Content when switching back to "Here" if it was selected before 611 if (lastSearchTypeWhenHere === 'SearchTag') { 612 tagRadio.prop('checked', true); 613 searchTypeSet.buttonset('refresh'); 614 } 615 } else { 616 tagRadio.prop('disabled', true); 617 tagLabel.css({'opacity': '0.5', 'cursor': 'not-allowed'}); 618 if (tagRadio.prop('checked')) { 619 lastSearchTypeWhenHere = 'SearchTag'; // was Content before switching to All 620 jQuery('#' + id('SearchName')).prop('checked', true).trigger('change'); 621 searchTypeSet.buttonset('refresh'); 622 } 623 } 624 } 625 }; 626 627 // When user changes search type while target is "Here", remember it 628 searchMenu.off('change.contentsearch', 'input[name="serchcol"]').on('change.contentsearch', 'input[name="serchcol"]', function() { 629 if (jQuery('#' + id('SearchFromCwd')).prop('checked')) { 630 var val = jQuery(this).val(); 631 if (val) lastSearchTypeWhenHere = val; 632 } 633 }); 634 635 searchMenu.off('change.contentsearch', 'input[name="serchfrom"]').on('change.contentsearch', 'input[name="serchfrom"]', updateContentState); 636 updateContentState(); 637 } 638 } 639 }; 640 641 jQuery(document).on('click focus', '.elfinder-button-search input[type="text"]', function() { 642 setTimeout(addContentRadioButton, 200); 643 }); 644 645 fm.bind('open', function() { 646 setTimeout(addContentRadioButton, 500); 647 }); 648 649 setTimeout(addContentRadioButton, 1000); 650 } 651 } 416 652 }); -
file-manager-advanced/trunk/application/class_fma_connector.php
r3410804 r3477842 30 30 if ( !function_exists( 'elFinderAutoloader' ) ) { 31 31 require 'library/php/autoload.php'; 32 } 33 34 // Load custom filesystem driver for content search 35 if (defined('FMAFILEPATH')) { 36 require_once FMAFILEPATH . 'application/class_fma_local_filesystem.php'; 37 } else { 38 require_once dirname(__FILE__) . '/class_fma_local_filesystem.php'; 32 39 } 33 40 … … 105 112 // Items volume 106 113 array( 107 'driver' => ' LocalFileSystem', // driver for accessing file system (REQUIRED)114 'driver' => 'fma_local_filesystem', // custom driver with content search support 108 115 'path' => $path, // path to files (REQUIRED) 109 116 'URL' => $url, // URL to files (REQUIRED) … … 117 124 'acceptedName' => current_user_can('manage_options') ? '' : 'afm_plugin_file_validName', 118 125 'uploadMaxSize' => $max_upload_size, 126 'searchTimeout' => 300, 119 127 'attributes' => array( 120 128 array( … … 147 155 ); 148 156 $opts['bind']['upload'] = array( $this, 'on_upload_event' ); 157 $opts['bind']['search.pre'] = array( $this, 'on_search_command' ); 149 158 $opts = apply_filters( 'fma__opts_override', $opts ); 150 159 … … 180 189 $file_content = $svg_sanitizer->sanitize( $file_content ); 181 190 file_put_contents( $file_path, $file_content ); 191 } 192 } 193 } 194 195 /** 196 * Intercept search command to handle content search tag parameter 197 * This hook is called before the search command executes 198 * We decode the tag from q parameter which contains special marker 199 */ 200 public function on_search_command( $cmd, &$args, $elfinder, $volume ) { 201 if ( $cmd === 'search' ) { 202 $type = !empty( $args['type'] ) ? $args['type'] : ''; 203 $q = !empty( $args['q'] ) ? trim( $args['q'] ) : ''; 204 205 // Content search: type is SearchTag and/or q contains our marker 206 if ( $type === 'SearchTag' || strpos( $q, '__CONTENT_SEARCH__:' ) === 0 ) { 207 $tag = ''; 208 if ( strpos( $q, '__CONTENT_SEARCH__:' ) === 0 ) { 209 $tag = substr( $q, strlen( '__CONTENT_SEARCH__:' ) ); 210 } elseif ( $type === 'SearchTag' && $q !== '' ) { 211 $tag = $q; // default elFinder sends type=SearchTag and q=term (no marker) 212 } 213 if ( $tag !== '' ) { 214 elFinderVolumefma_local_filesystem::setContentSearchTag( $tag ); 215 $args['q'] = ''; 216 } else { 217 elFinderVolumefma_local_filesystem::setContentSearchTag( '' ); 218 } 219 } else { 220 elFinderVolumefma_local_filesystem::setContentSearchTag( '' ); 182 221 } 183 222 } -
file-manager-advanced/trunk/application/pages/main.php
r3460523 r3477842 23 23 <?php } ?> 24 24 <hr class="wp-header-end"> 25 <?php if ( 'yes' !== $appsumo_banner_hide) { ?>25 <?php if (!class_exists('file_manager_advanced_shortcode') && 'yes' !== $appsumo_banner_hide) { ?> 26 26 <div class="fma-appsumo-banner" id="fma_appsumo_banner"> 27 27 <div class="fma-appsumo-content"> -
file-manager-advanced/trunk/constants.php
r3460523 r3477842 5 5 */ 6 6 if ( !defined('FMA_VERSION') ) { 7 define( 'FMA_VERSION', '5.4. 9' );7 define( 'FMA_VERSION', '5.4.10' ); 8 8 } 9 9 /** -
file-manager-advanced/trunk/file_manager_advanced.php
r3460523 r3477842 5 5 Description: Cpanel for files management in wordpress 6 6 Author: wpexpertsio 7 Version: 5.4. 97 Version: 5.4.10 8 8 Author URI: https://wpexperts.io 9 9 License: GPLv2 … … 15 15 * @package Advance File Manager 16 16 */ 17 18 // Some hosting environments (e.g. locked-down managed hosts) disable core streaming 19 // functions like fpassthru(). elFinder and cloud drivers rely on fpassthru() for 20 // efficient streaming (PDFs, large files). If it's disabled, PHP removes the 21 // internal function, so we provide a safe polyfill here. 22 if ( ! function_exists( 'fpassthru' ) ) { 23 function fpassthru( $handle ) { 24 if ( ! is_resource( $handle ) ) { 25 return 0; 26 } 27 $bytes = 0; 28 while ( ! feof( $handle ) ) { 29 $chunk = fread( $handle, 8192 ); 30 if ( $chunk === false ) { 31 break; 32 } 33 $bytes += strlen( $chunk ); 34 echo $chunk; 35 } 36 return $bytes; 37 } 38 } 17 39 18 40 if ( ! function_exists( 'fma_fs' ) ) { -
file-manager-advanced/trunk/readme.txt
r3460523 r3477842 1 === Advanced File Manager – Ultimate WP File ManagerAnd Document Library Solution ===1 === Advanced File Manager – Ultimate File Manager for WordPress And Document Library Solution === 2 2 Contributors: wpexpertsio, saadiqbal 3 3 Tags: file-manager, wp-file-manager, document management, ftp, advance-file-manager 4 4 Requires at least: 4.0 5 Tested up to: 6.9 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.0 7 Stable tag: 5.4. 97 Stable tag: 5.4.10 8 8 License: GPLv2 or later 9 9 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 12 12 13 13 == Description == 14 [📢 A Pro version Lifetime Deal is available ⏰](https://advancedfilemanager.com/appsumo-lifetime-deal?utm_source=wp_org&utm_medium=readme&utm_campaign=ltd) 15 16 [Live Demo](https://filemanageradvanced-demo.instawp.xyz/?utm_source=wp_org&utm_medium=readme&utm_campaign=live_demo) | [Documentation](https://advancedfilemanager.com/documentation/?utm_source=wp_org&utm_medium=readme&utm_campaign=documentation) | [Support](https://objectsws.atlassian.net/servicedesk/customer/portal/37) 14 15 📢 [A Pro version Lifetime Deal is available](https://advancedfilemanager.com/appsumo-lifetime-deal/?utm_source=wp_org&utm_medium=readme&utm_campaign=ltd)⏰ 16 17 [Buy Pro](https://advancedfilemanager.com/pricing/?utm_source=wp_org&utm_medium=readme&utm_campaign=buy_now) | [Live Demo](https://filemanageradvanced-demo.instawp.xyz/?utm_source=wp_org&utm_medium=readme&utm_campaign=live_demo) | [Documentation](https://advancedfilemanager.com/documentation/?utm_source=wp_org&utm_medium=readme&utm_campaign=documentation) | [Support](https://objectsws.atlassian.net/servicedesk/customer/portal/37) 17 18 18 19 **Manage WordPress files and create document libraries with ease!** … … 22 23 If that is the case, then ✨ **Download Advanced File Manager Now!** ✨ 23 24 24 With this WordPress file manager plugin, you can perform multiple file operations, such as **Copy, Paste, Rename, Edit, Delete, Upload, Download, Create an archive (Zip archive), etc.,** directly from the WordPress dashboard—no need for any cPanel or FTP or other hosting panels. 25 26 The best part is that this WordPress file manager plugin also allows you to access files outside of the WordPress root directory—which means you can **create document libraries/download managers** as well. 😃 27 28 Whether you are a developer managing large files or a casual user needing basic file operations, this plugin has something for everyone. 29 30 31 ### ⚡ Key Features That Make WordPress File Management a Breeze! 25 With this WordPress file manager plugin, you can perform multiple file operations, such as **Copy, Paste, Rename, Edit, Delete, Upload, Download, Create an archive (Zip archive), etc.,** directly from the WordPress dashboard—no need for any cPanel, FTP or other hosting panels. 26 27 The best part is that this WordPress file manager plugin also allows you to access files outside of the WordPress root directory, which means you can create a fully functional document library with download controls as well. 😃 28 29 30 Whether you are a developer or a beginner, this file management plugin has something for everyone. 31 32 33 ### ⚡ Key Features That Make This WordPress File Manager a Complete File Management Solution! 32 34 33 35 ✅ **Flexible Root Directory Access:** You can easily set and modify the root directory path, which allows you to access specific files according to your development requirements. … … 35 37 ✅ **Access to Internal and External Directories:** Gain complete control over files located both within and outside your WordPress root directory, making file management more flexible. 36 38 37 ✅ **Frontend File Management [Pro]:** Use shortcodes to enable logged-in and non-logged-in users to manage files on the front end. You can also control access by user roles and permissions.39 ✅ **Frontend File Management [Pro]:** Use the dedicated Advanced File Manager block or shortcode to provide logged-in and non-logged-in users access to manage files on the front end. You can also control access by user roles and permissions. 38 40 39 41 ✅ **Complete File Operations:** Perform all essential file operations such as copy, paste, rename, edit, delete, upload, download, and even create an archive (Zip archive) directly from your WordPress dashboard. … … 41 43 ✅ **Quick PDF Previews:** Save time by easily previewing PDF documents directly in the plugin without needing to download them first. 42 44 43 ✅ **FTP-Free File Management:** The plugin acts as an alternative to traditional FTP clients andallows you to manage files securely from within WordPress.45 ✅ **FTP-Free File Management:** This WordPress file manager acts as a secure alternative to traditional FTP clients that allows you to manage files securely from within WordPress. 44 46 45 47 ✅ **Path Privacy Protection:** Hide the actual file paths from users to enhance security and protect sensitive information on your site. 46 48 47 ✅ **Drag-and-Drop File Interface:** Easily upload and move files by dragging and dropping them into the plugin interface to speed up your workflow.48 49 ✅ **Icon and List View Options:** Switch between icon and list views to find the most convenient way of navigating your files and folders.50 51 ✅ **Directory Size Calculation:** Instantly calculate the size of directories to better manage storage and optimize your site’s resources.52 53 ✅ **Archive Management:** Create or extract various archive formats, including ZIP, RAR, 7Z, TAR, GZIP, and BZIP2, without leavingWordPress.49 ✅ **Drag-and-Drop File Interface:** Use drag and drop file upload to easily upload and move files within the interface. 50 51 ✅ **Icon and List View Options:** Use this file organizer for WordPress to switch between icon and list views for easier navigation. 52 53 ✅ **Directory Size Calculation:** Instantly calculate directory sizes using this practical file organizer for WordPress. 54 55 ✅ **Archive Management:** Easily zip and extract archives in multiple formats (ZIP, RAR, 7Z, TAR, GZIP, and BZIP2) directly from WordPress. 54 56 55 57 ✅ **Themes for File Manager:** Choose between light and elegant themes to create a visually appealing and comfortable file management user interface. … … 57 59 ✅ **Keyboard Shortcuts:** Speed up your file management tasks by using a range of keyboard shortcuts for common operations. 58 60 59 ✅ **Debug in Code Editor:** Identify and fix issues directly in the editorto prevent fatal errors and ensure smooth site performance.60 61 ✅ **Media Previews:** Preview video and audio files directly from the interface, ensuring quick checks without downloading them.61 ✅ **Debug in Code Editor:** Identify and fix issues directly in the file editor (code editor) to prevent fatal errors and ensure smooth site performance. 62 63 ✅ **Media Previews:** Simplify media file management by previewing video and audio files instantly. 62 64 63 65 ✅ **Large Files & Folder Upload Support:** The file manager allows you to upload large files and folders quickly by uploading them in chunks, ensuring a smoother file transfer process. 64 66 65 ✅ **Advanced File Search and Sorting:** Quickly find and organize your files using advanced search and sorting capabilities, helping you save time during file management.66 67 ✅ **Thumbnails for Images:** View image thumbnails directly within the file manager, which helps in quickly identifying visual content.67 ✅ **Advanced File Search and Sorting:** Quickly find and organize your files with a smart file organizer for WordPress. 68 69 ✅ **Thumbnails for Images:** Improve media file management with built-in image thumbnails, which helps in quickly identifying visual content. 68 70 69 71 ✅ **Rich Context Menu and Toolbar:** Access frequently used file operations through a rich context menu and toolbar, making navigation faster and more intuitive. 70 72 71 ✅ **Multi-Selection:** Select multiple files or folders at once to perform bulk operations such as moving or deleting.73 ✅ **Multi-Selection:** Select multiple files or folders at once to perform bulk operations and improve folder structure. 72 74 73 75 ✅ **Responsive Design:** The plugin’s responsive design ensures that it works flawlessly on tablets and smartphones, providing a consistent experience across all devices. … … 77 79 ✅ **File Sanitization and UTF-8 Normalization:** Ensure proper file naming and avoid errors with built-in sanitization and UTF-8 normalization of file names and paths. 78 80 79 ✅ **High-Performance Backend**: Th e plugin offers a high-performance server backend that ensuressmooth and fast file operations.80 81 ✅ **Recent Directory Access:** Quickly return to previously opened folders. It saves you time by easily jumping to your most recent navigation paths .81 ✅ **High-Performance Backend**: This file management plugin offers a high-performance server backend for smooth and fast file operations. 82 83 ✅ **Recent Directory Access:** Quickly return to previously opened folders. It saves you time by easily jumping to your most recent navigation paths from the folder structure. 82 84 83 85 ✅ **Email Notifications:** Get notified by email whenever a file or folder is created or deleted. Admins receive alerts for this activity, and users are informed when their files are removed, keeping everyone updated without needing to check manually. … … 87 89 ###⚡ **Manage and Display Document Libraries and File Manager in Front-end [Pro Version]— Key Features** 88 90 89 The Shortcode Addon for Advanced File Manager unlocks even more possibilities by providing a range of customizable features for managing WordPress files and creating document libraries. Below are the key features of this Pro version add-on: 90 91 ✔️ **Frontend Access for Logged-In Users:** Allow logged-in users to manage files directly from the front end of your website. 92 93 ✔️ **Gutenberg Block & Shortcode Support:** Display your Document library or file manager with limited user access in the front end with easy to use Gutenberg block and shortcode. 94 95 ✔️ **Public File Access for Visitors:** Enable non-logged-in users or visitors to access and manage files on the front end, which allows you to offer document sharing and public file access. 96 97 ✔️ **Role-Based File Access Control:** Restrict file access based on user roles, allowing you to define who can view, edit, or delete files on your website. 91 The premium version of Advanced File Manager unlocks even more possibilities by providing a range of customizable features for managing WordPress files, creating document libraries, and offering cloud integration with WordPress file manager. 92 Below are the key premium features: 93 94 95 ✔️ **Frontend Access for Logged-In Users:** Enable a secure frontend file manager for logged-in users. 96 97 ✔️ **Elementor, Divi, and WordPress Block Support:** Display your Document library or file manager on the front end of your favorite page builder via Advanced File Manager Block or shortcode. 98 99 ✔️ **PHP Debug in Code Editor:**Enables developers to run and debug PHP code directly inside the file manager’s editor for quick troubleshooting. 100 101 ✔️ **WordPress Database Access (Adminer Data Manager):**With WP Adminer integration, you can securely access and manage the WordPress database. 102 103 ✔️ **File Logs:** Get detailed logs of complete file operations, including Log ID, User, Date & Time, Event Type, File Path, File Type, and IP Address. It helps you track changes, errors, and activities for better transparency and auditing. 104 105 ✔️ **Public File Access for Visitors:** Enable visitors (non-logged-in users) to access resources through a structured document library. 106 107 ✔️ **Role-Based File Access Control:** Implement role-based access control to restrict file access by user roles, allowing you to define who can view, edit, or delete files on your website. 98 108 99 109 ✔️ **Individual User Access Control:** Control file access access on a user-by-user basis, blocking or restricting specific users from accessing particular files or folders. 100 110 101 ✔️ **Private Folder Access:** Create secure , private folder pathsfor specific users or groups, ensuring only authorized individuals can access sensitive files.111 ✔️ **Private Folder Access:** Create secure folders within your document library for specific users or groups, ensuring only authorized individuals can access sensitive files. 102 112 103 113 ✔️ **Hide Sensitive Files and Folders:** Protect sensitive files by hiding them from specific users or from the public view and ensure privacy. 104 114 105 ✔️ **Personalized User Folders:** Assign users a personal folder for storing and managing their documents, helping them organize and manage their files in a secure, individualized space.115 ✔️ **Personalized User Folders:** Assign users personal folders using this flexible file organizer for WordPress, helping them organize and manage their files in a secure, individualized space. 106 116 107 117 ✔️ **Themes Selection:** Choose from a variety of themes to match the front-end file manager and document library/download manager with your site’s design and branding. … … 109 119 ✔️ **Multilingual Support for Global Access:** Enable language customization to present the file manager interface in your visitors’ preferred language, ideal for global users. 110 120 111 ✔️ **Operations Control for Users:** Control which actions users can perform, such as uploading, downloading, or deleting files, via shortcode for precise file management.121 ✔️ **Operations Control for Users:** Manage file access permissions to control which actions users can perform, such as uploading, downloading, or deleting files, via shortcode for precise file management. 112 122 113 123 ✔️ **Flexible View Options (Grid/List):** Switch between grid and list views for better navigation of file manager and document libraries/download manager that adapts to various user preferences. 114 124 115 ✔️ **Dropbox:** Connect your Dropbox cloud storage to WordPress and manage, upload, and sync files directly from the dashboard—no switching tabs or tools needed.116 117 ✔️ **Google Drive:** Easily link Google Drive with WordPress to access, manage, and sync your cloud files right from the file manager interface.118 119 ✔️ **OneDrive:** Seamlessly connect your OneDrive account to WordPress and manage, upload, and organize files directly from the File Manager—no external tabs or tools required.120 121 ✔️ **Amazon S3:** Seamlessly connect your Amazon S3 account to WordPress and manage, upload, and organize files directly from the File Manager—no external tabs or tools required.125 ✔️ **Dropbox:** Enable seamless cloud storage integration with Dropbox to sync files directly from your dashboard. 126 127 ✔️ **Google Drive:** Improve productivity with cloud storage integration for Google Drive 128 129 ✔️ **OneDrive:**Use cloud storage integration to manage OneDrive files inside WordPress. 130 131 ✔️ **Amazon S3:**Activate cloud storage integration to connect Amazon S3 with WordPress. 122 132 123 133 ✔️ **pCloud:** Seamlessly connect your pCloud account to WordPress and manage, upload, and organize files directly from the File Manager, no external tabs or tools required. … … 136 146 ### Benefits of Using a WordPress File Manager Plugin Instead of an FTP 137 147 138 Using a file manager plugin like Advanced File Manager offers numerous advantages over traditional FTP clients. Here are some key benefits:148 Using a WordPress file manager like Advanced File Manager offers numerous advantages over traditional FTP tools.: 139 149 Ease of Use: No need for technical expertise or additional software—everything is accessible from your WordPress dashboard. 140 150 … … 143 153 * **Quick Access:** Access files directly from the WordPress admin area without switching to another application. 144 154 145 * **Enhanced Security:** With built-in role and user restrictions, you can better control who can access files.155 * **Enhanced Security:** With built-in role-based access control, you can better control who can access files. 146 156 147 157 * **Convenient File Operations:** Perform all file operations with just a few clicks, eliminating the need for command-line instructions. … … 168 178 🌟 **Powerful Security Features** 169 179 170 * Restrict access by user roles and permissions.180 * Configure file access permissions by user roles and permissions. 171 181 172 182 * Hide file paths for added security. … … 196 206 * Enable multilingual support for global audiences. 197 207 198 * Limit user actions with advanced s hortcodes.208 * Limit user actions with advanced settings inside Blocks. 199 209 200 210 … … 216 226 * Clean, responsive design for all devices. 217 227 218 * Drag-and-drop functionality for quick uploads. 219 220 * File editing for quick changes. 221 222 223 ### ☁️ **Cloud Storage Apps Integration with WordPress** 224 225 Soon, you will be able to integrate your favorite cloud storage app with WordPress to manage files and document libraries. The list of cloud storage apps is as follows: 228 * Drag-and-drop file upload functionality. 229 230 * Make quick modifications using the integrated file editor (code editor). 231 232 ### AI-Powered Coding Assistant (NEW) 233 For developers, we have added an AI-powered coding assistant right into the code editor. You can now write functions, generate CSS or PHP, debug safely, and get instant explanations. It’s like having a coding partner, right inside your WordPress dashboard. 234 ### ☁️ **Cloud Apps Integration with WordPress** 235 236 You can integrate your favorite cloud apps with WordPress to manage files and document libraries. The list of cloud storage apps is as follows: 226 237 227 238 * [DropBox](https://advancedfilemanager.com/pricing/?utm_source=wp_org&utm_medium=readme&utm_campaign=dropbox) … … 239 250 * [Google Cloud](https://advancedfilemanager.com/pricing/?utm_source=wp_org&utm_medium=readme&utm_campaign=google_cloud) 240 251 252 * [Github](https://advancedfilemanager.com/pricing/?utm_source=wp_org&utm_medium=readme&utm_campaign=github) 253 254 * [Slack](https://advancedfilemanager.com/pricing/?utm_source=wp_org&utm_medium=readme&utm_campaign=slack) 255 241 256 ### 🤝 **Compatibility** 242 257 … … 279 294 **Step#3: Perform File Operations:** 280 295 281 * Use the toolbar or right-click to open the context menu to perform operations such as uploading, deleting, or moving files.296 * Use the toolbar or right-click to open the context menu to perform uploading tasks faster with advanced drag and drop file upload features. 282 297 283 298 284 299 **Step #4: Set User Restrictions (Pro Version):** 285 300 286 * Navigate to the Shortcodes settings if you have the Pro version. 287 288 * Define user roles, private folders, and operation permissions as needed. 289 301 * Navigate to the Blocks settings if you have the Pro version. 302 303 * Configure role-based access control, operation permissions for private folders. 290 304 291 305 **Step #5: Customize the Interface:** … … 322 336 323 337 = Can I create a ZIP archive of any folder or file and download it? = 324 Yes, you can archive any file or folder as a ZIP directly from the plugin interface and download itinstantly.338 Yes, you can zip and extract archives of any folder or file instantly. 325 339 326 340 = Does the plugin work like an FTP client? = … … 335 349 336 350 = Can I manage files on the front end of my website? = 337 Yes, with the Pro version, you can enable front-end file managementfor logged-in and non-logged-in users using shortcodes.351 Yes, with the Pro version, you can manage files using a powerful frontend file manager for logged-in and non-logged-in users using shortcodes. 338 352 339 353 = Is Advanced File Manager a secure alternative to FTP? = … … 394 408 == Changelog == 395 409 396 = 5.4.9 - February 13, 2026 = 410 = 5.4.10 - March 09, 2026 = 411 * Improvement – Added Content search feature in the File manager search bar. 412 413 = 5.4.9 - February 09, 2026 = 397 414 * Tweak – Updated the Integrations menu by adding new tabs for pCloud, Cloudflare R2, and DigitalOcean Spaces. 398 415 399 416 = 5.4.8 - February 03, 2026 = 400 * Fix –Resolved a script dependency conflict.417 * Fix - Resolved a script dependency conflict. 401 418 * Improvement - File Manager themes. 402 * Improvement –Added a complete data deletion option in settings to remove all plugin data upon uninstallation.419 * Improvement - Added a complete data deletion option in settings to remove all plugin data upon uninstallation. 403 420 404 421 = 5.4.7 - December 04, 2025 =
Note: See TracChangeset
for help on using the changeset viewer.