Contact forms and enquiry buttons
Every page that uses the standard site footer carries one shared contact modal (“Get in Touch”). Stock Maropost gives you the web forms; this theme adds two things on top:
- Enquiry buttons. A button in any CMS content can open the modal with its own title, a product line under the title, and the Message box already filled in.
- A fixed set of form pages. The modal, the
/contact-altapac/page and the product-page enquiry buttons all point at specific form pages by URL. Renaming or restructuring those forms breaks them without any error.
Use this page when you want a “Book a fitting”, “Get a quote” or “Ask about this” button in page content, when you link to a particular store’s contact form, or before you edit any page under form/.
For a plain “Contact us” button that opens the modal without prefilling anything, see Adding a Contact Modal Button.
What the modal contains
| Part | What it does |
|---|---|
| Title | ”Get in Touch”, unless an enquiry button sets its own |
| Context line | Shown under the title only when an enquiry button gives a product name |
| Call tile | Greyed out and reads “Closed” unless at least one store is open right now. When any store is open, it shows the main company phone number, the COMPANY_PHONE setting ((02) 4941 4499 on 21 October 2026), and dials it |
| Email tile | Always hello@altapac.com, and always clickable. This is fixed in the theme and can’t be changed in the cPanel (not live yet, AUD-82; see the note below) |
| Visit Us list | Every Store Finder store, with its address, hours, phone, email and an “open now” or “closed” marker. Large screens only; hidden on phones and most tablets |
| Form | The contact-modal form page, shown inside the modal: Name and Email Address (both required), Contact Phone Number, Message |
The modal has no store tabs. The store tabs are on the /contact-altapac/ page (see below).
”Open” means the current Sydney time is within that store’s hours for today, taken from the Store Finder custom fields (Mon–Fri and Saturday open and close times). Sunday is always closed, and every store counts as closed on any date listed in the site-wide closing exceptions. The check runs once when the page loads.
Add an enquiry button to page content
- Open the content page in the cPanel and go to the description field where the button should appear (for example Description 1).
- Switch the editor to source (HTML) view.
- Paste one of the snippets below and change the text in quotes.
- Save the page.
- Open the live page, click the button and check the modal title, the line under it and the prefilled Message. If you still see the old page, add
?nc=123to the URL to skip the page cache.
Snippets
General enquiry, no product:
<a href="/contact-altapac/" class="btn btn-primary btn-lg" data-contact-enquiry data-enquiry-title="Get a quote" data-enquiry-intro="I'd like a quote for window tinting">Get a quote</a>Message prefilled: I'd like a quote for window tinting.
Enquiry about a named product:
<a href="/contact-altapac/" class="btn btn-primary btn-lg" data-contact-enquiry data-enquiry-title="Book a fitting" data-enquiry-intro="I'd like to book a fitting" data-enquiry-product="Rhino-Rack Pioneer Platform">Book a fitting</a>Message prefilled: I'd like to book a fitting for the Rhino-Rack Pioneer Platform. The line under the title reads Rhino-Rack Pioneer Platform.
Enquiry about a named product and SKU:
<a href="/contact-altapac/" class="btn btn-primary btn-lg" data-contact-enquiry data-enquiry-title="Price enquiry" data-enquiry-intro="I'd like a price" data-enquiry-product="Rhino-Rack Pioneer Platform" data-enquiry-sku="ABC-123">Ask for a price</a>Message prefilled: I'd like a price for the Rhino-Rack Pioneer Platform (SKU ABC-123). The line under the title reads Rhino-Rack Pioneer Platform · ABC-123.
The href is only a fallback. If the modal can’t open (for example on a page without the standard footer), the button goes to that address instead. The product-page buttons built into the theme use /form/contact-us/, which is a bare form page with no site header; /contact-altapac/ is the friendlier fallback for content pages.
Attribute reference
| Attribute | Required | What it does | If you leave it out |
|---|---|---|---|
data-contact-enquiry | Yes | Marks the element as an enquiry button. Takes no value. The editor may rewrite it as data-contact-enquiry="", which still works | The element is an ordinary link |
data-enquiry-title | No | Replaces “Get in Touch” as the modal title | Title stays “Get in Touch” |
data-enquiry-intro | In practice, yes | Start of the prefilled message, written as the shopper (“I’d like…“) | Uses I'd like to ask about (see the caution below) |
data-enquiry-product | No | Adds for the <product> to the message and shows the product under the title | No product in the message; no line under the title |
data-enquiry-sku | No | Adds (SKU <sku>) to the message, and after the product under the title | No SKU, except on product pages (see below) |
The message is always built as: intro, then for the and the product, then (SKU and the SKU ), then a full stop. Only Message is prefilled. Name, email and phone are left for the shopper.
When the shopper closes the modal, the title, the line under it and the form all reset, so the next plain “Contact us” button opens a clean form.
What breaks
Other mistakes that fail without any warning:
- Double quotes inside a value.
data-enquiry-product="12" Tray"cuts the attribute off at the second quote. Write12-inchor leave the quote mark out. - B@SE tags in a value. The form displays the prefilled message through a tag that runs B@SE code, so
[@...@]or[%...%]in an enquiry attribute may be executed rather than shown. Use plain text only. - Adding
data-toggle="modal"anddata-target="#contactModal"as well. These are for the plain button in the existing guide. An enquiry button doesn’t need them; use one style or the other. - Using a
<button>instead of a link. A<button>works while the modal is available but has nohreffallback. Prefer<a href="...">.
The contact page and its store tabs
/contact-altapac/ uses the contact body template. It shows a hero (the page’s main image, the page heading, and Description 1 as the subheading), then four store tabs, each showing its own form page, then a card for each Store Finder store. The heading comes from the page’s SEO page heading (SEOPageHeading). That is empty in the 2026-10-20 content pull, so the heading shows the page name, “Contact Altapac”.
| Tab | Link straight to it | Form page shown |
|---|---|---|
| Kotara Showroom (default) | /contact-altapac/#kotara | /form/contact-us/ |
| Maitland Showroom | /contact-altapac/#maitland | /form/contact-altapac-maitland/ |
| Artarmon Showroom | /contact-altapac/#artarmon | /form/contact-artarmon/ |
| Burwood Showroom | /contact-altapac/#burwood | /form/contact-burwood/ |
To send someone to a particular store’s form, link to the address in the middle column, for example:
<a href="/contact-altapac/#maitland">Contact our Maitland showroom</a>The page opens on that tab and scrolls down to the form.
The tab buttons, their names and the form each one shows are fixed in the theme. The store cards below them are built from Store Finder, so a new store would get a card automatically but no tab or form. Adding or renaming a store tab needs a developer. Each card’s “Find Out More” goes to /locations/ plus the store’s location-page slug from Store Finder, or to the store’s Store Finder page (such as /d/altapac-kotara/1) if that field is blank.
Editing a form page (form/...)
Each web form is a content page whose URL starts with form/. In cPanel they are under Webstore > Form. The contact forms’ HTML lives in Description 1. As of the 2026-10-20 content pull, they are set up like this (BodyTemplate, HeaderTemplate and FooterTemplate in the API):
| Page | Body Template | Header Template | Footer Template | Shown in |
|---|---|---|---|---|
form/contact-modal/ | modal | iframe | empty | The site-wide modal and every enquiry button |
form/contact-us/ | modal | iframe | empty | Kotara tab; fallback for product-page enquiry buttons |
form/contact-altapac-maitland/ | modal | empty | empty | Maitland tab |
form/contact-artarmon/ | modal | empty | empty | Artarmon tab |
form/contact-burwood/ | modal | empty | empty | Burwood tab |
form/contact-us-thank-you/ | modal | empty | empty | Not referenced by the theme |
form/thank-you-modal/ | modal | empty | empty | Not referenced by the theme |
The modal body template outputs Description 1 and nothing else, with B@SE tags in it processed (that is how the form’s own submit address is filled in). The iframe and empty header templates both leave out the site header and menu. They differ in one way that matters: iframe marks the page “noindex, nofollow” and loads no tracking code; empty loads the tracking code and doesn’t add noindex. So the Maitland, Artarmon and Burwood forms can be indexed and run the tracking code inside the contact page, unlike contact-us and contact-modal.
The four store forms (including contact-us for Kotara) have a required “How can we help?” drop-down (inp-enquiry_type) and a Preferred Method of Contact choice (Email or Phone). Kotara and Maitland offer five enquiry types, including Home or Commercial Tinting and Automotive Tinting; Artarmon and Burwood offer three (Product or Installation Enquiry, Existing Order Enquiry, General Question). The modal form has neither; it has Name and Email Address (both required), Contact Phone Number and Message.
For developers
This page is based on these files in Altapac-ReDev (development branch):
src/templates/footers/includes/contactModal.template.html: modal markup, Call-tile logic (lines 191–219), enquiry-button script (lines 220–301)src/templates/footers/template.html: loads the modal include outside any cache blocksrc/templates/footers/includes/scripts.template.html:#altapac-storesJSON block andOperating_Exceptionsliteralsrc/js/storeHours.js:isStoreOpen()src/templates/cms/contact.template.html: store tabs, form iframes, hash handlingsrc/templates/cms/modal.template.html:[%PARSE%]of Description 1src/templates/headers/iframe.template.htmlandheaders/includes/head_empty.template.html: noindex, no trackingsrc/templates/headers/empty.template.htmlandheaders/includes/head.template.htmlsrc/templates/products/includes/buying_options.template.html:179,products/includes/bikerack/buycard.template.html:96,products/includes/bikerack/template.html:160-162: existing enquiry buttonscontent/README.mdand.claude/skills/base-templating/references/tag-reference.md(web forms section):inp-*prefill via GET, honeypot,nohtmlwrapper note
Form page settings and bodies come from Altapac-Content pages/form/*/meta.json and pages/contact-altapac/meta.json (pulled 2026-10-20). The GET prefill was rechecked against the live /form/contact-modal/?inp-msg=... on 2026-10-21.
The form fields wrap their echoed values in [%nohtml%], which runs B@SE in the value. tag-reference.md recommends changing those wrappers to [%escape%] in the cPanel form bodies.