FlexContent Felder mit Wysiwig?

Fragen und Antworten zur Produktverwaltung inkl. Import
amimoto
Beiträge: 51
Registriert: 18. Sep 2015, 11:01

FlexContent Felder mit Wysiwig?

Beitrag von amimoto »

Guten Tag,
ist es möglich für die Felder der Flexiblen Produktinformationen den TinyMCE Editor zu aktivieren?
MfG
Benutzeravatar
supportteam2
Beiträge: 427
Registriert: 4. Mär 2015, 14:05

Re: FlexContent Felder mit Wysiwig?

Beitrag 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.
amimoto
Beiträge: 51
Registriert: 18. Sep 2015, 11:01

Re: FlexContent Felder mit Wysiwig?

Beitrag 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... ;-)
Benutzeravatar
supportteam2
Beiträge: 427
Registriert: 4. Mär 2015, 14:05

Re: FlexContent Felder mit Wysiwig?

Beitrag 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.
amimoto
Beiträge: 51
Registriert: 18. Sep 2015, 11:01

Re: FlexContent Felder mit Wysiwig?

Beitrag von amimoto »

Vielen Dank!
amimoto
Beiträge: 51
Registriert: 18. Sep 2015, 11:01

Re: FlexContent Felder mit Wysiwig?

Beitrag 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?
amimoto
Beiträge: 51
Registriert: 18. Sep 2015, 11:01

Re: FlexContent Felder mit Wysiwig?

Beitrag 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
amimoto
Beiträge: 51
Registriert: 18. Sep 2015, 11:01

Re: FlexContent Felder mit Wysiwig?

Beitrag von amimoto »

Oh, sorry, Korrektur: Insert-Tags funktionieren doch... ;-)
Trotzdem würde ich lieber eigene Felder mit Wyswig-Editor anlegen...
Benutzeravatar
supportteam2
Beiträge: 427
Registriert: 4. Mär 2015, 14:05

Re: FlexContent Felder mit Wysiwig?

Beitrag 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.
amimoto
Beiträge: 51
Registriert: 18. Sep 2015, 11:01

Re: FlexContent Felder mit Wysiwig?

Beitrag 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...
Antworten

Zurück zu „Produktverwaltung/MPM/Produktimport / Article management/MPM/import products“