Skip to content

Configuration

All settings live in the module edit screen, grouped into six tabs.

Content

SettingDefaultDescription
Popup TitleNXPopup sample copyThe popup heading. Wrap words in <span> to highlight them.
Title Highlight Color#F43F5EColour applied to any <span> inside the title.
Title AlignmentLeftLeft, Center, or Right.
Popup ContentNXPopup sample copyBody copy, edited with your site's default editor.
Content AlignmentLeftLeft, 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

SettingDefaultDescription
Background Color#ffffffCard background, shown behind the background image.
Background ImageBundled bg-blue.pngMain visual background of the card.
Background PositionCenter CenterCSS background-position.
Background SizeCoverCover, Contain, or Auto.
Render Popup BorderNoWraps the card in a white frame, with the close button on the frame.

CTA Button

SettingDefaultDescription
Button TextLearn MoreThe call-to-action label.
Button URL(empty)Destination. The button only renders when both text and URL are set.
Button TargetSame TabNew 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

SettingDefaultDescription
AudienceEveryoneEveryone, Guests only, or Logged-in users only.
Open TriggerAfter a delayDelay, scroll depth, or exit intent.
Open Delay (ms)0Used by the delay trigger, and by exit intent as the touch-device fallback.
Scroll Depth (%)50Shown only when the scroll trigger is selected.
Show After N Page Views1Skip 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

SettingDefaultDescription
Dismissal Period (days)10How long the popup stays hidden after a dismissal. 0 shows it on every page load.
StorageLocal storageLocal 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 ButtonYes
Dismiss on Backdrop ClickNoA stray click outside should not hide the campaign for the whole period.
Dismiss on Escape KeyYes
Dismiss on CTA ClickYes

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_inaudience (1.1.0). The old two-state switch is replaced by the three-state Audience list. Existing modules keep their behaviour automatically:

Old settingNew audience
Show to Logged-in Users = YesEveryone
Show to Logged-in Users = NoGuests 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.