Joomla guide v1.0.0

Display By Device adds two switches to every Joomla module: mobile only, desktop only. Filtering happens on the server, with no database table at all.

Overview

Display By Device adds two switches to every Joomla module: mobile only, desktop only. Filtering happens on the server, with no database table at all.

Requirements

  • Joomla 4.4, 5 or 6 depending on the package version.
  • PHP 8.1 or later is recommended.
  • A recent backup before installation or update.

Installation

  1. Download the ZIP package and do not extract it.
  2. In Joomla, open System → Install → Extensions.
  3. Drop the ZIP into the installation area and wait for the confirmation message.
  4. Open the component from Components. If the package includes a plugin, check its status under System → Manage → Plugins.
  5. Review component permissions before opening it to the team.

Initial configuration

  1. Open the extension dashboard.
  2. Open Options and review global settings.
  3. Grant Create, Edit, Delete and Configure permissions to the appropriate groups.
  4. Create a first test item and check the frontend when a public view is provided.
  5. Enable bundled plugins or scheduled tasks only when they are needed.

Features

Two switches on every module

The plugin adds a "Device display" tab to the module editing form, holding two switches: "Mobile only" and "Desktop only". Both ship set to No, so nothing at all changes on your site until you deliberately flip one.

Native to the module manager

The fields are injected through onContentPrepareForm, and only into the com_modules.module form. No template override, no shortcode to paste, no custom field to create first.

Filtered on the server

On the onAfterModuleList event, modules that do not match the device are dropped from the list before Joomla renders any of them. This is not CSS hiding: the module's markup is never produced in the first place.

Detection left to Joomla core

The plugin writes no user-agent regular expression of its own. It asks Browser::getInstance()->isMobile(), the detection class that ships with Joomla: a singleton that parses the User-Agent header once per request, however many modules the page holds.

Scope you can narrow

One global setting, three values: site only, administrator only, or both — the shipped default. The plugin also bows out immediately when the current document is not HTML, so feeds, exports and JSON responses are never touched.

No footprint

No table created, no SQL query, no request parameter read, no outbound call, no CSS or JavaScript added to your pages. Three PHP files, 318 lines in total, comments included.

Install the package

An 8.6 KB ZIP through Extensions → Install. It drops three PHP files, the manifest and four language files. No table is created and no migration is run.

Enable the plugin

In the plugin manager, enable the system plugin "Yapuka Display By Device". That is the only thing to switch on: the package contains no component, no module and no second plugin.

First steps

  1. Start with a simple use case and non-sensitive data.
  2. Validate the result with the team that will use the extension.
  3. Record site-specific choices such as roles, automations, templates and integrations.
  4. Roll out gradually, then monitor logs and user feedback.

Screenshots

The interface of Display By Device
Extension administration interface.
Installing Display By Device
The standard Joomla extension installation screen.

Troubleshooting

The extension does not appear after installation
Check the installer message and the component/plugin status, then clear Joomla or WordPress caches.
An action is denied
Review the user group permissions, session token and any security restrictions.
The output does not match the site
Test with caching disabled, inspect template overrides and look for CSS or JavaScript conflicts.
An external integration fails
Check the URL, credentials, quotas and logs without copying secrets into a support request.

Updating and uninstalling

Before updating, back up files and the database, read the release notes, and test on a copy of the site. Export useful data before uninstalling. Removing a package may remove several related components, modules or plugins.