diff --git a/public/typo3conf/ext/ep_products/Classes/Domain/Model/Hotel.php b/public/typo3conf/ext/ep_products/Classes/Domain/Model/Hotel.php index 4ceec259..b32d36a1 100644 --- a/public/typo3conf/ext/ep_products/Classes/Domain/Model/Hotel.php +++ b/public/typo3conf/ext/ep_products/Classes/Domain/Model/Hotel.php @@ -285,6 +285,56 @@ class Hotel extends AbstractEntity implements TeaserInterface */ protected $mainSeasonTo; + /** + * @var int + */ + protected $bedsCount = 0; + + /** + * @var int + */ + protected $parkingCount = 0; + + /** + * @var string + */ + protected $altitude = ''; + + /** + * @var string + */ + protected $shower = ''; + + /** + * @var bool + */ + protected $partyroom = false; + + /** + * @var bool + */ + protected $gamesroom = false; + + /** + * @var bool + */ + protected $sauna = false; + + /** + * @var bool + */ + protected $wifi = false; + + /** + * @var string + */ + protected $distanceBus = ''; + + /** + * @var string + */ + protected $distanceLift = ''; + public function __construct() { $this->initStorageObjects(); @@ -1103,4 +1153,104 @@ class Hotel extends AbstractEntity implements TeaserInterface { $this->mainSeasonTo = $mainSeasonTo; } + + public function getBedsCount() + { + return $this->bedsCount; + } + + public function setBedsCount($bedsCount) + { + $this->bedsCount = $bedsCount; + } + + public function getParkingCount() + { + return $this->parkingCount; + } + + public function setParkingCount($parkingCount) + { + $this->parkingCount = $parkingCount; + } + + public function getAltitude() + { + return $this->altitude; + } + + public function setAltitude($altitude) + { + $this->altitude = $altitude; + } + + public function getShower() + { + return $this->shower; + } + + public function setShower($shower) + { + $this->shower = $shower; + } + + public function isPartyroom() + { + return $this->partyroom; + } + + public function setPartyroom($partyroom) + { + $this->partyroom = $partyroom; + } + + public function isGamesroom() + { + return $this->gamesroom; + } + + public function setGamesroom($gamesroom) + { + $this->gamesroom = $gamesroom; + } + + public function isSauna() + { + return $this->sauna; + } + + public function setSauna($sauna) + { + $this->sauna = $sauna; + } + + public function isWifi() + { + return $this->wifi; + } + + public function setWifi($wifi) + { + $this->wifi = $wifi; + } + + public function getDistanceBus() + { + return $this->distanceBus; + } + + public function setDistanceBus($distanceBus) + { + $this->distanceBus = $distanceBus; + } + + public function getDistanceLift() + { + return $this->distanceLift; + } + + public function setDistanceLift($distanceLift) + { + $this->distanceLift = $distanceLift; + } } diff --git a/public/typo3conf/ext/ep_products/Classes/Middleware/ProductApiMiddleware.php b/public/typo3conf/ext/ep_products/Classes/Middleware/ProductApiMiddleware.php index f240a7f8..108a9113 100644 --- a/public/typo3conf/ext/ep_products/Classes/Middleware/ProductApiMiddleware.php +++ b/public/typo3conf/ext/ep_products/Classes/Middleware/ProductApiMiddleware.php @@ -149,6 +149,16 @@ class ProductApiMiddleware implements MiddlewareInterface 'hotel.room_types', 'hotel.additional_information', 'hotel.address', + 'hotel.beds_count', + 'hotel.parking_count', + 'hotel.altitude', + 'hotel.shower', + 'hotel.partyroom', + 'hotel.gamesroom', + 'hotel.sauna', + 'hotel.wifi', + 'hotel.distance_bus', + 'hotel.distance_lift', ) ->from('tx_epproducts_domain_model_hotel', 'hotel') ->leftJoin('hotel', 'tx_epproducts_domain_model_matchcode', 'alias', 'hotel.uid = alias.entity AND alias.entity_type="hotel"') @@ -179,6 +189,18 @@ class ProductApiMiddleware implements MiddlewareInterface 'additionalInformation' => $hotel['additional_information'], 'address' => $hotel['address'], 'images' => $images, + 'icons' => [ + 'bedsCount' => (int) $hotel['beds_count'], + 'parkingCount' => (int) $hotel['parking_count'], + 'altitude' => $hotel['altitude'], + 'shower' => $hotel['shower'], + 'partyroom' => (bool) $hotel['partyroom'], + 'gamesroom' => (bool) $hotel['gamesroom'], + 'sauna' => (bool) $hotel['sauna'], + 'wifi' => (bool) $hotel['wifi'], + 'distanceBus' => $hotel['distance_bus'], + 'distanceLift' => $hotel['distance_lift'], + ], ]; } } diff --git a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_hotel.php b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_hotel.php index 940804c3..f75b2351 100644 --- a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_hotel.php +++ b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_hotel.php @@ -31,7 +31,8 @@ return [ --div--;Verknüpfungen, facts, teamer, additional_codes, mappings, --div--;Bilder/Dateien, teaser_images, header_images, images, reseller_images, --div--;Gruppenhaus Preise, --palette--;;season,--palette--;;others, groups_price_configs, - groups_price_boards, groups_price_options', + groups_price_boards, groups_price_options, + --div--;Gruppenhaus Icons, --palette--;;icons', ], ], 'palettes' => [ @@ -42,7 +43,8 @@ return [ 'name' => ['showitem' => 'name,short_name,--linebreak--,header_title,header_subtitle,--linebreak--,headline'], 'categories' => ['showitem' => 'type,category'], 'season' => ['showitem' => 'main_season_from, main_season_to'], - 'others' => ['showitem' => 'season,groups_price_tax_label, groups_price_adolescents_age'] + 'others' => ['showitem' => 'season,groups_price_tax_label, groups_price_adolescents_age'], + 'icons' => ['showitem' => 'beds_count,parking_count,altitude,shower,partyroom,gamesroom,sauna,wifi,distance_bus,distance_lift'], ], 'columns' => [ @@ -758,5 +760,87 @@ return [ 'renderType' => 'inputDateTime', ], ], + 'beds_count' => [ + 'exclude' => 0, + 'label' => 'Anzahl Betten', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'int', + ], + ], + 'parking_count' => [ + 'exclude' => 0, + 'label' => 'Anzahl Parkplätze', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'int', + ], + ], + 'altitude' => [ + 'exclude' => 0, + 'label' => 'Höhe', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim', + ], + ], + 'shower' => [ + 'exclude' => 0, + 'label' => 'Dusche', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim', + ], + ], + 'partyroom' => [ + 'exclude' => 0, + 'label' => 'Partyraum', + 'config' => [ + 'type' => 'check', + ], + ], + 'gamesroom' => [ + 'exclude' => 0, + 'label' => 'Spieleraum', + 'config' => [ + 'type' => 'check', + ], + ], + 'sauna' => [ + 'exclude' => 0, + 'label' => 'Sauna', + 'config' => [ + 'type' => 'check', + ], + ], + 'wifi' => [ + 'exclude' => 0, + 'label' => 'WiFi', + 'config' => [ + 'type' => 'check', + ], + ], + 'distance_bus' => [ + 'exclude' => 0, + 'label' => 'Entfernung zum Bus', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim', + ], + ], + 'distance_lift' => [ + 'exclude' => 0, + 'label' => 'Entfernung zum Lift', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim', + ], + ], ], ]; diff --git a/public/typo3conf/ext/ep_products/ext_tables.sql b/public/typo3conf/ext/ep_products/ext_tables.sql index 071b05ef..b947f3ea 100644 --- a/public/typo3conf/ext/ep_products/ext_tables.sql +++ b/public/typo3conf/ext/ep_products/ext_tables.sql @@ -260,6 +260,16 @@ CREATE TABLE tx_epproducts_domain_model_hotel groups_price_tax_label varchar(255) DEFAULT '' NOT NULL, main_season_from date DEFAULT NULL, main_season_to date DEFAULT NULL, + beds_count int(11) DEFAULT '0' NOT NULL, + parking_count int(11) DEFAULT '0' NOT NULL, + altitude varchar(255) DEFAULT '' NOT NULL, + shower varchar(255) DEFAULT '' NOT NULL, + partyroom tinyint(4) unsigned DEFAULT '0' NOT NULL, + gamesroom tinyint(4) unsigned DEFAULT '0' NOT NULL, + sauna tinyint(4) unsigned DEFAULT '0' NOT NULL, + wifi tinyint(4) unsigned DEFAULT '0' NOT NULL, + distance_bus varchar(255) DEFAULT '' NOT NULL, + distance_lift varchar(255) DEFAULT '' NOT NULL, tstamp int(11) unsigned DEFAULT '0' NOT NULL, crdate int(11) unsigned DEFAULT '0' NOT NULL,