Jump to content

Function overview

Overview of all functions, features and integrations provided by mpc/mp-core.

MP-Core logo

Content elements

  • Gallery – Responsive image galleries with Lightbox (Swiper-based via Vue)
  • Stage – Hero sections with image/video backgrounds
  • Banner – Customisable banner sections
  • Single teaser – Content teasers with images and links
  • Accordion – Collapsible content areas (b13/container)
  • Tabs – Content areas with tabs (b13/container)
  • Slider – Swiper-based carousels (b13/container)
  • Grid – Flexible column layouts (b13/container)
  • Container – Generic content wrapper (b13/container)
  • TodoList – Interactive to-do list with Vue.js 3 and localStorage
  • Menu subpages – Advanced menus for subpages
  • Definition List – Structured definition lists (Content Block)

Site Sets

  1. mpc/mp-core (Aggregator) – Includes all the feature sets listed below; add this config/sites/*/config.yaml for a full-stack
  2. mpc/mp-core-base (required base) -- System extension dependencies (typo3/form, typo3/indexed-search, …) and shared definitions for site settings (YAML files are located at Configuration/Sets/mp-core/)
  3. mpc/mp-core-container -- Configuration of the container element
  4. mpc/mp-core-news -- Integration of the News extension (georgringer/news)
  5. mpc/mp-core-form -- Configuration of the form framework
  6. mpc/mp-core-seo -- SEO optimisation settings

Custom function sets must be defined by mpc/mp-core-base, not by mpc/mp-core — otherwise this may lead to a deadlock in TYPO3’s SetRegistry (aggregator → child → aggregator → …). See Configuration/Sets/mp-core/config.yaml.

Optional extension dependencies (mpc/mp-core-base)

Automatically activated when the extension is installed:

Set / ExtensionPurpose
georgringer/news-recordlinksLinks to news entries
georgringer/news-sitemapSitemap for news
mpc/mpc-vidplyIntegration of the VidPly video player
mpc/mpc-rssRSS feed integration

Front-end stack

  • Vite 8, Bootstrap 5.3, Vue.js 3.5, Sass 1.99, PostCSS, ESLint 10, Stylelint 17, Swiper 12, Jarallax 3
  • ITCSS-based SCSS architecture with light/dark themes
  • Code splitting, tree shaking, lazy loading, WOFF2 font subsetting

PHP classes

Data processors

  • HeaderLogoProcessor -- Resolves logo settings at language and website level (logoBig, logoSmall, logoSvg, logoText, logoTextHidden, websiteTitle) once per page render for Header.Logo.html / Header.Background.html
  • StructuredDataProcessor -- Generates a Schema.org JSON-LD @graph (WebSite, WebPage/BlogPosting, BreadcrumbList, MusicGroup) with secure json_encode output
  • SocialMediaProcessor -- Extracts social media URLs from the website configuration for sameAs arrays and the template rendering

middleware

  • HtmlWhitespaceCompressorMiddleware (mpc/mp-core/html-whitespace-compressor) – Reduces unnecessary whitespace in HTML responses 200 after Fluid output; retains <pre>, <textarea>, <script>, <style>, <svg>and HTML comments. Registered in Configuration/RequestMiddlewares.php (always active; cannot be toggled in the site settings).

ViewHelpers

  • SvgInlineViewHelper (mpc:svgInline) -- Inline SVG rendering with DOM sanitisation, attribute merging and caching per request
  • Format\CssSanitizeViewHelper (mpc:format.cssSanitize) -- Sanitises CSS strings to prevent style tag escaping and dangerous constructs
  • Format\Json\DecodeViewHelper (mpc:format.json.decode) -- JSON decoding in Fluid templates
  • Schema\NewsArticleJsonLdViewHelper (mpc:schema.newsArticleJsonLd) -- Outputs NewsArticle JSON-LD for EXT:news detail views

Backend / UserFunc

  • ColorPickerValueItems -- Dynamic colour selection itemsProcFunc Read color-* keys from the website configuration
  • FilesControlContainer -- Improved redirection of file field containers fieldInformation Configuration
  • CustomContentPreviewRenderer -- Backend preview renderer with TYPO3 v14 fallback handling for TypeError

Exceptions

  • FileException – Domain exception for SVG/file operations with context array

Vue components

  • TodoList -- Interactive to-do list with persistence via localStorage
  • GallerySwiper -- Swiper-based gallery carousel for the gallery content element
  • SwiperSlider -- Generic Swiper slider component for container slider elements

Extension integrations

  • fluid_styled_content -- Displaying content in Bootstrap 5 style
  • EXT:news – List/detail views, categories, pagination
  • EXT:form – Bootstrap forms, YAML configuration
  • EXT:indexed_search -- Search results in Bootstrap style
  • EXT:seo -- Open Graph, Twitter Cards, Schema.org, XML sitemap

Accessibility

  • Keyboard navigation, screen reader announcements, ARIA labels/roles
  • Skippable links, focus management, high-contrast mode (fixed colours)

Documentation

  • Frontend -- Build system, JS/SCSS architecture
  • Configuration – Site Sets, TypoScript, TCA, Site Settings
  • Backend – RTE, TSconfig, previews, content blocks
  • Content elements – Gallery, Stage, Banner, Container, Field reference
  • Favicons – Favicon assets, Favicons.html, Web Manifest

Share page