Embed Instagram Posts Demo

 

Root Explorer Documentation

Secure administrator file manager for Joomla 5 & 6 · v1.0.0

Overview

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.

Requirements

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)

Installation

  1. Log in to the Joomla administrator as a Super User.
  2. Go to System → Install → Extensions.
  3. On the Upload Package File tab, drop in com_rootexplorer-1.0.0.zip.
  4. Wait for the success message.
  5. Open it from Components → Root Explorer.

Updating later uses the same package or the built-in updater — see Updates.

Configuration

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.
Whole-server access. You can set Base Path to / 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 interface

The screen has four zones:

  • Toolbar — actions: Up, Refresh, New Folder, New File, Upload, Copy, Move, Zip, Delete.
  • Breadcrumb — your current path; click any segment to jump there. / (root) returns to the Base Path.
  • File table — name, size, permissions and modified date, with per-row actions on the right.
  • Status bar — confirmation or error messages after each action.

Browsing

  • Click a folder name to open it.
  • Click Up to go to the parent folder, or use the breadcrumb.
  • Click Refresh to reload the current folder.
  • Use the header checkbox to select all items, or the per-row checkboxes for a subset. Copy, Move, Zip and Delete act on the selection.

Create & upload

  • New Folder / New File — enter a name; it is created in the current folder.
  • Upload — pick one or more files; they are uploaded into the current folder. Multiple files at once are supported.
Large uploads are bounded by your server's PHP settings (upload_max_filesize, post_max_size). Adjust those on the host if you need bigger uploads.

Editing files

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.

Non-text or very large files aren't opened in the editor — use Download instead. The editor limit protects the browser from binary content.

Rename, copy, move, delete

  • Rename — per-row action; enter the new name.
  • Copy — select items, click Copy, enter a destination folder path (from root).
  • Move — same as Copy, but the originals are moved.
  • Delete — select items and confirm. Folders are deleted recursively.
Deletes and overwrites are permanent. There is no recycle bin. Back up anything important first.

Permissions (chmod)

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 & extract

  • Zip — select items, click Zip, name the archive. It is created in the current folder.
  • Extract — the Extract action on a .zip file unpacks it into a folder beside it. Extraction is protected against "zip-slip" (archives that try to write outside the target).

Downloading

Click a non-text file name, or the Download row action. Files are streamed as a download and never executed on the server.

Security model

Root Explorer is built security-first:

  • Super Users only. Both the interface and every action require core.admin.
  • CSRF protection. A valid Joomla token is required on every request.
  • Sandbox jail. Every path from the browser is normalised and verified to stay inside the Base Path. Directory traversal (../), absolute paths, Windows drive prefixes, symlink escapes and zip-slip are all rejected.
  • Safe uploads/downloads. Uploads use is_uploaded_file/move_uploaded_file; downloads are sent as application/octet-stream.
  • No external calls. No telemetry, no license phone-home — nothing leaves your server.
Because it can modify any file inside the Base Path, only grant Super User access to people you trust, and keep your admin login protected.

Updates

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.

Troubleshooting

SymptomCause & 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.

Uninstall

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

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.

Root Explorer v1.0.0 · © 2026 SaintArt Designs · saintartdesigns.com
Joomla!® is a registered trademark of Open Source Matters, Inc. This product is not affiliated with or endorsed by Open Source Matters, Inc.

Embed Instagram Posts Documentation

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

Contents

  1. Overview
  2. Requirements
  3. Installation
  4. Creating the module
  5. Using a manual list of posts
  6. Using an RSS bridge feed
  7. All configuration options
  8. Render modes explained
  9. Styling & CSS customisation
  10. Caching behaviour
  11. Troubleshooting
  12. FAQ
  13. License

1. Overview

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:

  • Manual list – you paste post URLs directly.
  • RSS bridge feed – the module fetches an RSS feed and extracts Instagram links from it automatically.

2. Requirements

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.

