Secure administrator file manager for Joomla 5 & 6 · v1.0.0
Root Explorer is a file manager that runs inside the Joomla administrator. It lets you browse, edit, upload, download and organise your site's files without FTP or a hosting control panel. All activity is restricted to Super Users and confined ("sandboxed") to a configurable root folder.
| Joomla | 5.0 or newer (also runs on 6.x) |
|---|---|
| PHP | 8.1 or newer |
| PHP extensions | zip — required for the zip / extract features |
| Access level | Super User (core.admin) |
com_rootexplorer-1.0.0.zip.Updating later uses the same package or the built-in updater — see Updates.
Open Components → Root Explorer, then click Options (top right). There is one setting:
| Base Path | The root folder Root Explorer is jailed to. Enter an absolute path (e.g. /var/www/html) or a path relative to your Joomla root (e.g. images). Leave it empty to use the Joomla root — the recommended default. |
|---|
/ to browse the entire server filesystem. Only do this if your host's open_basedir allows it and you understand the exposure. On shared hosting this is usually restricted — keep the default Joomla-root jail.The screen has four zones:
/ (root) returns to the Base Path.upload_max_filesize, post_max_size). Adjust those on the host if you need bigger uploads.Click a text file name (or its Edit action) to open the built-in editor. Recognised text types include php, html, css, js, json, xml, ini, txt, md, sql, htaccess, yml, conf and more. Save with the Save button or Ctrl/Cmd + S; press Esc to close.
Use the CHMOD row action and enter an octal mode such as 644 (files) or 755 (folders). Some hosts forbid changing permissions; if so you'll see a clear error.
.zip file unpacks it into a folder beside it. Extraction is protected against "zip-slip" (archives that try to write outside the target).Click a non-text file name, or the Download row action. Files are streamed as a download and never executed on the server.
Root Explorer is built security-first:
core.admin.../), absolute paths, Windows drive prefixes, symlink escapes and zip-slip are all rejected.is_uploaded_file/move_uploaded_file; downloads are sent as application/octet-stream.Updates are delivered in place. Go to System → Update → Extensions and click Find Updates; if a new version is available it installs like any Joomla extension. A valid subscription is required to receive downloads and updates.
| Symptom | Cause & fix |
|---|---|
| "Invalid security token" | The page sat open too long and the session token expired. Reload the page and retry. |
| "You are not authorised" | Your account isn't a Super User. Root Explorer is Super Users only by design. |
| Can't write / save / chmod | Filesystem permissions or ownership on the host. The web server user must be able to write the target. Check with your host. |
| Zip features missing or error | The PHP zip extension isn't installed/enabled. Enable it in your PHP configuration. |
Base Path / shows nothing / errors |
open_basedir restricts PHP to certain paths. Use a Base Path inside the allowed area (e.g. the Joomla root). |
| Upload rejected (too large) | Raise upload_max_filesize and post_max_size in PHP settings. |
Go to System → Manage → Extensions, find Root Explorer, select it and click Uninstall. Files you created with the tool are not removed — only the component itself.
Support is available to customers with an active subscription via saintartdesigns.com. When reporting an issue, include your Joomla and PHP versions and the exact error text from the status bar.
A Joomla site module that displays public Instagram posts through Instagram’s official embed. No API key, app registration or account login required.
Version 1.0.0 · Joomla 4.4 / 5 / 6 · PHP 8.1+ · GPLv2+ · by Saint Art Designs
Embed Instagram Posts resolves a list of Instagram post permalinks and renders each one using Instagram’s public embed. Because it never talks to the Instagram Graph API, there is nothing to authenticate: you do not create a Meta app, you do not generate tokens, and there is no token expiry to maintain. The only requirement is that the posts are public.
Permalinks come from one of two sources, selected with the Post source option:
| Joomla | 4.4, 5.x or 6.x |
|---|---|
| PHP | 8.1 or newer |
| Posts | Must be public (private accounts cannot be embedded). |
| Outbound HTTP | Required only in RSS mode, so the server can retrieve the feed. |
mod_embed_instagram_posts-1.0.0.zip or browse for it.To update later, install the newer ZIP the same way — the package uses method="upgrade", so it installs over the existing version without losing your settings.
Helix Ultimate / template positions: a module only renders if its position is actually output by the active template. If you see nothing on the front end, verify the position first – see Troubleshooting.
https://www.instagram.com/p/DbC3mk_inwo/
https://www.instagram.com/reel/Cxyz1234abc/
https://www.instagram.com/username/p/DdEf5678ghi/
Post, reel and IGTV (/tv/) URLs are all accepted, with or without the username in the path. Duplicate posts are removed automatically, and the module shows at most Number of posts items.
Instagram does not provide RSS itself, so RSS mode relies on a third-party bridge that turns an Instagram profile into an RSS feed (for example RSS.app or FetchRSS). The module then reads that feed and pulls out the Instagram links.
.xml, e.g. https://rss.app/feeds/XXXXXXXX.xml.Most common mistake: pasting the feed’s share / preview page link (e.g. https://rss.app/r/feed/…) instead of the direct .xml feed. The preview page returns HTML, not a feed, so the module finds no Instagram links and shows nothing. Always use the URL that ends in .xml.
The module requires the feed items to contain real Instagram permalinks (instagram.com/p/…, /reel/… or /tv/…). Some free bridges rewrite item links to their own redirect domain – if so, the module cannot detect the posts.
| Option | Default | Description |
|---|---|---|
| Post source | Manual | Where permalinks come from: manual list or RSS bridge feed. |
| Post URLs | – | Manual mode: one Instagram post/reel/IGTV URL per line. |
| RSS feed URL | – | RSS mode: the direct feed URL (usually ending in .xml). |
| Number of posts | 3 | Maximum posts to display (1–24). |
| Cache time (minutes) | 60 | RSS mode only: how long the fetched feed is cached before refetching (5–10080). |
| Profile URL | – | Optional link to your Instagram profile, used by the follow link. |
| Option | Default | Description |
|---|---|---|
| Render mode | Iframe | iframe (no external script) or Instagram embed.js. See below. |
| Show captions | Yes | Include the post caption inside each embed (iframe mode). |
| Embed height (px) | 720 | Fixed height of each iframe embed (200–1400). |
| Columns (desktop) | 3 | Grid columns on large screens (≥ 992px). |
| Columns (tablet) | 2 | Grid columns on medium screens (≥ 576px). |
| Columns (mobile) | 1 | Grid columns on small screens. |
| Grid gap (px) | 16 | Spacing between grid items. |
| Follow link text | – | Text for a link below the grid. Requires a Profile URL; leave empty to hide. |
| Load module CSS | Yes | Load the bundled responsive-grid stylesheet. Turn off to style from your template. |
Standard Joomla module options are available too: alternative Layout, Module Class Suffix, module tag, Bootstrap size, header tag/class and module style (chrome).
Each post is embedded in its own <iframe> pointing at Instagram’s /embed/ endpoint. No third-party JavaScript is loaded into your page, embeds are isolated from your site, and the height is fixed by the Embed height option.
Posts are rendered as Instagram’s official blockquote cards, enhanced by Instagram’s embed.js script loaded from instagram.com. This produces the familiar rich card and auto-sizes to content, but it does load remote JavaScript from Meta.
The bundled stylesheet lays posts out in a responsive CSS grid driven by CSS custom properties. The module wrapper uses the class eip; the grid, items, embeds, follow link and notice use eip-grid, eip-item, eip-embed, eip-follow and eip-notice.
To override styles from your template, target those classes, for example:
.eip-embed { border-radius: 16px; }
.eip-grid { gap: 24px; }
.eip-follow a { font-weight: 700; }
If you prefer to control everything yourself, set Load module CSS to No and add your own rules. You can also add a Module Class Suffix to scope your CSS to a single module instance.
In RSS mode the fetched feed is cached per module instance under Joomla’s cache directory for the number of minutes set in Cache time. This avoids querying the bridge on every page view. If a refresh fails, the module keeps serving the last successful set of posts and, for logged-in administrators only, shows a small notice that cached content is being used. Manual mode does not fetch anything, so it is not cached.
?tp=1 appended to the URL. If the assigned position outline does not appear, the template does not output that position there – move the module to a position that is rendered.administrator/logs/mod_embed_instagram_posts.php with the exact reason (HTTP code, empty body, or “Feed contained no Instagram permalinks”)..xml feed URL, not the bridge’s share/preview page.instagram.com/p/….That specific post is probably deleted, private, or region-restricted. Replace it, or switch the account/post to public.
No. The module uses Instagram’s public embed only. There is no API key or token.
No. Only public posts can be embedded.
Use RSS mode with a bridge feed. New posts in the feed appear after the cache expires.
Yes. Each module instance has its own settings and its own cache.
Embed Instagram Posts is free software released under the GNU General Public License, version 2 or later (GPLv2+); the full text is in LICENSE.txt in the package. It is provided without warranty of any kind.
Instagram is a trademark of Meta Platforms, Inc. This extension is independent and is not affiliated with, endorsed by, or sponsored by Meta; it uses only Instagram’s publicly documented embed feature.
Developed and maintained by Saint Art Designs.
com_malscan is a backend malware scanning component for Joomla. It scans your site's files for known malicious code patterns, tracks changes against a baseline snapshot, and lets you quarantine or restore suspicious files — all from your Joomla admin panel.
com_malscan_v1.3.1.zip file you received after purchase.Before your first scan, generate a baseline — a snapshot of your current file hashes, used to detect future changes.
Only generate a baseline when you're confident your site is currently clean — this snapshot becomes the reference point for detecting future tampering.
Go to Malware Scanner → Findings to see everything the scan flagged, with a severity rating (High / Medium) and a short description of what was matched and why.
From the Findings list, you can:
com_malscan checks Joomla's built-in update system for new versions automatically. Update through System → Update → Extensions like any other component.
See the product page for support contact details.
Effective Date: [April 2025]
Welcome to Saint Art Designs. By using our website and services, you agree to comply with and be bound by the following Terms of Service. Please read these terms carefully before using our website and services.
By accessing or using the services provided by Saint Art Designs, you agree to comply with these Terms of Service and our Privacy Policy. If you do not agree with these terms, you should not use our services.
Saint Art Designs offers Joomla-based web design, development, and customization services. These services include, but are not limited to, website design, web development, website maintenance, and SEO services.
As a user of our services, you agree to:
Payment for services is due according to the terms agreed upon in the service contract. Payments are accepted via the methods specified on our website or in the contract. Late payments may incur additional fees as specified in the service contract.
You retain all rights to any content that you provide to us for use in the creation or management of your website. You grant Saint Art Designs a non-exclusive, worldwide license to use, store, and display your content as necessary for the performance of our services.
All designs, logos, and materials created by Saint Art Designs, including the website design and code, are the intellectual property of Saint Art Designs and may not be reproduced or used without our permission. The exception is the content you provide, for which you retain ownership.
Saint Art Designs is not liable for any damages or losses resulting from the use or inability to use our website or services. We are not responsible for any indirect, incidental, or consequential damages, including data loss or interruption of business operations.
Your privacy is important to us. Please refer to our Privacy Policy for details on how we collect, use, and protect your personal information.
We reserve the right to suspend or terminate access to our services at any time, without notice, if we believe you have violated these Terms of Service or for any other reason at our discretion. You may terminate your relationship with Saint Art Designs at any time by providing written notice. In such cases, any outstanding fees for services rendered will be due immediately.
We reserve the right to modify or replace these Terms of Service at any time. Changes will be posted on this page, and the “Effective Date” will be updated accordingly. It is your responsibility to review these terms periodically to stay informed about any changes.
These Terms of Service will be governed by and construed in accordance with the laws. Any disputes arising from these terms shall be resolved in the appropriate courts.
If you have any questions or concerns regarding these Terms of Service, please contact us at:
Saint Art Designs
Email:
Effective Date: [April 2025]
At Saint Art Designs, we respect and protect your privacy. This Privacy Policy explains how we collect, use, and safeguard your personal information when you visit our website or use our services. By using our website, you consent to the practices outlined in this Privacy Policy.
We may collect the following types of information:
We use your personal information for the following purposes:
We take the security of your personal information seriously. We implement appropriate technical and organizational measures to safeguard your data from unauthorized access, alteration, disclosure, or destruction. However, no data transmission over the internet is 100% secure, and we cannot guarantee the absolute security of your information.
We do not sell or rent your personal information to third parties. However, we may share your information with trusted third-party service providers who assist us in operating our website, conducting business, or providing services to you. These third parties are obligated to protect your data and may not use it for any other purpose.
We may also disclose your information if required by law, to protect our rights or the safety of others.
In accordance with the General Data Protection Regulation (GDPR), you have the following rights:
To exercise any of these rights, please contact us at
Our website may contain links to third-party sites. We are not responsible for the privacy practices of these external sites. We encourage you to review the privacy policies of any third-party websites before sharing your personal information.
Our website is not intended for individuals under the age of 13. We do not knowingly collect personal information from children. If we discover that we have collected personal data from a child, we will take steps to delete that information.
We may update this Privacy Policy from time to time. When we make changes, we will update the “Effective Date” at the top of this page. We encourage you to periodically review this page for any updates.
If you have any questions or concerns about this Privacy Policy, please contact us at:
Saint Art Designs
Email:
Saint Art Designs is a freelance Joomla web developer specializing in modern, responsive, and secure websites.
With over two decades of experience in Joomla development, I deliver high-quality, stable, and scalable websites.
Each project is approached with precision, clear communication, and a focus on long-term value.
Get a Quote