Hotspots and clickable photos in TYPO3 pages — via the "Plain HTML" content element or via plugins. Works in v11 and v12 without external extensions.
Suited for government, corporate, and university sites.
Upload a photo, place markers, fill tooltips. Auto-save active.
Copy the two-line HTML from the picpins dashboard.
In the Page module choose "New content element → Plain HTML", paste the code, save.
TYPO3 clearly separates RTE content (with HTML filter) from raw HTML elements. For embeds always pick "Plain HTML" — that bypasses the filter completely. Alternatively you can configure RTE profiles to let embed tags through.
In the backend under Web → Page open the target page. In the desired column click + Content element. In the wizard under Special you find Plain HTML.
In the editor field paste the embed code. Save and check on the frontend page.
If you want to embed within the running text of a standard "Text" or "Text & Media" component, you have to adjust the RTE HTML filter. In TYPO3 configuration under page TSconfig or the RTE YAML profile, extend the processing rule so that script and div.picpins-embed are allowed.
For a standard CKEditor configuration in the YAML file (e.g. EXT:rte_ckeditor/Configuration/RTE/Default.yaml) extend the allowedContent list.
For embeds that are the same on many pages (e.g. maps in the footer): adjust the TypoScript or Fluid template. In the template module or the corresponding Fluid file (Resources/Private/Templates/Page/Default.html) place the embed directly.
The embed then lives in the theme, not in the content area — no per-page maintenance.
For larger setups (e.g. picpins image as a database field of a custom record) building your own extension pays off. In the extension code put the embed markup in a Fluid partial and maintain it via the CMS backend.
Overkill for 2–3 embeds, but clean for complex sites with many interactive images.
Campus map or building photo, hotspots on lecture halls, library, cafeteria, administration.
Photo of city hall or admin building, hotspots on contact points, office hours, elevators.
Machine photo with hotspots on components, safety notes, maintenance documents.
City map, sights as polygon markers with photo, opening hours, audio guide link.
Yes, in both. The "Plain HTML" content element is unchanged in both versions. In v12 the RTE configuration is a bit more accessible, the workflow stays the same.
No. "Plain HTML" is a core content element, not a plugin. As long as you have backend edit rights for this element type, it works without further setup.
The element is locked for non-admin users in some backend configurations. Solution: in User TSconfig or Page TSconfig check and enable the mod.wizards.newContentElement.wizardItems.special.elements.html rule. Admin role has it by default.
Theoretically yes, practically the most painful path. The CKEditor in TYPO3 has strict filters that strip <script> and some <div> attributes. You would have to adjust the RTE profile in YAML. Rule of thumb: use the "Plain HTML" element.
Yes. Every "Plain HTML" content element can hold its own embed. Reusable any number of times on the same page.
Yes, both cache strategies store the HTML output that already contains the embed. The embed script runs client-side, independent of the cache. With aggressive script optimization, exclude the picpins script from bundling if needed.
If you need structured data — e.g. one image per entry in a news extension — building your own extension or a custom field that stores the picpins embed ID pays off. In the Fluid template render the embed per record.
Content elements stay stable across updates. "Plain HTML" content is just database strings — they are not touched. Theme embeds (Fluid templates) should always be overrides so they survive template updates.
"Plain HTML" element, paste code, done. Stress-free even in complex multi-site setups.