3. Installation

  1. Log in to the Joomla administrator.
  2. Go to System → Install → Extensions.
  3. On the Upload Package File tab, drop mod_embed_instagram_posts-1.0.0.zip or browse for it.
  4. Wait for the “Installation successful” message.

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.

4. Creating the module

  1. Go to Content → Site Modules and click New.
  2. Select Embed Instagram Posts from the list.
  3. Give it a title (or hide the title), choose a Position, and set Status to Published.
  4. On the Menu Assignment tab, choose where it should appear (all pages or specific menu items).
  5. Configure the options (below) and click Save.

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.

5. Using a manual list of posts

  1. Set Post source to Manual list of post URLs.
  2. In Post URLs, paste one URL per line, for example:
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.

6. Using an RSS bridge feed

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.

  1. Create a feed for your Instagram profile in the bridge service.
  2. Copy the direct feed URL – the one that returns XML. On RSS.app this is the RSS Feed URL and usually ends in .xml, e.g. https://rss.app/feeds/XXXXXXXX.xml.
  3. Set Post source to RSS bridge feed URL and paste the URL into RSS feed URL.
  4. Save.

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.

7. All configuration options

Source

OptionDefaultDescription
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.

Layout

OptionDefaultDescription
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.

Advanced

Standard Joomla module options are available too: alternative Layout, Module Class Suffix, module tag, Bootstrap size, header tag/class and module style (chrome).

8. Render modes explained

Iframe (recommended)

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.

Instagram embed.js

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.

9. Styling & CSS customisation

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.

10. Caching behaviour

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.

11. Troubleshooting

Nothing appears on the page

  1. Check the module position. The most common cause. Enable Preview Module Positions in Templates → Options, then open your page with ?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.
  2. Check Menu Assignment. Make sure the module is assigned to the page you are viewing.
  3. View the page as a Super User. Configuration errors (bad feed, no URLs) are shown only to administrators, as a warning box. Visitors just see nothing, by design.
  4. Read the module log. Problems are written to administrator/logs/mod_embed_instagram_posts.php with the exact reason (HTTP code, empty body, or “Feed contained no Instagram permalinks”).

RSS mode shows nothing

  • Confirm you used the direct .xml feed URL, not the bridge’s share/preview page.
  • Open the feed URL in a browser and check the items actually link to instagram.com/p/….
  • Make sure your host allows outbound HTTP requests.
  • Clear the module cache (or wait for Cache time to expire) after fixing the URL.

An embed shows a blank/empty box

That specific post is probably deleted, private, or region-restricted. Replace it, or switch the account/post to public.

12. FAQ

Do I need an Instagram or Meta developer account?

No. The module uses Instagram’s public embed only. There is no API key or token.

Will it show a private account’s posts?

No. Only public posts can be embedded.

How do I keep posts updating automatically?

Use RSS mode with a bridge feed. New posts in the feed appear after the cache expires.

Can I put several instances on one page?

Yes. Each module instance has its own settings and its own cache.

13. License

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.

Malware scanner documentation

com_malscan — Documentation

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.

1. Installation

  1. Go to System → Install → Extensions in your Joomla admin panel.
  2. Upload the com_malscan_v1.3.1.zip file you received after purchase.
  3. Once installed, find Malware Scanner in the left admin menu.

2. Generating a Baseline

Before your first scan, generate a baseline — a snapshot of your current file hashes, used to detect future changes.

  1. Go to Malware Scanner → Core.
  2. Click Generate / Reset Baseline.

Only generate a baseline when you're confident your site is currently clean — this snapshot becomes the reference point for detecting future tampering.

3. Running a Scan

  1. Go to Malware Scanner → Scan.
  2. Click Start Scan.
  3. The scan checks your files against:
    • Known malware/webshell signatures (e.g. injected eval/base64 code, known backdoor filenames)
    • Changes against your saved baseline
    • Known vulnerable extension versions installed on your site
  4. Progress is shown live; large sites are processed in batches to avoid timeouts.

4. Reviewing Findings

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.

5. Quarantine & Restore

From the Findings list, you can:

  • Quarantine a file — moves it out of its live location so it can no longer run, without permanently deleting it.
  • Restore a quarantined file — moves it back if it turns out to be a false positive.

6. Automatic Updates

com_malscan checks Joomla's built-in update system for new versions automatically. Update through System → Update → Extensions like any other component.

Requirements

  • Joomla 4.x or 5.x
  • MySQL-compatible database

Need Help?

See the product page for support contact details.

Thank you

Thank You for Your Purchase!

We truly appreciate your business. Your payment has been successfully processed. You will receive a confirmation email shortly.

If you have any questions or need assistance, feel free to contact us. Enjoy your purchase!

Terms of Service

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.

1. Acceptance of Terms

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.

2. Services Provided

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.

3. User Responsibilities

As a user of our services, you agree to:

  • Provide accurate and up-to-date information when contacting us or using our services.
  • Not engage in any unlawful activities or activities that could damage the website or its services.
  • Be responsible for any content you upload, publish, or display on your website created using our services.
  • Abide by all applicable local, state, and international laws when using our services.

4. Payment Terms

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.

5. Client Content

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.

6. Intellectual Property

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.

7. Limitation of Liability

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.

8. Privacy

Your privacy is important to us. Please refer to our Privacy Policy for details on how we collect, use, and protect your personal information.

9. Termination

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.

10. Changes to Terms

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.

11. Governing Law

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.

12. Contact Us

If you have any questions or concerns regarding these Terms of Service, please contact us at:

Saint Art Designs
Email: This email address is being protected from spambots. You need JavaScript enabled to view it.

Privacy Policy

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.

1. Information We Collect

We may collect the following types of information:

  • Personal Information: When you contact us, request services, or subscribe to our newsletter, we may collect personal details such as your name, email address, phone number, and any other information you provide.
  • Usage Data: We may collect information on how you access and use our website, such as your IP address, browser type, pages visited, and time spent on the site.
  • Cookies: Our website may use cookies to improve user experience. You can control the use of cookies through your browser settings.

2. How We Use Your Information

We use your personal information for the following purposes:

  • To communicate with you regarding our services or inquiries.
  • To improve our website and services based on your feedback and usage patterns.
  • To send promotional emails or newsletters (if you have opted in).
  • To process transactions and provide customer support.

3. Data Protection

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.

4. Sharing 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.

5. GDPR Compliance

In accordance with the General Data Protection Regulation (GDPR), you have the following rights:

  • Right to Access: You have the right to request access to the personal data we hold about you.
  • Right to Rectification: You have the right to request corrections to any inaccurate or incomplete personal data we hold.
  • Right to Erasure: You have the right to request the deletion of your personal data under certain conditions.
  • Right to Restrict Processing: You have the right to request the restriction of processing your personal data under certain conditions.
  • Right to Object: You have the right to object to the processing of your personal data under certain conditions.
  • Right to Data Portability: You have the right to receive your personal data in a structured, commonly used format for transfer to another organization.
  • Right to Withdraw Consent: You have the right to withdraw your consent at any time, especially in relation to marketing communications.

To exercise any of these rights, please contact us at This email address is being protected from spambots. You need JavaScript enabled to view it..

6. Third-Party Links

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.

7. Children’s Privacy

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.

8. Changes to This Privacy Policy

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.

9. Contact Us

If you have any questions or concerns about this Privacy Policy, please contact us at:

Saint Art Designs
Email: This email address is being protected from spambots. You need JavaScript enabled to view it.

About

Saint Art Designs is a freelance Joomla web developer specializing in modern, responsive, and secure websites.

  • Joomla Web Development Service
  • Joomla Web Design
  • Joomla Upgrade
  • Joomla SEO

Why Hire Me?

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

Online Profiles

Freelancer
Upwork
Linkedin
Facebook
Google Review

Contact Info