Seite 1 von 2

FlexContent Felder mit Wysiwig?

Verfasst: 18. Sep 2015, 11:04
von amimoto
Guten Tag,
ist es möglich für die Felder der Flexiblen Produktinformationen den TinyMCE Editor zu aktivieren?
MfG

Re: FlexContent Felder mit Wysiwig?

Verfasst: 18. Sep 2015, 13:26
von supportteam2
Hallo amimoto,

diese Möglichkeit gibt es in Merconis aktuell nicht. Falls Sie sich aber mit der Extension-Programmierung für Contao ein wenig auskennen, haben Sie alternativ zur Nutzung der FlexContents die Möglichkeit, mit einer eigenen, kleinen Extension die Produkt-Tabelle und die Produkt-Erfassungsmaske um eigene Felder zu erweitern. Die eigenen Felder können Sie in der DCA-Konfiguration dann beliebig einstellen, also z. B. auch den Tiny-Editor aktivieren usw.

Re: FlexContent Felder mit Wysiwig?

Verfasst: 19. Okt 2015, 20:56
von amimoto
Dazu noch eine kurze Frage:
Anscheinend kann ich auch kein HTML in den FlexContent Feldern verwenden!? Kann man das abfangen?
Immerhin werden Zeilenumbrüche übernommen und ich kann im Template diese mittels der Funktion nl2br() wieder ausgeben.
Ich versuche mich immer noch um die eigene Erweiterung zu drücken... ;-)

Re: FlexContent Felder mit Wysiwig?

Verfasst: 20. Okt 2015, 08:02
von supportteam2
Die Flex-Content-Felder nutzen beim Speichern der Feldwerte die Contao-Option "decodeEntities". Dies ist für bestimmte FlexContent-Werte sinnvoll, sorgt aber auch dafür, dass die Eingabe für den FlexContent "test1"

Code: Alles auswählen

<p>Hallo<br>Welt</p>


bei der direkten Ausgabe im Template mit

Code: Alles auswählen

<?php echo $this->objProduct->_flexContents['test1']; ?>
als

Code: Alles auswählen

<p>Hallo<br><strong>Welt</strong></p>
im Quelltext ausgegeben wird.

Mit

Code: Alles auswählen

<?php echo html_entity_decode($this->objProduct->_flexContents['test1']); ?>
lassen sich die Entities aber umwandeln, was dann zur gewünschten Ausgabe führt.

Alternativ ist es möglich, im Rahmen einer eigenen kleinen Extension die DCA-Konfiguration von tl_ls_shop_product bzw. tl_ls_shop_variant so zu manipulieren, dass die FlexContent-Felder ihre Werte ohne "decodeEntities" aber mit "allowHtml" oder "preserveTags" abspeichern.

Re: FlexContent Felder mit Wysiwig?

Verfasst: 20. Okt 2015, 16:02
von amimoto
Vielen Dank!

Re: FlexContent Felder mit Wysiwig?

Verfasst: 20. Okt 2015, 17:56
von amimoto
Ich schon wieder... :-)

Ich habe nun versucht der Produkt-Tabelle eigene Felder hinzuzufügen.

Hier meine Datei tl_ls_shop_product.php im Ordner dca:

Code: Alles auswählen

$GLOBALS['TL_DCA']['tl_ls_shop_product']['palettes']['default'] = str_replace('title,','title,subtitle,', $GLOBALS['TL_DCA']['tl_ls_shop_product']['palettes']['default']);
$GLOBALS['TL_DCA']['tl_ls_shop_product']['palettes']['default'] = str_replace('keywords,','keywords,descriptionTab1,descriptionTab2,descriptionTab3,', $GLOBALS['TL_DCA']['tl_ls_shop_product']['palettes']['default']);


$GLOBALS['TL_DCA']['tl_ls_shop_product'] = array
(
	'fields' => array
	(
  		'subtitle' => array
		( 
			'label' => &$GLOBALS['TL_LANG']['tl_ls_shop_product']['subtitle'], 
			'exclude' => true, 
			'inputType' => 'text', 
			'eval' => array(
				'mandatory' => true, 
				'tl_class'=>'w50', 
				'merconis_multilanguage' => true, 
				'decodeEntities' => true, 
				'maxlength'=>255
			), 
			'search' => true 
		), 
		'descriptionTab1' => array
		( 
			'label' => &$GLOBALS['TL_LANG']['tl_ls_shop_product']['descriptionTab1'], 
			'exclude' => true, 
			'inputType' => 'textarea', 
			'eval' => array
			(
				'rte'=>'tinyMCE', 
				'tl_class'=>'clr', 
				'merconis_multilanguage' => true, 
				'decodeEntities' => true
			), 
			'search' => true 
		), 
		'descriptionTab2' => array
		( 
			'label' => &$GLOBALS['TL_LANG']['tl_ls_shop_product']['descriptionTab2'], 
			'exclude' => true, 
			'inputType' => 'textarea', 
			'eval' => array
			(
				'rte'=>'tinyMCE', 
				'tl_class'=>'clr', 
				'merconis_multilanguage' => true, 
				'decodeEntities' => true
			), 
			'search' => true 
		), 
		'descriptionTab3' => array
		( 
			'label' => &$GLOBALS['TL_LANG']['tl_ls_shop_product']['descriptionTab3'], 
			'exclude' => true, 
			'inputType' => 'textarea', 
			'eval' => array
			(
				'rte'=>'tinyMCE', 
				'tl_class'=>'clr', 
				'merconis_multilanguage' => true, 
				'decodeEntities' => true
			), 
			'search' => true 
		)
	)
);
Wenn ich nun die Datenbank aktualisieren will, dann sollen die anderen multilingualen Felder gelöscht werden:

