- 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>
169 lines
7.0 KiB
PHP
Executable File
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],
|
|
],
|
|
],
|
|
],
|
|
];
|