Insights spotlight: news from folders 11 + 442, source editable in the menu
- Megamenu entries with the catalog or spotlight layout get two editor fields, "Data source folders" (source_pages) and "Data source categories" (source_categories); the extension stores them, the site package's listener reads them from the entry row. - ProvideInsightsSpotlight reads its news from those folders (empty = 11 + 442; the newer posts live in 442, the query only read 11) and, when set, only from those categories (Insights: Blog Post + Press Release). Newest datetime first, three cards. - Pages carrying the menu are tagged with the news and event tables, so saving such a record refreshes the menu without a cache flush. - VITEC field descriptions via a TCA override; spec v1.31, README. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ad1f3c179c
commit
73e4298b75
7 files changed
+142
-18
No files matched your search
@@ -43,7 +43,7 @@ return [
|
||||
'1' => [
|
||||
'showitem' => '
|
||||
--div--;' . $ll . 'tab.general,
|
||||
hidden, title, link, layout, tree_display,
|
||||
hidden, title, link, layout, tree_display, source_pages, source_categories,
|
||||
--div--;' . $ll . 'tab.columns,
|
||||
menu_columns,
|
||||
--div--;' . $ll . 'tab.teasers,
|
||||
@@ -131,6 +131,27 @@ return [
|
||||
],
|
||||
],
|
||||
],
|
||||
// data-driven layouts: where the site package's listener reads its
|
||||
// records from - the extension only passes the entry row on
|
||||
'source_pages' => [
|
||||
'displayCond' => 'FIELD:layout:IN:catalog,spotlight',
|
||||
'label' => $ll . 'source_pages',
|
||||
'description' => $ll . 'source_pages.description',
|
||||
'config' => [
|
||||
'type' => 'group',
|
||||
'allowed' => 'pages',
|
||||
'size' => 3,
|
||||
'maxitems' => 20,
|
||||
],
|
||||
],
|
||||
'source_categories' => [
|
||||
'displayCond' => 'FIELD:layout:IN:catalog,spotlight',
|
||||
'label' => $ll . 'source_categories',
|
||||
'description' => $ll . 'source_categories.description',
|
||||
'config' => [
|
||||
'type' => 'category',
|
||||
],
|
||||
],
|
||||
|
||||
'menu_columns' => [
|
||||
'label' => $ll . 'menu_columns',
|
||||
|
||||
@@ -117,6 +117,13 @@ final class ProvideCatalog
|
||||
`getEntry()` hands the listener the raw entry row (to tell several catalog
|
||||
entries apart), `getStage()` the content stage.
|
||||
|
||||
**Data source fields** (catalog and spotlight entries): *Data source
|
||||
folders* (`source_pages`, comma list of page uids) and *Data source
|
||||
categories* (`source_categories`, sys_category MM with
|
||||
`tablenames = tx_evomegamenujson_entry`, `fieldname = source_categories`).
|
||||
The extension only stores them; the listener reads them from the entry row
|
||||
and decides what they mean (empty = its own default).
|
||||
|
||||
### Layout `pagetree`
|
||||
|
||||
A structure panel that can never age against the site: the columns mirror
|
||||
@@ -156,9 +163,13 @@ The VITEC site package ships `ProvideInsightsSpotlight`, which supplies
|
||||
}
|
||||
```
|
||||
|
||||
- `news`: the three latest news records (storage pid 11, type 0 - the Solr
|
||||
convention), `link` = `/news/article/<path_segment>` per the NewsDetail
|
||||
route enhancer, image from `fal_media` as processed 640px webp.
|
||||
- `news`: the three latest news records (type 0 - the Solr convention)
|
||||
from the entry's *Data source folders* (empty = 11 + 442) and, when set,
|
||||
in one of its *Data source categories*; `link` =
|
||||
`/news/article/<path_segment>` per the NewsDetail route enhancer, image
|
||||
from `fal_media` as processed 640px webp. Pages carrying the menu are
|
||||
tagged with the news and event tables, so saving such a record refreshes
|
||||
the menu.
|
||||
- `events`: the next two events (`hideonwebsite` = 0, upcoming by
|
||||
eventstart/eventend), `link` = the record's `eventurl` or the events
|
||||
page, image processed the same way.
|
||||
|
||||
@@ -27,6 +27,10 @@
|
||||
<trans-unit id="tx_evomegamenujson_entry.layout.catalog"><source>Catalog (data-driven: categories and items from the site package, teaser cards as featured tiles)</source></trans-unit>
|
||||
<trans-unit id="tx_evomegamenujson_entry.layout.pagetree"><source>Page tree (data-driven: one column per child of the linked page, its children as items; curated columns are ignored)</source></trans-unit>
|
||||
<trans-unit id="tx_evomegamenujson_entry.layout.spotlight"><source>Spotlight (data-driven: left-rail nav from the linked page's children plus live visual cards - latest news, next events - supplied by the site package; curated columns are ignored)</source></trans-unit>
|
||||
<trans-unit id="tx_evomegamenujson_entry.source_pages"><source>Data source folders</source></trans-unit>
|
||||
<trans-unit id="tx_evomegamenujson_entry.source_pages.description"><source>For data-driven panels: the folders the site package reads its records from (e.g. news folders). Empty = the site package's default.</source></trans-unit>
|
||||
<trans-unit id="tx_evomegamenujson_entry.source_categories"><source>Data source categories</source></trans-unit>
|
||||
<trans-unit id="tx_evomegamenujson_entry.source_categories.description"><source>For data-driven panels: only records in one of these categories. Empty = no category restriction.</source></trans-unit>
|
||||
<trans-unit id="tx_evomegamenujson_entry.tree_display"><source>Page tree display</source></trans-unit>
|
||||
<trans-unit id="tx_evomegamenujson_entry.tree_display.description"><source>Columns: one column per child page with its children as links. List + cards: the child pages as a list on the left, the children of the hovered one as image cards on the right (images from the page media).</source></trans-unit>
|
||||
<trans-unit id="tx_evomegamenujson_entry.tree_display.columns"><source>Columns side by side</source></trans-unit>
|
||||
|
||||
@@ -9,6 +9,8 @@ CREATE TABLE tx_evomegamenujson_entry (
|
||||
link varchar(1024) DEFAULT '' NOT NULL,
|
||||
layout varchar(30) DEFAULT 'columns' NOT NULL,
|
||||
tree_display varchar(30) DEFAULT 'columns' NOT NULL,
|
||||
source_pages text,
|
||||
source_categories int(11) unsigned DEFAULT '0' NOT NULL,
|
||||
menu_columns int(11) DEFAULT '0' NOT NULL,
|
||||
menu_teasers int(11) DEFAULT '0' NOT NULL,
|
||||
featured_enable tinyint(1) unsigned DEFAULT '0' NOT NULL,
|
||||
|
||||
Reference in new issue
Block a user