Files
VITEC-website/packages/vitec/Configuration/TCA/tx_vitec_domain_model_location.php
khaccount eae40f4286 Success-story migration + new plugins + JSON/UX polish
- Success Stories: full migration from old site (48/48, audited),
  markets n:n, quotation content block, columns content block,
  pretty SEO detail URLs via SuccessStoryPathRewrite middleware,
  list/detail split (list page 4 / story page), detailUrl/backUrl
- New plugins: VITEC Locations (grid/list/map + RTE map text),
  VITEC Customer Logos (color/bw logic, only-show-selected),
  VITEC Card (one plugin for product/story/market/solution
  with reloading FlexForm + custom backend preview renderer)
- Eventlist: layout dropdown (list/grid/teaserbar) in settings
- Hero section CB: Images/Video tabs, background video + overlay
- Product JSON: full category rootline (parents), fixed missing
  ConnectionPool import (all-products crash), category tree map
- Backend preview CSS: container-query responsive (narrow columns)
- Docs: ISO architecture spec, root + extension READMEs

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 09:53:33 +02:00

169 lines
7.0 KiB
PHP
Executable File

<?php
return [
'ctrl' => [
'title' => 'VITEC Location',
'label' => 'title',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'sortby' => 'sorting',
'delete' => 'deleted',
'enablecolumns' => [
'disabled' => 'hidden',
'starttime' => 'starttime',
'endtime' => 'endtime',
],
'searchFields' => 'title,slug,city,country,country_code',
'iconfile' => 'EXT:vitec/Resources/Public/Icons/vitec-plugin-locationlist.svg',
'security' => [
'ignorePageTypeRestriction' => true,
],
],
'types' => [
'1' => [
'showitem' =>
'--div--;General,
title, slug, country_code,
--palette--;Coordinates;coords,
--div--;Address,
address_company, street, address_additional,
--palette--;;cityline,
region, country,
--div--;Contact & Links,
phone, fax, email, contact_link, legal_links,
--div--;Marker,
marker_label, marker_color, marker_size,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,
hidden, starttime, endtime',
],
],
'palettes' => [
'coords' => ['showitem' => 'latitude, longitude'],
'cityline' => ['showitem' => 'postal_code, city'],
],
'columns' => [
'hidden' => [
'exclude' => true,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.visible',
'config' => [
'type' => 'check',
'renderType' => 'checkboxToggle',
'items' => [['value' => '', 'label' => '', 'invertStateDisplay' => true]],
],
],
'starttime' => [
'exclude' => true,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime',
'config' => ['type' => 'datetime', 'default' => 0],
],
'endtime' => [
'exclude' => true,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime',
'config' => ['type' => 'datetime', 'default' => 0, 'range' => ['upper' => mktime(0, 0, 0, 1, 1, 2038)]],
],
// ----------------------------------------------------------- General
'title' => [
'label' => 'Name',
'config' => ['type' => 'input', 'size' => 40, 'eval' => 'trim', 'required' => true, 'default' => ''],
],
'slug' => [
'label' => 'Slug',
'config' => [
'type' => 'slug',
'size' => 50,
'generatorOptions' => ['fields' => ['title'], 'fieldSeparator' => '-', 'replacements' => ['/' => '', ',' => '']],
'fallbackCharacter' => '-',
'eval' => 'uniqueInPid',
],
],
'country_code' => [
'label' => 'Country Code (ISO 3166-1 alpha-2)',
'description' => 'e.g. US, DE, GB',
'config' => ['type' => 'input', 'size' => 6, 'max' => 5, 'eval' => 'trim,upper', 'default' => ''],
],
'latitude' => [
'label' => 'Latitude',
'config' => ['type' => 'number', 'format' => 'decimal', 'default' => 0, 'range' => ['lower' => -90, 'upper' => 90]],
],
'longitude' => [
'label' => 'Longitude',
'config' => ['type' => 'number', 'format' => 'decimal', 'default' => 0, 'range' => ['lower' => -180, 'upper' => 180]],
],
// ----------------------------------------------------------- Address
'address_company' => [
'label' => 'Company (optional)',
'config' => ['type' => 'input', 'size' => 40, 'eval' => 'trim', 'default' => ''],
],
'street' => [
'label' => 'Street',
'config' => ['type' => 'input', 'size' => 40, 'eval' => 'trim', 'default' => ''],
],
'address_additional' => [
'label' => 'Additional (optional)',
'config' => ['type' => 'input', 'size' => 40, 'eval' => 'trim', 'default' => ''],
],
'postal_code' => [
'label' => 'Postal Code',
'config' => ['type' => 'input', 'size' => 10, 'max' => 20, 'eval' => 'trim', 'default' => ''],
],
'city' => [
'label' => 'City',
'config' => ['type' => 'input', 'size' => 30, 'eval' => 'trim', 'default' => ''],
],
'region' => [
'label' => 'Region / State (optional)',
'description' => 'e.g. GA',
'config' => ['type' => 'input', 'size' => 20, 'eval' => 'trim', 'default' => ''],
],
'country' => [
'label' => 'Country (display name)',
'config' => ['type' => 'input', 'size' => 30, 'eval' => 'trim', 'default' => ''],
],
// --------------------------------------------------- Contact & Links
'phone' => [
'label' => 'Phone',
'config' => ['type' => 'input', 'size' => 30, 'max' => 100, 'eval' => 'trim', 'default' => ''],
],
'fax' => [
'label' => 'Fax',
'config' => ['type' => 'input', 'size' => 30, 'max' => 100, 'eval' => 'trim', 'default' => ''],
],
'email' => [
'label' => 'E-Mail',
'config' => ['type' => 'email', 'size' => 40, 'default' => ''],
],
'contact_link' => [
'label' => 'Contact Link',
'config' => ['type' => 'link', 'allowedTypes' => ['page', 'url', 'email']],
],
'legal_links' => [
'label' => 'Legal Links',
'description' => 'One link per line (page link or URL).',
'config' => ['type' => 'text', 'cols' => 40, 'rows' => 3, 'eval' => 'trim'],
],
// ------------------------------------------------------------ Marker
'marker_label' => [
'label' => 'Marker Label (optional)',
'description' => 'Falls back to the location name.',
'config' => ['type' => 'input', 'size' => 40, 'eval' => 'trim', 'default' => ''],
],
'marker_color' => [
'label' => 'Marker Color',
'config' => ['type' => 'color', 'default' => '#ff6633'],
],
'marker_size' => [
'label' => 'Marker Size (scale, e.g. 0.5)',
'config' => [
'type' => 'number',
'format' => 'decimal',
'default' => 0.5,
'range' => ['lower' => 0, 'upper' => 5],
'slider' => ['step' => 0.05, 'width' => 200],
],
],
],
];