diff --git a/config/sites/ep-reisen/config.yaml b/config/sites/ep-reisen/config.yaml index 8e3c5b19..975adc56 100644 --- a/config/sites/ep-reisen/config.yaml +++ b/config/sites/ep-reisen/config.yaml @@ -165,6 +165,24 @@ routeEnhancers: type: PersistedAliasMapper tableName: tx_epproducts_domain_model_product routeFieldName: path_segment + TravelinfoPlugin: + type: Extbase + extension: EpProducts + plugin: travelinfo + limitToPages: + - 2712 + routes: + - + routePath: '/{travelinfo}' + _controller: 'Travelinfo::index' + _arguments: + travelinfo: travelinfo + defaultController: 'Travelinfo::index' + aspects: + travelinfo: + type: PersistedAliasMapper + tableName: tx_epproducts_domain_model_travelinfo + routeFieldName: path_segment ContingentsIcalPlugin: type: Extbase extension: EpProducts diff --git a/public/typo3conf/ext/ep_products/Classes/Controller/TravelinfoController.php b/public/typo3conf/ext/ep_products/Classes/Controller/TravelinfoController.php new file mode 100644 index 00000000..0461a1cc --- /dev/null +++ b/public/typo3conf/ext/ep_products/Classes/Controller/TravelinfoController.php @@ -0,0 +1,14 @@ +view->assign('travelinfo', $travelinfo); + } +} diff --git a/public/typo3conf/ext/ep_products/Classes/Domain/Model/Date.php b/public/typo3conf/ext/ep_products/Classes/Domain/Model/Date.php index 0f555c80..5fd90f18 100644 --- a/public/typo3conf/ext/ep_products/Classes/Domain/Model/Date.php +++ b/public/typo3conf/ext/ep_products/Classes/Domain/Model/Date.php @@ -29,6 +29,30 @@ namespace EP\EpProducts\Domain\Model; class Date extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity { + /** + * @var Product + */ + protected $product; + + /** + * @var Hotel + */ + protected $hotel; + + /** + * @var Country + */ + protected $country; + + /** + * @var Region + */ + protected $region; + + /** + * @var City + */ + protected $city; /** * @var int @@ -140,6 +164,56 @@ class Date extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity */ protected $new = false; + public function getProduct() + { + return $this->product; + } + + public function setProduct($product) + { + $this->product = $product; + } + + public function getHotel() + { + return $this->hotel; + } + + public function setHotel($hotel) + { + $this->hotel = $hotel; + } + + public function getCountry() + { + return $this->country; + } + + public function setCountry($country) + { + $this->country = $country; + } + + public function getRegion() + { + return $this->region; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getCity() + { + return $this->city; + } + + public function setCity($city) + { + $this->city = $city; + } + /** * @return int $bookingId */ diff --git a/public/typo3conf/ext/ep_products/Classes/Domain/Model/Travelinfo.php b/public/typo3conf/ext/ep_products/Classes/Domain/Model/Travelinfo.php new file mode 100644 index 00000000..d1338276 --- /dev/null +++ b/public/typo3conf/ext/ep_products/Classes/Domain/Model/Travelinfo.php @@ -0,0 +1,261 @@ + + */ + protected $teasers; + + /** + * @var ObjectStorage + */ + protected $links; + + /** + * @var Date + */ + protected $travelDate; + + public function __construct() + { + $this->initStorageObjects(); + } + + protected function initStorageObjects() + { + $this->teasers = new ObjectStorage(); + $this->links = new ObjectStorage(); + } + + /** + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * @param string $title + */ + public function setTitle($title) + { + $this->title = $title; + } + + public function getHeaderImage() + { + return $this->headerImage; + } + + public function setHeaderImage($headerImage) + { + $this->headerImage = $headerImage; + + return $this; + } + + public function getFooterImage() + { + return $this->footerImage; + } + + public function setFooterImage($footerImage) + { + $this->footerImage = $footerImage; + + return $this; + } + + public function getSubline() + { + return $this->subline; + } + + public function setSubline($subline) + { + $this->subline = $subline; + + return $this; + } + + public function getHeadline() + { + return $this->headline; + } + + public function setHeadline($headline) + { + $this->headline = $headline; + + return $this; + } + + public function getIntroText() + { + return $this->introText; + } + + public function setIntroText($introText) + { + $this->introText = $introText; + + return $this; + } + + public function getFooterText() + { + return $this->footerText; + } + + public function setFooterText($footerText) + { + $this->footerText = $footerText; + + return $this; + } + + public function getAdditionalInfo() + { + return $this->additionalInfo; + } + + public function setAdditionalInfo($additionalInfo) + { + $this->additionalInfo = $additionalInfo; + + return $this; + } + + public function getImportantPhoneNumbers() + { + return $this->importantPhoneNumbers; + } + + public function setImportantPhoneNumbers($importantPhoneNumbers) + { + $this->importantPhoneNumbers = $importantPhoneNumbers; + + return $this; + } + + public function getImportantLinks() + { + return $this->importantLinks; + } + + public function setImportantLinks($importantLinks) + { + $this->importantLinks = $importantLinks; + + return $this; + } + + public function getSelfArrangedText() + { + return $this->selfArrangedText; + } + + public function setSelfArrangedText($selfArrangedText) + { + $this->selfArrangedText = $selfArrangedText; + + return $this; + } + + public function getTeasers() + { + return $this->teasers; + } + + public function setTeasers($teasers) + { + $this->teasers = $teasers; + } + + public function getLinks() + { + return $this->links; + } + + public function setLinks($links) + { + $this->links = $links; + + return $this; + } + + public function getTravelDate() + { + return $this->travelDate; + } + + public function setTravelDate($travelDate) + { + $this->travelDate = $travelDate; + } +} + diff --git a/public/typo3conf/ext/ep_products/Classes/Domain/Model/TravelinfoLink.php b/public/typo3conf/ext/ep_products/Classes/Domain/Model/TravelinfoLink.php new file mode 100644 index 00000000..b85bdcfc --- /dev/null +++ b/public/typo3conf/ext/ep_products/Classes/Domain/Model/TravelinfoLink.php @@ -0,0 +1,61 @@ +title; + } + + /** + * @param string $title + */ + public function setTitle($title) + { + $this->title = $title; + } + + public function getLink() + { + return $this->link; + } + + public function setLink($link) + { + $this->link = $link; + } + + public function getIcon() + { + return $this->icon; + } + + public function setIcon($icon) + { + $this->icon = $icon; + } +} + diff --git a/public/typo3conf/ext/ep_products/Classes/Domain/Model/TravelinfoTeaser.php b/public/typo3conf/ext/ep_products/Classes/Domain/Model/TravelinfoTeaser.php new file mode 100644 index 00000000..dadbd70a --- /dev/null +++ b/public/typo3conf/ext/ep_products/Classes/Domain/Model/TravelinfoTeaser.php @@ -0,0 +1,76 @@ +title; + } + + /** + * @param string $title + */ + public function setTitle($title) + { + $this->title = $title; + } + + public function getBodytext() + { + return $this->bodytext; + } + + public function setBodytext($bodytext) + { + $this->bodytext = $bodytext; + } + + public function getIcon() + { + return $this->icon; + } + + public function setIcon($icon) + { + $this->icon = $icon; + } + + public function getImage() + { + return $this->image; + } + + public function setImage($image) + { + $this->image = $image; + } +} + diff --git a/public/typo3conf/ext/ep_products/Classes/Service/DateImportService.php b/public/typo3conf/ext/ep_products/Classes/Service/DateImportService.php index c1002e8b..7977df81 100644 --- a/public/typo3conf/ext/ep_products/Classes/Service/DateImportService.php +++ b/public/typo3conf/ext/ep_products/Classes/Service/DateImportService.php @@ -458,11 +458,20 @@ class DateImportService implements SingletonInterface, LoggerAwareInterface if ($busProId === 0) { continue; } + $timestamp = (string) $attributes['zeit']; + $parts = explode(' ', $timestamp); + if (1 === count($parts)) { + [$timePart, ] = $parts; + $pickupTime = sprintf('%s Uhr', substr($timePart, 0, 5)); + } else { + [$datePart, $timePart] = $parts; + $pickupTime = sprintf('%s Uhr (%s)', substr($timePart, 0, 5), $datePart); + } $pickups[] = [ 'city' => $this->pickups[$busProId]['city'], 'street' => $this->pickups[$busProId]['street'], 'price' => (float) str_replace(',', '.', (string) $attributes['preis']), - 'time' => (string) $attributes['zeit'], + 'time' => $pickupTime, ]; } $date['pickups'] = serialize($pickups); diff --git a/public/typo3conf/ext/ep_products/Classes/Service/LabelService.php b/public/typo3conf/ext/ep_products/Classes/Service/LabelService.php index b9e3e38b..0d52d3a8 100644 --- a/public/typo3conf/ext/ep_products/Classes/Service/LabelService.php +++ b/public/typo3conf/ext/ep_products/Classes/Service/LabelService.php @@ -65,9 +65,10 @@ class LabelService public function getDateLabel(&$parameters, $parentObject) { $date = BackendUtility::getRecord('tx_epproducts_domain_model_date', $parameters['row']['uid']); - $dateFrom = new \DateTime($date['date_start']); - $dateTo = new \DateTime($date['date_end']); - $parameters['title'] = $dateFrom->format('d.m.Y') . ' - ' . $dateTo->format('d.m.Y'); +// $dateFrom = new \DateTime($date['date_start']); +// $dateTo = new \DateTime($date['date_end']); +// $parameters['title'] = sprintf('%s %s (%s)', $date['product_name'], $date['code'], $dateFrom->format('d.m.Y') . ' - ' . $dateTo->format('d.m.Y')); + $parameters['title'] = sprintf('%s (%s)', $date['product_name'], $date['code']); } /** diff --git a/public/typo3conf/ext/ep_products/Configuration/TCA/Overrides/tt_content.php b/public/typo3conf/ext/ep_products/Configuration/TCA/Overrides/tt_content.php index 0fb45fe2..895bbf25 100644 --- a/public/typo3conf/ext/ep_products/Configuration/TCA/Overrides/tt_content.php +++ b/public/typo3conf/ext/ep_products/Configuration/TCA/Overrides/tt_content.php @@ -155,6 +155,12 @@ call_user_func(function () { 'Merkliste' ); + \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( + 'EP.EpProducts', + 'travelinfo', + 'Reiseinformationen' + ); + $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist']['epproducts_product_detail'] = 'pi_flexform'; \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( 'epproducts_product_detail', 'FILE:EXT:ep_products/Configuration/FlexForms/flexform_product_detail.xml' diff --git a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_date.php b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_date.php index 7f6980bf..b45f1644 100644 --- a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_date.php +++ b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_date.php @@ -31,9 +31,8 @@ return [ '1' => ['showitem' => ''], ], 'columns' => [ - 'sys_language_uid' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language', 'config' => [ 'type' => 'select', @@ -75,14 +74,14 @@ return [ ], 'hidden' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hidden', 'config' => [ 'type' => 'check', ], ], 'starttime' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime', 'config' => [ 'type' => 'input', @@ -97,7 +96,7 @@ return [ ], ], 'endtime' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime', 'config' => [ 'type' => 'input', @@ -111,9 +110,38 @@ return [ 'renderType' => 'inputDateTime', ], ], - + 'product' => [ + 'exclude' => true, + 'config' => [ + 'type' => 'passthrough', + ], + ], + 'hotel' => [ + 'exclude' => true, + 'config' => [ + 'type' => 'passthrough', + ], + ], + 'country' => [ + 'exclude' => true, + 'config' => [ + 'type' => 'passthrough', + ], + ], + 'region' => [ + 'exclude' => true, + 'config' => [ + 'type' => 'passthrough', + ], + ], + 'city' => [ + 'exclude' => true, + 'config' => [ + 'type' => 'passthrough', + ], + ], 'bus_pro_id' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'BusPro ID', 'config' => [ 'type' => 'none', @@ -121,7 +149,7 @@ return [ ], ], 'hotel_bus_pro_id' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Hotel BusPro ID', 'config' => [ 'type' => 'none', @@ -129,7 +157,7 @@ return [ ], ], 'code' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Kürzel', 'config' => [ 'type' => 'input', @@ -138,7 +166,7 @@ return [ ], ], 'daytrip' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'tageweise buchbar', 'config' => [ 'type' => 'check', @@ -146,7 +174,7 @@ return [ ] ], 'season' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Saison', 'config' => [ 'type' => 'select', @@ -159,7 +187,7 @@ return [ ], ], 'date_start' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Datum von', 'config' => [ 'dbType' => 'date', @@ -172,7 +200,7 @@ return [ ], ], 'date_end' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Datum bis', 'config' => [ 'dbType' => 'date', @@ -185,7 +213,7 @@ return [ ], ], 'nights' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Nächte', 'config' => [ 'type' => 'input', @@ -194,21 +222,21 @@ return [ ], ], 'board' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Verpflegung', 'config' => [ 'type' => 'none', ], ], 'board_code' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Verpflegung Code', 'config' => [ 'type' => 'none', ], ], 'board_bus_pro_id' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Verpflegung BusPro ID', 'config' => [ 'type' => 'none', @@ -216,7 +244,7 @@ return [ ], ], 'bus_included' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Bus inklusive', 'config' => [ 'type' => 'check', @@ -224,7 +252,7 @@ return [ ] ], 'bus_available' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Bus verfügbar', 'config' => [ 'type' => 'check', @@ -232,7 +260,7 @@ return [ ] ], 'skipass_included' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Skipass inklusive', 'config' => [ 'type' => 'check', @@ -240,7 +268,7 @@ return [ ] ], 'bus_price' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Bus Preis', 'config' => [ 'type' => 'input', @@ -249,7 +277,7 @@ return [ ], ], 'services_included' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Inklusivleistungen', 'config' => [ 'type' => 'text', @@ -259,7 +287,7 @@ return [ ] ], 'services_general' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Leistungen', 'config' => [ 'type' => 'text', @@ -269,7 +297,7 @@ return [ ] ], 'pickups' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Zustiege', 'config' => [ 'type' => 'text', @@ -279,7 +307,7 @@ return [ ] ], 'discount' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Rabatt', 'config' => [ 'type' => 'input', @@ -288,7 +316,7 @@ return [ ], ], 'min_price' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'ab Preis', 'config' => [ 'type' => 'input', @@ -297,7 +325,7 @@ return [ ], ], 'pseudo_price' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'Pseudopreis', 'config' => [ 'type' => 'input', @@ -306,7 +334,7 @@ return [ ], ], 'available' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'verfügbar', 'config' => [ 'type' => 'input', @@ -315,7 +343,7 @@ return [ ], ], 'new' => [ - 'exclude' => 0, + 'exclude' => false, 'label' => 'neu', 'config' => [ 'type' => 'check', diff --git a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_travelinfo.php b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_travelinfo.php new file mode 100644 index 00000000..0b8c1c75 --- /dev/null +++ b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_travelinfo.php @@ -0,0 +1,357 @@ + [ + 'title' => 'Reiseinformationen', + 'default_sortby' => 'ORDER BY title', + 'label' => 'title', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'dividers2tabs' => true, + 'versioningWS' => true, + 'languageField' => 'sys_language_uid', + 'transOrigPointerField' => 'l10n_parent', + 'transOrigDiffSourceField' => 'l10n_diffsource', + 'delete' => 'deleted', + 'enablecolumns' => [ + 'disabled' => 'hidden', + 'starttime' => 'starttime', + 'endtime' => 'endtime', + ], + 'searchFields' => 'name', + 'iconfile' => 'EXT:ep_theme/Resources/Public/images/icon_ce.svg', + ], + 'types' => [ + '1' => [ + 'showitem' => '--palette--;;basics,header_image,footer_image,subline,headline,intro_text,footer_text, + self_arranged_text,additional_info,important_phone_numbers,important_links,links,teasers', + ], + ], + 'palettes' => [ + 'basics' => ['showitem' => 'title,path_segment,--linebreak--,travel_date'], + ], + 'columns' => [ + 'sys_language_uid' => [ + 'exclude' => 0, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'sys_language', + 'foreign_table_where' => 'ORDER BY sys_language.title', + 'items' => [ + ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages', -1], + ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.default_value', 0] + ], + 'default' => 0, + ], + ], + 'l10n_parent' => [ + 'displayCond' => 'FIELD:sys_language_uid:>:0', + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['', 0], + ], + 'foreign_table' => 'tx_epproducts_domain_model_infobox', + 'foreign_table_where' => 'AND tx_epproducts_domain_model_infobox.pid=###CURRENT_PID### AND tx_epproducts_domain_model_infobox.sys_language_uid IN (-1,0)', + ], + ], + 'l10n_diffsource' => [ + 'config' => [ + 'type' => 'passthrough', + ], + ], + + 't3ver_label' => [ + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.versionLabel', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'max' => 255, + ] + ], + + 'hidden' => [ + 'exclude' => 0, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hidden', + 'config' => [ + 'type' => 'check', + ], + ], + 'starttime' => [ + 'exclude' => 0, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime', + 'config' => [ + 'type' => 'input', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true, + ], + 'renderType' => 'inputDateTime', + ], + ], + 'endtime' => [ + 'exclude' => 0, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime', + 'config' => [ + 'type' => 'input', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true, + ], + 'renderType' => 'inputDateTime', + ], + ], + + 'title' => [ + 'exclude' => false, + 'label' => 'Titel (nur intern genutzt)', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim,required' + ], + ], + 'subline' => [ + 'exclude' => 0, + 'label' => 'Subline', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ], + ], + 'headline' => [ + 'exclude' => 0, + 'label' => 'Headline', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ], + ], + 'header_image' => [ + 'exclude' => 0, + 'label' => 'Headerbild', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'header_image', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette', + ], + ], + ], + 'maxitems' => 1, + 'minitems' => 1, + ], + $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] + ), + ], + 'footer_image' => [ + 'exclude' => 0, + 'label' => 'Footerbild', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'footer_image', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette', + ], + ], + ], + 'maxitems' => 1, + 'minitems' => 1, + ], + $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] + ), + ], + 'travel_date' => [ + 'exclude' => false, + 'label' => 'Termin', + 'config' => [ + 'type' => 'group', + 'internal_type' => 'db', + 'allowed' => 'tx_epproducts_domain_model_date', + 'minitems' => 1, + 'maxitems' => 1, + 'size' => 1, + 'fieldControl' => [ + 'elementBrowser' => [ + 'disabled' => true, + ], + ], + 'fieldWizard' => [ + 'recordsOverview' => [ + 'disabled' => true, + ], + ], + 'suggestOptions' => [ + 'default' => [ + 'additionalSearchFields' => 'code,product_name,product_keywords', + 'orderBy' => 'code', + ], + ], + ], + ], + 'intro_text' => [ + 'exclude' => false, + 'label' => 'Introtext', + 'config' => [ + 'type' => 'text', + 'cols' => 40, + 'rows' => 3, + 'eval' => 'trim,required', + 'enableRichtext' => true, + ] + ], + 'footer_text' => [ + 'exclude' => false, + 'label' => 'Footertext', + 'config' => [ + 'type' => 'text', + 'cols' => 40, + 'rows' => 3, + 'eval' => 'trim,required', + 'enableRichtext' => true, + ] + ], + 'self_arranged_text' => [ + 'exclude' => false, + 'label' => 'Eigenanreise', + 'config' => [ + 'type' => 'text', + 'cols' => 40, + 'rows' => 15, + 'eval' => 'trim', + 'enableRichtext' => true, + ] + ], + 'additional_info' => [ + 'exclude' => false, + 'label' => 'Weitere Infos', + 'config' => [ + 'type' => 'text', + 'cols' => 40, + 'rows' => 15, + 'eval' => 'trim', + 'enableRichtext' => true, + ] + ], + 'important_phone_numbers' => [ + 'exclude' => false, + 'label' => 'Wichtige Telefonnummern', + 'config' => [ + 'type' => 'text', + 'cols' => 40, + 'rows' => 15, + 'eval' => 'trim', + 'enableRichtext' => true, + ] + ], + 'important_links' => [ + 'exclude' => false, + 'label' => 'Wichtige Links', + 'config' => [ + 'type' => 'text', + 'cols' => 40, + 'rows' => 15, + 'eval' => 'trim', + 'enableRichtext' => true, + ] + ], + 'teasers' => [ + 'exclude' => false, + 'label' => 'Inhalte', + 'config' => [ + 'type' => 'inline', + 'foreign_table' => 'tx_epproducts_domain_model_travelinfoteaser', + 'foreign_sortby' => 'sorting', + 'foreign_field' => 'tx_epproducts_travelinfo', + 'minitems' => 0, + 'maxitems' => 99, + 'appearance' => [ + 'collapseAll' => true, + 'expandSingle' => true, + 'levelLinksPosition' => 'bottom', + 'useSortable' => true, + 'showPossibleLocalizationRecords' => false, + 'showRemovedLocalizationRecords' => false, + 'showAllLocalizationLink' => false, + 'showSynchronizationLink' => false, + 'enabledControls' => [ + 'info' => false, + ], + ], + 'behaviour' => [ + 'allowLanguageSynchronization' => false, + ], + ] + ], + 'links' => [ + 'exclude' => false, + 'label' => 'Links', + 'config' => [ + 'type' => 'inline', + 'foreign_table' => 'tx_epproducts_domain_model_travelinfolink', + 'foreign_sortby' => 'sorting', + 'foreign_field' => 'tx_epproducts_travelinfo', + 'minitems' => 0, + 'maxitems' => 3, + 'appearance' => [ + 'collapseAll' => true, + 'expandSingle' => true, + 'levelLinksPosition' => 'bottom', + 'useSortable' => true, + 'showPossibleLocalizationRecords' => false, + 'showRemovedLocalizationRecords' => false, + 'showAllLocalizationLink' => false, + 'showSynchronizationLink' => false, + 'enabledControls' => [ + 'info' => false, + ], + ], + 'behaviour' => [ + 'allowLanguageSynchronization' => false, + ], + ] + ], + 'path_segment' => [ + 'exclude' => 0, + 'label' => 'URL', + 'config' => [ + 'type' => 'slug', + 'generatorOptions' => [ + 'fields' => ['title'], + 'prefixParentPageSlug' => false, + 'replacements' => [ + '/' => '-', + ], + ], + 'fallbackCharacter' => '-', + 'eval' => 'unique', + ], + ], + ], +]; diff --git a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_travelinfolink.php b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_travelinfolink.php new file mode 100644 index 00000000..8da329b1 --- /dev/null +++ b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_travelinfolink.php @@ -0,0 +1,164 @@ + [ + 'title' => 'Reiseinfo Link', + 'label' => 'title', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'dividers2tabs' => true, + 'versioningWS' => true, + 'hideTable' => true, + 'languageField' => 'sys_language_uid', + 'transOrigPointerField' => 'l10n_parent', + 'transOrigDiffSourceField' => 'l10n_diffsource', + 'delete' => 'deleted', + 'enablecolumns' => [ + 'disabled' => 'hidden', + 'starttime' => 'starttime', + 'endtime' => 'endtime', + ], + 'searchFields' => 'title', + 'iconfile' => 'EXT:ep_theme/Resources/Public/images/icon_ce.svg', + ], + 'types' => [ + '1' => [ + 'showitem' => '--palette--;;basics,link', + ], + ], + 'palettes' => [ + 'basics' => ['showitem' => 'title,icon,hidden'], + ], + 'columns' => [ + + 'sys_language_uid' => [ + 'exclude' => false, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'sys_language', + 'foreign_table_where' => 'ORDER BY sys_language.title', + 'items' => [ + ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages', -1], + ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.default_value', 0] + ], + 'default' => 0, + ], + ], + 'l10n_parent' => [ + 'displayCond' => 'FIELD:sys_language_uid:>:0', + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['', 0], + ], + 'foreign_table' => 'tx_epproducts_domain_model_faq', + 'foreign_table_where' => 'AND tx_epproducts_domain_model_faq.pid=###CURRENT_PID### AND tx_epproducts_domain_model_faq.sys_language_uid IN (-1,0)', + ], + ], + 'l10n_diffsource' => [ + 'config' => [ + 'type' => 'passthrough', + ], + ], + + 't3ver_label' => [ + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.versionLabel', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'max' => 255, + ] + ], + + 'hidden' => [ + 'exclude' => false, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hidden', + 'config' => [ + 'type' => 'check', + ], + ], + 'starttime' => [ + 'exclude' => false, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime', + 'config' => [ + 'type' => 'input', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true, + ], + 'renderType' => 'inputDateTime', + ], + ], + 'endtime' => [ + 'exclude' => false, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime', + 'config' => [ + 'type' => 'input', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true, + ], + 'renderType' => 'inputDateTime', + ], + ], + + 'title' => [ + 'exclude' => false, + 'label' => 'Bezeichnung', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim,required' + ], + ], + 'link' => [ + 'exclude' => false, + 'label' => 'Bezeichnung', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputLink', + 'size' => 30, + 'eval' => 'trim,required' + ], + ], + 'icon' => [ + 'exclude' => 0, + 'label' => 'Icon', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['Anreise', 'travel'], + ['Skipass', 'skipass'], + ['Kurse', 'course'], + ['Verpflegung', 'food'], + ['Gepäck', 'luggage'], + ['Lift', 'lift'], + ['Webcam', 'webcam'], + ['Wetter', 'weather'], + ['Wissenswertes', 'chat'], + ], + ], + ], + 'tx_epproducts_travelinfo' => [ + 'config' => [ + 'type' => 'passthrough' + ] + ], + 'sorting' => [ + 'config' => [ + 'type' => 'passthrough' + ] + ], + ], +]; diff --git a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_travelinfoteaser.php b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_travelinfoteaser.php new file mode 100644 index 00000000..ee58aaf8 --- /dev/null +++ b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_travelinfoteaser.php @@ -0,0 +1,206 @@ + [ + 'title' => 'Reiseinfo Teaser', + 'label' => 'title', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'dividers2tabs' => true, + 'versioningWS' => true, + 'hideTable' => true, + 'languageField' => 'sys_language_uid', + 'transOrigPointerField' => 'l10n_parent', + 'transOrigDiffSourceField' => 'l10n_diffsource', + 'delete' => 'deleted', + 'enablecolumns' => [ + 'disabled' => 'hidden', + 'starttime' => 'starttime', + 'endtime' => 'endtime', + ], + 'searchFields' => 'title', + 'iconfile' => 'EXT:ep_theme/Resources/Public/images/icon_ce.svg', + ], + 'types' => [ + '1' => [ + 'showitem' => '--palette--;;basics,bodytext,image', + ], + ], + 'palettes' => [ + 'basics' => ['showitem' => 'title,icon,hidden'], + ], + 'columns' => [ + + 'sys_language_uid' => [ + 'exclude' => false, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'sys_language', + 'foreign_table_where' => 'ORDER BY sys_language.title', + 'items' => [ + ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages', -1], + ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.default_value', 0] + ], + 'default' => 0, + ], + ], + 'l10n_parent' => [ + 'displayCond' => 'FIELD:sys_language_uid:>:0', + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['', 0], + ], + 'foreign_table' => 'tx_epproducts_domain_model_faq', + 'foreign_table_where' => 'AND tx_epproducts_domain_model_faq.pid=###CURRENT_PID### AND tx_epproducts_domain_model_faq.sys_language_uid IN (-1,0)', + ], + ], + 'l10n_diffsource' => [ + 'config' => [ + 'type' => 'passthrough', + ], + ], + + 't3ver_label' => [ + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.versionLabel', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'max' => 255, + ] + ], + + 'hidden' => [ + 'exclude' => false, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hidden', + 'config' => [ + 'type' => 'check', + ], + ], + 'starttime' => [ + 'exclude' => false, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime', + 'config' => [ + 'type' => 'input', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true, + ], + 'renderType' => 'inputDateTime', + ], + ], + 'endtime' => [ + 'exclude' => false, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime', + 'config' => [ + 'type' => 'input', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true, + ], + 'renderType' => 'inputDateTime', + ], + ], + + 'title' => [ + 'exclude' => false, + 'label' => 'Bezeichnung/Überschrift', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim,required' + ], + ], + 'bodytext' => [ + 'exclude' => false, + 'label' => 'Text', + 'config' => [ + 'type' => 'text', + 'cols' => 40, + 'rows' => 15, + 'eval' => 'trim,required', + 'enableRichtext' => true, + ] + ], + 'image' => [ + 'exclude' => 0, + 'label' => 'Bild', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'image', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette', + ], + ], + 'columns' => [ + 'crop' => [ + 'config' => [ + 'cropVariants' => [ + 'default' => [ + 'title' => 'Alle Geräte', + 'allowedAspectRatios' => [ + 'teaser' => [ + 'title' => 'quadtratisch', + 'value' => 1, + ], + ], + ], + ], + ], + ], + ], + ], + 'maxitems' => 1, + 'minitems' => 1, + ], + $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] + ), + ], + 'icon' => [ + 'exclude' => 0, + 'label' => 'Icon', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['Anreise', 'travel'], + ['Skipass', 'skipass'], + ['Kurse', 'course'], + ['Verpflegung', 'food'], + ['Gepäck', 'luggage'], + ['Lift', 'lift'], + ['Webcam', 'webcam'], + ['Wetter', 'weather'], + ['Wissenswertes', 'chat'], + ], + ], + ], + 'tx_epproducts_travelinfo' => [ + 'config' => [ + 'type' => 'passthrough' + ] + ], + 'sorting' => [ + 'config' => [ + 'type' => 'passthrough' + ] + ], + ], +]; diff --git a/public/typo3conf/ext/ep_products/ext_localconf.php b/public/typo3conf/ext/ep_products/ext_localconf.php index 1a76c1e5..b08333b8 100644 --- a/public/typo3conf/ext/ep_products/ext_localconf.php +++ b/public/typo3conf/ext/ep_products/ext_localconf.php @@ -248,6 +248,14 @@ $boot = function () { ] ); + \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( + 'EP.ep_products', + 'travelinfo', + [ + 'Travelinfo' => 'index', + ] + ); + \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( 'EP.ep_products', 'ajax', diff --git a/public/typo3conf/ext/ep_products/ext_tables.sql b/public/typo3conf/ext/ep_products/ext_tables.sql index cd562698..81c951d6 100644 --- a/public/typo3conf/ext/ep_products/ext_tables.sql +++ b/public/typo3conf/ext/ep_products/ext_tables.sql @@ -1131,8 +1131,8 @@ CREATE TABLE tx_epproducts_domain_model_contingent hotel int(11) unsigned DEFAULT '0', hotel_code varchar(64) DEFAULT '' NOT NULL, hotel_bus_pro_id varchar(64) DEFAULT '' NOT NULL, - room_code varchar(64) DEFAULT '' NOT NULL, - room_label varchar(64) DEFAULT '' NOT NULL, + room_code varchar(128) DEFAULT '' NOT NULL, + room_label varchar(255) DEFAULT '' NOT NULL, status tinyint(4) unsigned DEFAULT '0' NOT NULL, min_price int(11) DEFAULT '0' NOT NULL, min_nights int(11) DEFAULT '0' NOT NULL, @@ -1348,6 +1348,151 @@ CREATE TABLE tx_epproducts_domain_model_infobox ); +# +# Table structure for table 'tx_epproducts_domain_model_travelinfo' +# +CREATE TABLE tx_epproducts_domain_model_travelinfo +( + + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, + + title varchar(255) DEFAULT '' NOT NULL, + headline varchar(255) DEFAULT '' NOT NULL, + subline varchar(255) DEFAULT '' NOT NULL, + intro_text text DEFAULT '0' NOT NULL, + footer_text text DEFAULT '0' NOT NULL, + self_arranged_text text DEFAULT '0' NOT NULL, + additional_info text DEFAULT '0' NOT NULL, + important_phone_numbers text DEFAULT '0' NOT NULL, + important_links text DEFAULT '0' NOT NULL, + header_image int(11) DEFAULT '0' NOT NULL, + footer_image int(11) DEFAULT '0' NOT NULL, + links int(11) DEFAULT '0' NOT NULL, + teasers int(11) DEFAULT '0' NOT NULL, + travel_date int(11) DEFAULT '0' NOT NULL, + path_segment varchar(255) DEFAULT '' NOT NULL, + + tstamp int(11) unsigned DEFAULT '0' NOT NULL, + crdate int(11) unsigned DEFAULT '0' NOT NULL, + cruser_id int(11) unsigned DEFAULT '0' NOT NULL, + deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, + hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, + starttime int(11) unsigned DEFAULT '0' NOT NULL, + endtime int(11) unsigned DEFAULT '0' NOT NULL, + + t3ver_oid int(11) DEFAULT '0' NOT NULL, + t3ver_id int(11) DEFAULT '0' NOT NULL, + t3ver_wsid int(11) DEFAULT '0' NOT NULL, + t3ver_label varchar(255) DEFAULT '' NOT NULL, + t3ver_state tinyint(4) DEFAULT '0' NOT NULL, + t3ver_stage int(11) DEFAULT '0' NOT NULL, + t3ver_count int(11) DEFAULT '0' NOT NULL, + t3ver_tstamp int(11) DEFAULT '0' NOT NULL, + t3ver_move_id int(11) DEFAULT '0' NOT NULL, + + sys_language_uid int(11) DEFAULT '0' NOT NULL, + l10n_parent int(11) DEFAULT '0' NOT NULL, + l10n_diffsource mediumblob, + + PRIMARY KEY (uid), + KEY parent (pid), + KEY t3ver_oid (t3ver_oid, t3ver_wsid), + KEY language (l10n_parent, sys_language_uid) + +); + +# +# Table structure for table 'tx_epproducts_domain_model_travelinfoteaser' +# +CREATE TABLE tx_epproducts_domain_model_travelinfoteaser +( + + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, + + title varchar(255) DEFAULT '' NOT NULL, + bodytext text DEFAULT '0' NOT NULL, + image int(11) DEFAULT '0' NOT NULL, + icon varchar(255) DEFAULT '' NOT NULL, + + tx_epproducts_travelinfo int(11) unsigned DEFAULT '0' NOT NULL, + sorting int(11) unsigned DEFAULT '0' NOT NULL, + + tstamp int(11) unsigned DEFAULT '0' NOT NULL, + crdate int(11) unsigned DEFAULT '0' NOT NULL, + cruser_id int(11) unsigned DEFAULT '0' NOT NULL, + deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, + hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, + starttime int(11) unsigned DEFAULT '0' NOT NULL, + endtime int(11) unsigned DEFAULT '0' NOT NULL, + + t3ver_oid int(11) DEFAULT '0' NOT NULL, + t3ver_id int(11) DEFAULT '0' NOT NULL, + t3ver_wsid int(11) DEFAULT '0' NOT NULL, + t3ver_label varchar(255) DEFAULT '' NOT NULL, + t3ver_state tinyint(4) DEFAULT '0' NOT NULL, + t3ver_stage int(11) DEFAULT '0' NOT NULL, + t3ver_count int(11) DEFAULT '0' NOT NULL, + t3ver_tstamp int(11) DEFAULT '0' NOT NULL, + t3ver_move_id int(11) DEFAULT '0' NOT NULL, + + sys_language_uid int(11) DEFAULT '0' NOT NULL, + l10n_parent int(11) DEFAULT '0' NOT NULL, + l10n_diffsource mediumblob, + + PRIMARY KEY (uid), + KEY parent (pid), + KEY t3ver_oid (t3ver_oid, t3ver_wsid), + KEY language (l10n_parent, sys_language_uid) + +); + +# +# Table structure for table 'tx_epproducts_domain_model_travelinfolink' +# +CREATE TABLE tx_epproducts_domain_model_travelinfolink +( + + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, + + title varchar(255) DEFAULT '' NOT NULL, + link varchar(255) DEFAULT '' NOT NULL, + icon varchar(255) DEFAULT '' NOT NULL, + + tx_epproducts_travelinfo int(11) unsigned DEFAULT '0' NOT NULL, + sorting int(11) unsigned DEFAULT '0' NOT NULL, + + tstamp int(11) unsigned DEFAULT '0' NOT NULL, + crdate int(11) unsigned DEFAULT '0' NOT NULL, + cruser_id int(11) unsigned DEFAULT '0' NOT NULL, + deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, + hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, + starttime int(11) unsigned DEFAULT '0' NOT NULL, + endtime int(11) unsigned DEFAULT '0' NOT NULL, + + t3ver_oid int(11) DEFAULT '0' NOT NULL, + t3ver_id int(11) DEFAULT '0' NOT NULL, + t3ver_wsid int(11) DEFAULT '0' NOT NULL, + t3ver_label varchar(255) DEFAULT '' NOT NULL, + t3ver_state tinyint(4) DEFAULT '0' NOT NULL, + t3ver_stage int(11) DEFAULT '0' NOT NULL, + t3ver_count int(11) DEFAULT '0' NOT NULL, + t3ver_tstamp int(11) DEFAULT '0' NOT NULL, + t3ver_move_id int(11) DEFAULT '0' NOT NULL, + + sys_language_uid int(11) DEFAULT '0' NOT NULL, + l10n_parent int(11) DEFAULT '0' NOT NULL, + l10n_diffsource mediumblob, + + PRIMARY KEY (uid), + KEY parent (pid), + KEY t3ver_oid (t3ver_oid, t3ver_wsid), + KEY language (l10n_parent, sys_language_uid) + +); + # # Table structure for table 'sys_domain' # diff --git a/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Mod/WebLayout/BackendLayouts/Travelinfo.tsconfig b/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Mod/WebLayout/BackendLayouts/Travelinfo.tsconfig new file mode 100644 index 00000000..9cdca4db --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Mod/WebLayout/BackendLayouts/Travelinfo.tsconfig @@ -0,0 +1,21 @@ +mod.web_layout.BackendLayouts { + travelinfo { + title = Reiseinformationen + config { + backend_layout { + colCount = 1 + rowCount = 1 + rows { + 1 { + columns { + 1 { + name = Content + colPos = 0 + } + } + } + } + } + } + } +} diff --git a/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/RTE.tsconfig b/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/RTE.tsconfig index 61737b9f..5af5eec5 100644 --- a/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/RTE.tsconfig +++ b/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/RTE.tsconfig @@ -12,5 +12,10 @@ RTE { } } } + tx_epproducts_domain_model_travelinfo { + intro_text { + preset = ep-minimal + } + } } } diff --git a/public/typo3conf/ext/ep_theme/Configuration/TypoScript/Page/Main.typoscript b/public/typo3conf/ext/ep_theme/Configuration/TypoScript/Page/Main.typoscript index 31e129aa..89a4652b 100644 --- a/public/typo3conf/ext/ep_theme/Configuration/TypoScript/Page/Main.typoscript +++ b/public/typo3conf/ext/ep_theme/Configuration/TypoScript/Page/Main.typoscript @@ -215,6 +215,13 @@ page { # page.headerData.995 > [end] +[page["backend_layout"] == 'pagets__travelinfo'] + page.bodyTagCObject > + page.bodyTagCObject = TEXT + page.bodyTagCObject.value = + page.headerData.333 > +[end] + [request.getNormalizedParams() && like(request.getNormalizedParams().getHttpUserAgent(), "*Googlebot*")] page.headerData.990 > page.headerData.995 > diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/images/signature_ep_team.png b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/images/signature_ep_team.png new file mode 100644 index 00000000..4d0cca5a Binary files /dev/null and b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/images/signature_ep_team.png differ diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/scroll_to_controller.js b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/scroll_to_controller.js index 2ddf93db..d6a5caa7 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/scroll_to_controller.js +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/scroll_to_controller.js @@ -4,7 +4,8 @@ export default class extends Controller { static values = { target: String } - scroll() { + scroll(e) { + e.preventDefault() document.getElementById(this.targetValue).scrollIntoView({ behavior: 'smooth' }) } } diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/scss/base/_typography.scss b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/scss/base/_typography.scss index e05716da..9b6eb52d 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/scss/base/_typography.scss +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/scss/base/_typography.scss @@ -1,21 +1,21 @@ h1, .headline--primary { - @apply block text-3xl md:text-4xl text-zinc-800 font-bold mb-2; + @apply block text-3xl md:text-4xl font-bold mb-2; } h2, .headline--secondary { - @apply block text-2xl md:text-3xl text-zinc-800 font-bold mb-2; + @apply block text-2xl md:text-3xl font-bold mb-2; } h3, .headline--3 { - @apply block text-xl md:text-2xl text-zinc-800 font-bold leading-6 mb-2; + @apply block text-xl md:text-2xl font-bold leading-6 mb-2; } h4, .headline--4 { - @apply block md:text-lg text-zinc-800 font-bold; + @apply block md:text-lg font-bold; } .headline--underlined:after { @@ -25,7 +25,7 @@ h4, } .subline { - @apply block text-xs md:text-sm font-normal leading-6 text-zinc-500; + @apply block text-xs md:text-sm font-normal leading-6 opacity-60; } // Lists diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Layouts/Page/Travelinfo.html b/public/typo3conf/ext/ep_theme/Resources/Private/Layouts/Page/Travelinfo.html new file mode 100644 index 00000000..efc2be5a --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Layouts/Page/Travelinfo.html @@ -0,0 +1,24 @@ + + +
+ + + + +
Login
+
My E&P
+
+
+ + + + + diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Page/Travelinfo.html b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Page/Travelinfo.html new file mode 100644 index 00000000..a74b1391 --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Page/Travelinfo.html @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Travelinfo/Index.html b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Travelinfo/Index.html new file mode 100644 index 00000000..994afc45 --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Travelinfo/Index.html @@ -0,0 +1,266 @@ + + + + + +
+
+ +
+
+ + +
+
+
+
+

+ {travelinfo.subline} + {travelinfo.headline} +

+ {travelinfo.introText -> f:format.html()} +
+
+
+
+
+
+ +
+
+ Anreise +
+
+
+

+ Adresse +

+

+ {travelinfo.traveldate.hotel.name} +
+ {travelinfo.traveldate.hotel.address -> f:format.nl2br()} +

+ +

+ Bus-Zustiege +

+
    + +
  • + {pickup.city} ({pickup.street}): {pickup.time} +
  • +
    +
+
+ +

+ Eigenanreise +

+

+ {travelinfo.selfArrangedText -> f:format.html()} +

+
+
+
+
+
+

+ Sei vorbereitet! + Organisatorisches +

+
+ +
+ +
+
+ +
+
+ +
+
+
+
+

+ {teaser.title} +

+ {teaser.bodytext -> f:format.html()} +
+
+
+
+
+
+
+ +
+
+
+ +
+
+ Weitere Infos +
+
+
+ {travelinfo.additionalInfo -> f:format.html()} +
+
+
+ +
+
+
+ Wichtige Telefon­nummern +
+
+
+ {travelinfo.importantPhoneNumbers -> f:format.html()} +
+
+
+ +
+
+
+ Wichtige Links vor Ort +
+
+
+ {travelinfo.importantLinks -> f:format.html()} +
+
+
+
+
+
+ {travelinfo.footerText -> f:format.html()} + +
+
+ +
+
+ + + +
+ +
+
+ {item.title -> f:format.raw()} +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +