diff --git a/web/typo3conf/ext/ep_products/Classes/Domain/Model/Hotel.php b/web/typo3conf/ext/ep_products/Classes/Domain/Model/Hotel.php
index 4b87ceb6..c3c4261c 100644
--- a/web/typo3conf/ext/ep_products/Classes/Domain/Model/Hotel.php
+++ b/web/typo3conf/ext/ep_products/Classes/Domain/Model/Hotel.php
@@ -153,6 +153,11 @@ class Hotel extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity implements Te
*/
protected $images;
+ /**
+ * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference>
+ */
+ protected $resellerImages;
+
/**
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference>
*/
@@ -224,6 +229,7 @@ class Hotel extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity implements Te
protected function initStorageObjects()
{
$this->images = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
+ $this->resellerImages = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
$this->teaserImages = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
$this->headerImages = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
$this->teamer = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
@@ -510,6 +516,22 @@ class Hotel extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity implements Te
$this->images = $images;
}
+ /**
+ * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference> $resellerImages
+ */
+ public function getResellerImages()
+ {
+ return $this->resellerImages;
+ }
+
+ /**
+ * @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference> $resellerImages
+ */
+ public function setResellerImages($resellerImages)
+ {
+ $this->resellerImages = $resellerImages;
+ }
+
/**
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage
*/
diff --git a/web/typo3conf/ext/ep_products/Classes/Domain/Serialization/Hotel.php b/web/typo3conf/ext/ep_products/Classes/Domain/Serialization/Hotel.php
index 7d935425..037e2305 100644
--- a/web/typo3conf/ext/ep_products/Classes/Domain/Serialization/Hotel.php
+++ b/web/typo3conf/ext/ep_products/Classes/Domain/Serialization/Hotel.php
@@ -56,6 +56,11 @@ class Hotel
*/
public $features;
+ /**
+ * @var array
+ */
+ public $images = [];
+
/**
* @var array
*/
@@ -74,6 +79,7 @@ class Hotel
$hotel->type = \EP\EpProducts\Domain\Model\Hotel::$typeLabels[$entity->getType()];
$hotel->description = SerializationUtility::sanitizeText($entity->getDescription());
$hotel->features = SerializationUtility::sanitizeText($entity->getFeatures());
+ $hotel->images['image'] = SerializationUtility::preprocessImages($entity->getResellerImages());
return $hotel;
}
diff --git a/web/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_hotel.php b/web/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_hotel.php
index 55e951a8..90ad7779 100644
--- a/web/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_hotel.php
+++ b/web/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_hotel.php
@@ -22,14 +22,14 @@ return [
'endtime' => 'endtime',
],
'searchFields' => 'name,headline,teaser,description,features,room_types,additional_information,teaser_images,
- header_images,images,code,type,category,country,region,city,teamer,products,',
+ header_images,images,reseller_images,code,type,category,country,region,city,teamer,products,',
'iconfile' => 'EXT:ep_products/Resources/Public/Icons/tx_epproducts_domain_model_hotel.gif'
],
'interface' => [
'showRecordFieldList' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, name, detail_page, keywords,
address, longitude, latitude, headline, teaser, description, features, room_types, additional_information,
- teaser_images, header_images, images, code, type, category, country, region, city, facts, teamer, products,
- header_title,header_subtitle, earlybird, low_contingent, show_as_teaser',
+ teaser_images, header_images, images, reseller_images, code, type, category, country, region, city, facts,
+ teamer, products, header_title,header_subtitle, earlybird, low_contingent, show_as_teaser',
],
'types' => [
'1' => [
@@ -37,7 +37,7 @@ return [
--palette--;;destinations, --palette--;;categories, keywords,
--div--;Texte, teaser, description, features, room_types, additional_information,
--div--;Verknüpfungen, facts, teamer, additional_codes,
- --div--;Bilder/Dateien, teaser_images, header_images, images',
+ --div--;Bilder/Dateien, teaser_images, header_images, images, reseller_images',
'columnsOverrides' => [
'teaser' => [
'defaultExtras' => 'richtext[]:rte_transform[mode=ts_links]',
@@ -344,7 +344,7 @@ return [
],
'images' => [
'exclude' => 0,
- 'label' => 'LLL:EXT:ep_products/Resources/Private/Language/locallang.xlf:tx_epproducts_domain_model_hotel.images',
+ 'label' => 'Bilder',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'images',
[
@@ -368,6 +368,32 @@ return [
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
+ 'reseller_images' => [
+ 'exclude' => 0,
+ 'label' => 'Bilder für Vertriebspartner',
+ 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
+ 'reseller_images',
+ [
+ 'appearance' => [
+ 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
+ ],
+ 'foreign_types' => [
+ '0' => [
+ 'showitem' => '
+ --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
+ --palette--;;filePalette'
+ ],
+ \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
+ 'showitem' => '
+ --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
+ --palette--;;filePalette'
+ ],
+ ],
+ 'maxitems' => 10
+ ],
+ $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
+ ),
+ ],
'code' => [
'exclude' => 0,
'label' => 'LLL:EXT:ep_products/Resources/Private/Language/locallang.xlf:tx_epproducts_domain_model_hotel.code',
diff --git a/web/typo3conf/ext/ep_products/ext_tables.sql b/web/typo3conf/ext/ep_products/ext_tables.sql
index a362b959..c220c1a8 100644
--- a/web/typo3conf/ext/ep_products/ext_tables.sql
+++ b/web/typo3conf/ext/ep_products/ext_tables.sql
@@ -202,6 +202,7 @@ CREATE TABLE tx_epproducts_domain_model_hotel (
teaser_images int(11) unsigned NOT NULL default '0',
header_images int(11) unsigned NOT NULL default '0',
images int(11) unsigned NOT NULL default '0',
+ reseller_images int(11) unsigned NOT NULL default '0',
code varchar(255) DEFAULT '' NOT NULL,
groupsch_id varchar(8) DEFAULT '' NOT NULL,
type varchar(255) DEFAULT '' NOT NULL,
diff --git a/web/typo3conf/ext/ep_theme/Resources/Private/Templates/Reseller/Copypaste.html b/web/typo3conf/ext/ep_theme/Resources/Private/Templates/Reseller/Copypaste.html
index 07e2ffea..19dd111f 100644
--- a/web/typo3conf/ext/ep_theme/Resources/Private/Templates/Reseller/Copypaste.html
+++ b/web/typo3conf/ext/ep_theme/Resources/Private/Templates/Reseller/Copypaste.html
@@ -23,9 +23,9 @@
-
+
-
+
@@ -99,80 +99,93 @@
Termine, Zimmer und Leistungen
-
-
-
- | von |
- {date.from} |
-
-
- | bis |
- {date.to} |
-
-
- | Nächte |
- {date.nights} |
-
-
- | Abpreis |
- {date.minprice} € |
-
-
- | Bus inkl. |
- {f:if(condition: date.busincluded, then: 'ja', else: 'nein')} |
-
-
- | Skipass inkl. |
- {f:if(condition: date.skipassincluded, then: 'ja', else: 'nein')} |
-
-
- | Zimmer |
-
-
-
-
- | Bezeichnung |
- Preis |
- verfügbar |
-
-
-
-
+
+
+
+
+
+ | von |
+ {date.from} |
+
+
+ | bis |
+ {date.to} |
+
+
+ | Nächte |
+ {date.nights} |
+
+
+ | Abpreis |
+ {date.minprice} € |
+
+
+ | Bus inkl. |
+ {f:if(condition: date.busincluded, then: 'ja', else: 'nein')} |
+
+
+ | Skipass inkl. |
+ {f:if(condition: date.skipassincluded, then: 'ja', else: 'nein')} |
+
+
+ | Zimmer |
+
+
+
- | {room.name} |
- {room.price} € |
- {room.available} |
+ Bezeichnung |
+ Preis |
+ verfügbar |
-
-
-
- |
-
-
- | Inklusivleistungen |
-
- {date.servicesincluded.service -> v:iterator.implode(glue: ' ')}
- |
-
-
- | Zusatzleistungen |
-
-
-
-
- | {service.label} |
- {service.price} € |
-
-
-
- |
-
-
- | Buchungslink |
- URL |
-
-
-
+
+
+
+
+ | {room.name} |
+ {room.price} € |
+ {room.available} |
+
+
+
+
+ |
+
+
+ | Inklusivleistungen |
+
+ {date.servicesincluded.service -> v:iterator.implode(glue: ' ')}
+ |
+
+
+ | Zusatzleistungen |
+
+
+
+
+ | {service.label} |
+ {service.price} € |
+
+
+
+ |
+
+
+ | Buchungslink |
+ URL |
+
+
+
+
+
+ Aktuell nicht buchbar.
+
+
+
+ Bilder
+
+ {image}
+
+