plugin-icon

I-Soft File Manager: Foundation

מאת chillic·
Document and download manager with real on-disk folder organization, per-department access control, and multi-file downloads.
גרסה
0.11.0
עודכן לאחרונה
Jun 21, 2026
I-Soft File Manager: Foundation

I-Soft File Manager: Foundation is a modular download manager built for modern WordPress.

Unlike standard media plugins that dump every upload into a single dated folder, Foundation is designed for municipalities, universities, libraries, and any team that needs to manage thousands of public documents, maintain a strict category tree, and give different departments their own secure upload spaces.

Key features

  • True folder organization. Every category you create maps 1:1 to a real folder on disk under wp-content/uploads/isoft-fmf-files/. Rename a category and the folder renames itself; every file path in the database updates instantly.
  • Department-level access control. Restrict editors to specific categories so HR uploads only land in the HR folder, IT uploads only in the IT folder, and so on. Restricted users cannot see drafts from other departments either.
  • External file sync and "From Folder" browser. Because categories are real folders, drop files into them via SFTP, rclone, or any external sync tool. The From Folder browser detects untracked files instantly so you can link them to a download with one click.
  • One-click multi-file downloads. Upload multiple files to a single entry via drag-and-drop. Visitors can grab individual files or everything at once as an automatically generated ZIP bundle.
  • Built-in analytics and audit log. Statistics dashboard tracks per-file and aggregate counts, recalculates HOT badges nightly, and the optional audit log records timestamps, IP addresses, and user agents with configurable retention.
  • Secure download handler. Files live behind an .htaccess-protected directory; every download routes through PHP with nonce verification, role checks, rate limiting, and hotlink protection. X-Sendfile and X-Accel-Redirect supported for high-traffic hosts.
  • Cyrillic transliteration. Uploaded filenames and category slugs are automatically transliterated from Serbian Cyrillic to Latin for safe disk storage; display titles keep their original characters.
  • Native builder support. Gutenberg blocks ship out of the box. Eight shortcodes work in Elementor, WPBakery, Divi, Beaver Builder, and Bricks — see the full shortcode reference below.
  • Themeable via CSS variables. Recolor every card, badge, and icon from Appearance Customize Additional CSS without writing complex selectors — see customizing appearance below.

Architecture in one line

The filesystem is the source of truth. Moving a download to a different category auto-moves its files on disk; deleting a category is blocked if any download still references it. This is what lets external automation tools sync files in and out without having to understand WordPress internals.

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 scheduled 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: Arbiter — one-shot importer from jDownloads. Rebuilds your categories, downloads, files, and counters in Foundation, preserving slug paths so existing URLs keep working.

Shortcodes

Foundation ships eight shortcodes. Drop them in any classic-editor page, any Gutenberg "Shortcode" block, or any builder's HTML / Shortcode widget. Every category and tag attribute accepts either the term slug (preferred — stable across exports) or its numeric term ID. Slugs are visible on the Downloads Categories screen and as the chip next to the category name on the download edit screen.

[isoft_fmf_list] — filtered list of downloads

Renders a grid, list, or table of downloads. Same renderer as the Download List block.

Attribute Default What

category empty slug or term ID; empty = all categories

include_subcategories "1" also include downloads in descendant categories; "0" restricts to the exact category

tag empty slug or term ID

limit per-page setting how many to render

orderby "date" date / title / download_count / any WP_Query orderby

order "DESC" ASC / DESC

layout display setting grid / list / table

show_search "0" render a search box scoped to the same category

Common recipes:

[isoft_fmf_list category="resolutions"] [isoft_fmf_list category="resolutions" layout="grid" limit="12"] [isoft_fmf_list category="resolutions" orderby="download_count"] [isoft_fmf_list category="resolutions" show_search="1"]

[isoft_fmf_download id="123"] — a single download card

Renders one download's full card by post ID.

Attribute Default What

id required the download post ID

show_description "1" include the description below the title

show_files "1" render the per-file list with download buttons

style "card" card / compact / button-only

[isoft_fmf_categories] — category grid

Clickable cards leading to each category's archive page. Same renderer as the Category Grid block.

Attribute Default What

parent 0 term ID of the parent category to show children of; 0 shows top-level

columns 3 grid columns

show_count "1" show the count of downloads per category

show_description "1" show the category description text

[isoft_fmf_search] — search box

Renders a search form that filters Foundation downloads.

Attribute Default What

category empty scope the search to a single category (slug or term ID)

placeholder "Search downloads…" the input placeholder text

[isoft_fmf_recent] — latest downloads

Pre-set list, newest first.

Attribute Default What

limit 5 how many to render

days 0 restrict to downloads posted in the last N days; 0 = no time limit

category empty scope to a single category

[isoft_fmf_popular] — most-downloaded

Pre-set list, ordered by download count.

Attribute Default What

limit 5 how many to render

period "all" all / 30d / 7d

category empty scope to a single category

[isoft_fmf_button file_id="42"] — a single download button

Renders just a download button for one specific file (not the whole download post). Useful inline in body content.

Attribute Default What

file_id required the file ID (visible in the per-file list on the download edit screen)

text "Download" button label

class empty extra CSS classes appended to the button

[isoft_fmf_count] — download counter

Renders just a number — either a single file's count or a whole download post's total.

Attribute Default What

id 0 download post ID (uses the post's aggregate counter)

file_id 0 specific file ID (uses that file's counter)

format "%s" sprintf format string for the number, e.g. "%s downloads"

Exactly one of id or file_id should be set.

Builder widget reference

The shortcodes above drop into every major builder's HTML or Shortcode widget. Where to paste:

Builder Widget

Elementor Widgets panel Shortcode

WPBakery Add element Text Block (source view) or Raw HTML

Divi Module Code

Beaver Builder Basic Modules HTML

Bricks Basic Elements Shortcode

Native, point-and-click widgets for each builder (with full attribute panels instead of writing shortcode strings) are planned as separate companion plugins.

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.

חינםבתוכניות בתשלום
בביצוע ההתקנה, אנחנו מקבלים את הסכמתך לתנאי השירות של WordPress.com ולתנאים של התוסף של הצד השלישי.
נבדקו עד
WordPress 7.0
תוסף זה זמין להורדה ולשימוש דרך שברשותך.