Appearance
Configuration
All settings live in the module edit screen, grouped into six tabs.
Content
| Setting | Default | Description |
|---|---|---|
| Popup Title | NXPopup sample copy | The popup heading. Wrap words in <span> to highlight them. |
| Title Highlight Color | #F43F5E | Colour applied to any <span> inside the title. |
| Title Alignment | Left | Left, Center, or Right. |
| Popup Content | NXPopup sample copy | Body copy, edited with your site's default editor. |
| Content Alignment | Left | Left, Center, Right, or Justify. The CTA follows this alignment. |
Highlighting words in the title
The title is a plain textarea rather than a WYSIWYG editor, because an editor rewrites inline markup and would break the highlight pattern. Wrap the words you want accented in <span>:
html
Launch focused <span>popup</span> campaigns with <span>NXPopup</span>Every <span> takes the Title Highlight Color. Any other HTML in this field is stripped when the popup renders — see Content filtering.
Appearance
| Setting | Default | Description |
|---|---|---|
| Background Color | #ffffff | Card background, shown behind the background image. |
| Background Image | Bundled bg-blue.png | Main visual background of the card. |
| Background Position | Center Center | CSS background-position. |
| Background Size | Cover | Cover, Contain, or Auto. |
| Render Popup Border | No | Wraps the card in a white frame, with the close button on the frame. |
CTA Button
| Setting | Default | Description |
|---|---|---|
| Button Text | Learn More | The call-to-action label. |
| Button URL | (empty) | Destination. The button only renders when both text and URL are set. |
| Button Target | Same Tab | New Tab automatically adds rel="noopener noreferrer". |
| Button Background Color | #F43F5E | |
| Button Text Color | #ffffff | |
| Button Border Color | #F43F5E |
Only http, https, mailto, and tel URLs are accepted. Anything else — including javascript: — is rejected and the button is not rendered.
Display Behaviour
| Setting | Default | Description |
|---|---|---|
| Audience | Everyone | Everyone, Guests only, or Logged-in users only. |
| Open Trigger | After a delay | Delay, scroll depth, or exit intent. |
| Open Delay (ms) | 0 | Used by the delay trigger, and by exit intent as the touch-device fallback. |
| Scroll Depth (%) | 50 | Shown only when the scroll trigger is selected. |
| Show After N Page Views | 1 | Skip the popup until the visitor has viewed this many pages. |
These are covered in detail in Targeting & Triggers.
Audience and module caching
Joomla caches module output per module, not per visitor. If you set Audience to anything other than Everyone, leave the module's Caching option (Advanced tab) at No caching — which is the default — otherwise one visitor's cached output can be served to another.
Dismissal
| Setting | Default | Description |
|---|---|---|
| Dismissal Period (days) | 10 | How long the popup stays hidden after a dismissal. 0 shows it on every page load. |
| Storage | Local storage | Local persists across visits; session is cleared when the tab closes. |
| Storage Key Suffix | (empty) | Change this to reset dismissal state for every visitor. |
| Dismiss on Close Button | Yes | |
| Dismiss on Backdrop Click | No | A stray click outside should not hide the campaign for the whole period. |
| Dismiss on Escape Key | Yes | |
| Dismiss on CTA Click | Yes |
See Usage → Dismissal for how these combine.
Advanced
Standard Joomla module settings: Layout (for template overrides), Module Class Suffix, Caching, and Cache Time.
Caching defaults to No caching. Keep it there when using audience targeting, per the warning above.
Content filtering
Two independent layers protect the two content fields:
- Popup Content is filtered on save through
ComponentHelper::filterText(), which applies the Text Filters configured per user group in Global Configuration → Text Filters. This is the same mechanism Joomla's own Custom HTML module uses. Content saved before upgrading to 1.1.0 is refiltered the next time you save the module. - Popup Title is reduced at render time to plain text plus bare
<span>tags. Attributes, event handlers, and every other element are removed.
Adjusting what editors may enter
If your content team needs richer markup in the body, change the Text Filters for their user group in Global Configuration, not in the module. NXPopup deliberately follows the site-wide policy.
Upgrade notes
show_for_logged_in → audience (1.1.0). The old two-state switch is replaced by the three-state Audience list. Existing modules keep their behaviour automatically:
| Old setting | New audience |
|---|---|
| Show to Logged-in Users = Yes | Everyone |
| Show to Logged-in Users = No | Guests only |
The migration runs whenever audience has never been saved, so no action is required. The first time you save the module, the new value is written and the legacy parameter stops being consulted.
CTA default text (1.1.0). The default changed from Explore Our New Solution to Learn More. This affects newly created modules only — existing modules keep whatever text they have saved.