Page content check for markets and solutions (vitec_pagecheck)

Sibling of the product check (decision Harry 2026-11-13): new content element vitec_pagecheck with a FlexForm scope (markets | solutions) and PageCheckService/PageCheckJsonRenderer. Overview = one row per page of the tree (11 markets + 24 sub-markets, 8 solution groups + 39 sub-solutions) with 18 checks taken from the page elements (hero image and subline, lead, intro text/image/CTA, cards with visuals, testimonials, products, insights text/cover/CTA, logos, CTA banner), the page properties (meta description, OG image, page media) and the market/solution record behind the page; columns a page type does not have come as ok null. ?check=<pageUid> delivers the page detail (elements in page order with texts, links, images, FlexForm settings; SEO, media, record, children). Always USER_INT, check is cHash-excluded already. New command vitec:pagecheck-pages created /markets/market-check (608) and /solutions/solution-check (609) from the product-check page properties; both live on DEV, rendering is front end work.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
orascheandClaude Fable 5.1 committed 2026-11-13 11:44:41 +01:00
1 parent 47c8e2902f
commit 20bcbeb731
9 files changed
+913

No files matched your search

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<T3DataStructure>
<meta>
<langDisable>1</langDisable>
</meta>
<sheets>
<sDEF>
<ROOT>
<sheetTitle>Page Content Check</sheetTitle>
<type>array</type>
<el>
<settings.scope>
<label>Page tree to audit</label>
<description>Markets = the 11 markets and their sub-markets below /markets. Solutions = the 8 solution groups and their sub-solutions below /solutions.</description>
<config>
<type>select</type>
<renderType>selectSingle</renderType>
<items>
<numIndex index="0">
<label>Markets and sub-markets</label>
<value>markets</value>
</numIndex>
<numIndex index="1">
<label>Solutions and sub-solutions</label>
<value>solutions</value>
</numIndex>
</items>
<default>markets</default>
</config>
</settings.scope>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>
@@ -32,6 +32,8 @@ services:
# ProductCheckJsonRenderer (TypoScript userFunc, no DI there).
Evomedien\Vitec\Service\ProductCheckService:
public: true
Evomedien\Vitec\Service\PageCheckService:
public: true
# SSR dashboard tiles (the WidgetConfigurationInterface argument is
# injected by the dashboard compiler pass via the tag).
@@ -114,6 +114,21 @@ tt_content {
}
}
# Page Content Check - the market / solution page audit as data (pages
# /markets/market-check, /solutions/solution-check). Always USER_INT, see PageCheckJsonRenderer.
vitec_pagecheck < lib.contentElementWithHeader
vitec_pagecheck {
fields {
content {
fields {
pagecheck = USER
pagecheck.userFunc = Evomedien\Vitec\UserFunc\PageCheckJsonRenderer->render
}
}
}
}
# EXT:solr search results as JSON - the search endpoint for the React frontend
solr_pi_results < lib.contentElementWithHeader
solr_pi_results {
@@ -37,6 +37,10 @@ use TYPO3\CMS\Extbase\Utility\ExtensionUtility;
'plugins',
'Live audit of every product record: one row per product, one check per content field, details per row. Place once on /products/product-check.'
);
// Page content audit for the market and solution trees (2026-11-13):
// scope (markets | solutions) via FlexForm, data from PageCheckService.
$registerPluginWithFlexForm('Pagecheck', 'Page Content Check (markets / solutions audit)', 'FILE:EXT:vitec/Configuration/FlexForms/Pagecheck.xml', 'vitec-plugin-productlist');
$registerPluginWithFlexForm('Simplecard', 'Simple Card', 'FILE:EXT:vitec/Configuration/FlexForms/Simplecard.xml', 'vitec-plugin-simplecard');
$registerPluginWithFlexForm('Productshow', 'Show Single Product', 'FILE:EXT:vitec/Configuration/FlexForms/Productshow.xml', 'vitec-plugin-productshow');
$registerPluginWithFlexForm('Usecaseshow', 'Single Success Story', 'FILE:EXT:vitec/Configuration/FlexForms/Usecase.xml', 'vitec-plugin-usecaseshow');
@@ -40,6 +40,15 @@ mod {
CType = vitec_productcheck
}
}
pagecheck {
iconIdentifier = vitec-plugin-productlist
title = Page Content Check (markets / solutions audit)
description = Live audit of the market or solution page tree - one row per page, one check per content slot. Internal pages /markets/market-check and /solutions/solution-check.
tt_content_defValues {
CType = vitec_pagecheck
}
}
productshow {
iconIdentifier = vitec-plugin-productshow
title = Show single VITEC Product