I-Soft File Manager: Foundation

I-Soft File Manager: Foundation

Details
View on WordPress

I-Soft File Manager: Foundation is a modular download manager built for modern WordPress, designed for organizations with many documents, a structured category tree, and editorial teams that need per-department write permissions.

Key features

  • Category-as-folder storage. Every isoft_fmf_category term maps 1:1 to a physical folder under wp-content/uploads/isoft-fmf-files/. Folder names mirror the category slug chain (skupstina-opstine/saziv-2025-2029/iv-sednica/). Rename a category slug and the folder renames on disk plus every affected file path updates in the database.
  • Drag-and-drop upload. Multi-file dropzone inside the download edit screen, with per-file progress bars. Files land directly in the target category folder.
  • “From Folder” browser. Files dropped into a category folder via SFTP, rclone, or any other external tool show up as untracked candidates in the admin. One click links them to a download.
  • Per-user category ACL. Assign each editor a set of allowed categories. They inherit access to the whole subtree. Admins are unrestricted. Non-allowed categories are hidden from their admin list, edit screens, and category picker.
  • Unpublished visibility control. Draft and private downloads are invisible to users whose allowed-category set doesn’t cover them — even to logged-in editors from other departments.
  • Secure download handler. Files live under an .htaccess-protected directory. All downloads route through a PHP handler with nonce verification, access-role checks, rate limiting, hotlink protection, and X-Sendfile / X-Accel-Redirect support.
  • Audit logging. Optional per-download log with timestamp, file, user, IP (detailed logging), user agent, and referer. Configurable retention.
  • Gutenberg blocks. Download List (with layout, filter, search, and subcategory toggle), Download Entry (embed a single download card), and Category Grid.
  • Classic editor shortcodes. [isoft_fmf_list], [isoft_fmf_download id="123"], [isoft_fmf_categories], [isoft_fmf_search].
  • Cyrillic filename and slug handling. Automatic Serbian Cyrillic Latin transliteration for category slugs, post slugs, and uploaded filenames (configurable extension allow-list, double-extension strip, 80-char cap).
  • License management. Assign licenses per download, with optional “require agreement before download” modal.
  • PDF thumbnails. Auto-generate post thumbnails from the first page of a PDF (requires the Imagick PHP extension).
  • REST API. Every taxonomy and the CPT are exposed to wp/v2 with custom endpoints for listing and searching.
  • Statistics dashboard. Per-file and per-download counts, with a nightly HOT recalculation of the top downloads.

Architecture

I-Soft File Manager: Foundation stores files outside the Media Library in a predictable per-category folder tree. This is the key difference from most download managers: the filesystem is the source of truth for what’s stored where. Moving a download to a different category auto-moves its files on disk; deleting a category blocks if any downloads still reference it.

This design exists so automation tools can sync files in and out without having to understand WordPress internals. Rclone mirroring a cloud folder, an SFTP drop from a government mainframe, or a scheduled scan — all just write to isoft-fmf-files/<slug-path>/ and the plugin picks them up.

Extensions (coming soon)

  • I-Soft File Manager: Sentinel — server-side automation. Monitors category folders for new files, creates draft download entries, and supports rclone mirroring, SFTP bulk upload, and WP-cron folder scans.
  • I-Soft File Manager: Orbit — Google Shared Drive sync. Departments drop files into shared folders; Orbit imports them as drafts for review.
  • I-Soft File Manager: Nomad — one-shot importer from jDownloads. Reads the legacy tables directly and rebuilds categories, downloads, files, and counters in Foundation’s data model, preserving the slug tree so URLs and category folder names stay stable.

Customizing appearance

I-Soft File Manager: Foundation exposes its styling via CSS custom properties on :root so you can recolor cards from Appearance Customize Additional CSS without writing any selectors.

Example — recolor the PDF icon to match your theme blue and soften card borders:

:root {
    --isoft-fmf-icon-pdf-bg: #1a73e8;
    --isoft-fmf-card-border: #ddd;
}

Available CSS variables

  • --isoft-fmf-card-bg — Card background
  • --isoft-fmf-card-border — Card and grid borders
  • --isoft-fmf-row-border — Per-file row separator
  • --isoft-fmf-title-band-bg — Grid-mode title band background
  • --isoft-fmf-meta-color — Date / size / count text
  • --isoft-fmf-empty-color — “No files available” text
  • --isoft-fmf-badge-hot-bg — HOT badge background
  • --isoft-fmf-badge-hot-color — HOT badge text
  • --isoft-fmf-icon-color — File-type icon/badge text
  • --isoft-fmf-icon-pdf-bg — PDF file color
  • --isoft-fmf-icon-doc-bg — DOC / DOCX color
  • --isoft-fmf-icon-xls-bg — XLS / XLSX color
  • --isoft-fmf-icon-ppt-bg — PPT / PPTX color
  • --isoft-fmf-icon-zip-bg — Archive (ZIP / RAR / 7Z) color
  • --isoft-fmf-icon-img-bg — Image color
  • --isoft-fmf-icon-vid-bg — Video color
  • --isoft-fmf-icon-aud-bg — Audio color
  • --isoft-fmf-icon-file-bg — Generic / unknown file color

Targeting individual classes

For deeper changes (layout, spacing, typography), all public classes use the .isoft-fmf- prefix with BEM naming. Key entry points:

  • .isoft-fmf-download-card — Outer wrapper around one download
  • .isoft-fmf-download-card__title — Multi-file card heading
  • .isoft-fmf-file-item — Per-file row
  • .isoft-fmf-file-item__icon — Large file-type tile (list mode only)
  • .isoft-fmf-file-item__title — File or download title link
  • .isoft-fmf-file-item__meta — Date / size / count meta block
  • .isoft-fmf-file-item__action — Action column (button or status label)
  • .isoft-fmf-download-btn — The action button (intentionally not theme-locked via CSS variables; targets WP wp-element-button so theme styling stays in control)
  • .isoft-fmf-meta--type — Inline file-type badge (grid mode only)
  • .isoft-fmf-badge--hot — HOT marker
  • .isoft-fmf-grid — Grid wrapper (use .isoft-fmf-grid--cols-3 etc. for per-column-count overrides)
  • .isoft-fmf-list-wrap — List wrapper
  • .isoft-fmf-category-grid — Category grid wrapper

Source code

Full source — including the un-minified React/JSX for the three Gutenberg blocks — is hosted publicly at:

https://github.com/I-SOFT-Mionica/isoft-fm-foundation

The compiled block bundles shipped under blocks/build/ are produced from blocks/<block-name>/{index,edit}.js via @wordpress/scripts (webpack). To rebuild from a clean checkout:

npm install
npm run build

The build script reads webpack.config.js, compiles each block’s index.js entry, and writes blocks/build/<block-name>.js plus an <block-name>.asset.php dependency manifest. Running npm run start instead watches the sources and rebuilds on save during development.

Details

Plugin code:
isoft-fm-foundation
Plugin version:
0.10.17
Author:
Outdated:
No
WP version:
6.7 or higher
PHP version:
8.4 or higher
Test up to WP version:
7.0
Total installations:
0
Last updated:
2026-06-19
Rating:
Times rated:
0
categories
document-management
download-counter
downloads
file-manager