Code: Alles auswählen

ALTER TABLE `tl_ls_shop_product` DROP `title_en`;
	
ALTER TABLE `tl_ls_shop_product` DROP `title_de`;
	
ALTER TABLE `tl_ls_shop_product` DROP `description_en`;
	
ALTER TABLE `tl_ls_shop_product` DROP `description_de`;
	
ALTER TABLE `tl_ls_shop_product` DROP `shortDescription_en`;
	
ALTER TABLE `tl_ls_shop_product` DROP `shortDescription_de`;
	
ALTER TABLE `tl_ls_shop_product` DROP `keywords_en`;
	
ALTER TABLE `tl_ls_shop_product` DROP `keywords_de`;
	
ALTER TABLE `tl_ls_shop_product` DROP `flex_contents_en`;
	
ALTER TABLE `tl_ls_shop_product` DROP `flex_contents_de`;
	
ALTER TABLE `tl_ls_shop_product` DROP `lsShopProductQuantityUnit_en`;
	
ALTER TABLE `tl_ls_shop_product` DROP `lsShopProductQuantityUnit_de`;
	
ALTER TABLE `tl_ls_shop_product` DROP `lsShopProductMengenvergleichUnit_en`;
	
ALTER TABLE `tl_ls_shop_product` DROP `lsShopProductMengenvergleichUnit_de`;
Das hängt vermutlich mit dem "'merconis_multilanguage' => true," zusammen??
Muß ich meine Felder noch anders wo registrieren?

Re: FlexContent Felder mit Wysiwig?

Verfasst: 8. Nov 2015, 12:46
von amimoto
Guten Tag,
hier komme ich nicht wirklich weiter. Ich habe nun versucht, die zusätzlichen Inhalte als Artikel Content anzulegen und dann per Insert-tag in die FlexContent-Felder einzubinden. Das scheint aber nicht zu funktionieren!?
Wie komme ich da weiter??
MfG

Re: FlexContent Felder mit Wysiwig?

Verfasst: 8. Nov 2015, 13:02
von amimoto
Oh, sorry, Korrektur: Insert-Tags funktionieren doch... ;-)
Trotzdem würde ich lieber eigene Felder mit Wyswig-Editor anlegen...

Re: FlexContent Felder mit Wysiwig?

Verfasst: 8. Nov 2015, 23:53
von supportteam2
Hallo und zunächst sorry für die lange Wartezeit, Ihre Rückfrage vom 20. Oktober haben wir schlicht und einfach übersehen!

Das Problem mit Ihrer DCA-Datei ist, dass Sie darin das Array $GLOBALS['TL_DCA']['tl_ls_shop_product'] nicht erweitern, sondern überschreiben. Der genaue Hintergrund, warum das dazu führt, dass Contao die Sprachfelder aus der Datenbank löschen möchte, ist etwas kompliziert zu erklären, aber auch nicht so wichtig. Sie müssen lediglich sicherstellen, dass Sie die Originale DCA-Definition nicht überschreiben, sondern durch weitere Felder ergänzen.

Also z. B. so:

Code: Alles auswählen

$GLOBALS['TL_DCA']['tl_ls_shop_product']['fields']['subtitle'] = array (
    'label' => &$GLOBALS['TL_LANG']['tl_ls_shop_product']['subtitle'],
    'exclude' => true,
    'inputType' => 'text',
    'eval' => array (
        'mandatory' => true,
        'tl_class'=>'w50',
        'merconis_multilanguage' => true,
        'decodeEntities' => true,
        'maxlength'=>255
    ),
    'search' => true
);
Ihre neuen Felder müssen Sie auch noch in der Datenbank anlegen. Hierbei legen Sie jeweils nur ein sprachunabhängiges Feld an, Merconis erstellt dann automatisch die entsprechenden Sprachfelder, wenn dies aufgrund Ihrer DCA-Konfiguration nötig ist. Sie können mal einen Blick in die database.sql von Merconis werfen, um zu sehen, wie das für die Standard-DCA-Konfiguration aussieht.

Re: FlexContent Felder mit Wysiwig?

Verfasst: 9. Nov 2015, 10:49
von amimoto
Guten Tag,
Vielen Dank, das hat super geklappt!
Ich hatte zwar gestern gerade eine alternative Lösung mit den Insert-Tags aufgebaut, aber so gefällt es mir viel besser.
Eine Frage habe ich aber doch noch:
Wie rufe ich meine neuen Felder im Template auf??
$this->objProduct->_subtitle scheint nicht gesetzt...