devgeniem / tms-theme-muumib2b
Tampere Multisite MuumiB2B Theme
Package info
github.com/devgeniem/tms-theme-muumib2b
Type:wordpress-theme
pkg:composer/devgeniem/tms-theme-muumib2b
Requires
- php: ^8.1
- composer/installers: ^1.0.12
- devgeniem/dustpress: >=1.33.0
Requires (Dev)
- devgeniem/acf-codifier: *
- devgeniem/geniem-rules-codesniffer: ^1.0.7
- roave/security-advisories: dev-latest
- dev-master
- dev-stage
- dev-dependabot/npm_and_yarn/postcss-font-magician-4.0.0
- dev-dependabot/npm_and_yarn/bulma-1.0.4
- dev-dependabot/npm_and_yarn/indicate-6.3.0
- dev-dependabot/npm_and_yarn/hyphenopoly-6.1.0
- dev-dependabot/npm_and_yarn/sass-loader-16.0.7
- dev-dependabot/composer/composer/installers-tw-2.3.0
This package is auto-updated.
Last update: 2026-05-29 09:25:27 UTC
README
This document focuses on:
- page templates
- ACF flexible content layouts (components)
- runtime functionality related to those layouts
- password-protected content behavior
- site-wide settings page
Overview
The theme is built with DustPress models + Dust templates + ACF flexible content.
Page templates and model classes
The main content templates are implemented as model classes under models/:
-
models/page-front-page.php- Template Name:
Etusivu - Class:
PageFrontPage - Uses front page specific layout set.
- Template Name:
-
models/page.php- Class:
Page - Extends
PageExtend. - Generic content page template behavior.
- Class:
-
models/page-exhibition-one.php- Template Name:
The door is always open -nayttely - Class:
PageExhibitionOne
- Template Name:
-
models/page-exhibition-two.php- Template Name:
Moomins Sea Adventure -nayttely - Class:
PageExhibitionTwo
- Template Name:
-
models/page-exhibition-three.php- Template Name:
Moomin Animations -nayttely - Class:
PageExhibitionThree
- Template Name:
Layout registration and availability
Layouts are registered as ACF flexible content rows in group classes:
lib/ACF/FrontPageGroup.phplib/ACF/PageGroup.phplib/ACF/ExhibitionOneGroup.phplib/ACF/ExhibitionTwoGroup.phplib/ACF/ExhibitionThreeGroup.php
Layout classes are in lib/ACF/Layouts/ and rendered in partials/layouts/.
Front-end JS behaviors used by layouts
Global JS controllers are initialized by assets/scripts/theme.js.
Layout-driven behavior includes, for example:
- accordion interactions (
assets/scripts/accordion.js) - image carousel modal/slider behavior (
assets/scripts/image-carousel.js) - map lazy load toggle (
assets/scripts/map-layout.js) - countdown behavior (
assets/scripts/countdown.js) - modularity embedding behavior (
assets/scripts/modularity-layout.js) - rolling text behavior (
assets/scripts/rolling-text.js) - Gravity Forms compatibility patch (
assets/scripts/gravity-forms-patch.js)
Password-protected pages and custom login view
Password-protected content is explicitly handled in page templates.
Behavior:
- If
post_password_required()is true (models/page-extend.php), normal layout rendering is skipped. - Instead, a custom password hero view is rendered:
partials/views/page/page-password-hero.dust- contains custom visual hero + input form
- uses
partials/ui/password_form.dust
- Password form submits to:
wp-login.php?action=postpass- from
PageExtend::password_form_action()
Customizable via site ACF-settings:
password_page_hero_imgpassword_page_info_text
Site-wide settings page
The theme has a custom site-wide settings page implemented as a custom post type.
ACF settings UI
Settings field group: lib/ACF/SettingsGroup.php
Main tabs include:
- Header settings
- Footer settings
- Map settings
- Social media settings
- 404 settings
- Archive settings
- Page settings
- Exception notice settings
- Sitemap settings
- Chat settings
- Password page settings