FlexContent Felder mit Wysiwig?

Fragen und Antworten zur Produktverwaltung inkl. Import

FlexContent Felder mit Wysiwig?

Beitragvon amimoto » 18. Sep 2015, 10:04

Guten Tag,
ist es möglich für die Felder der Flexiblen Produktinformationen den TinyMCE Editor zu aktivieren?
MfG
amimoto
 
Beiträge: 51
Registriert: 18. Sep 2015, 10:01

Re: FlexContent Felder mit Wysiwig?

Beitragvon supportteam2 » 18. Sep 2015, 12:26

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.
Ihr MERCONIS-Supportteam
Your MERCONIS Support Team
Benutzeravatar
supportteam2
 
Beiträge: 408
Registriert: 4. Mär 2015, 14:05

Re: FlexContent Felder mit Wysiwig?

Beitragvon amimoto » 19. Okt 2015, 19:56

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

Re: FlexContent Felder mit Wysiwig?

Beitragvon supportteam2 » 20. Okt 2015, 07:02

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
&lt;p>Hallo&lt;br>&lt;strong>Welt&lt;/strong>&lt;/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.
Ihr MERCONIS-Supportteam
Your MERCONIS Support Team
Benutzeravatar
supportteam2
 
Beiträge: 408
Registriert: 4. Mär 2015, 14:05

Re: FlexContent Felder mit Wysiwig?

Beitragvon amimoto » 20. Okt 2015, 15:02

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

Re: FlexContent Felder mit Wysiwig?

Beitragvon amimoto » 20. Okt 2015, 16:56

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, 10:01

Re: FlexContent Felder mit Wysiwig?

Beitragvon amimoto » 8. Nov 2015, 12:46

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, 10:01

Re: FlexContent Felder mit Wysiwig?

Beitragvon amimoto » 8. Nov 2015, 13:02

Oh, sorry, Korrektur: Insert-Tags funktionieren doch... ;-)
Trotzdem würde ich lieber eigene Felder mit Wyswig-Editor anlegen...
amimoto
 
Beiträge: 51
Registriert: 18. Sep 2015, 10:01

Re: FlexContent Felder mit Wysiwig?

Beitragvon supportteam2 » 8. Nov 2015, 23:53

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.
Ihr MERCONIS-Supportteam
Your MERCONIS Support Team
Benutzeravatar
supportteam2
 
Beiträge: 408
Registriert: 4. Mär 2015, 14:05

Re: FlexContent Felder mit Wysiwig?

Beitragvon amimoto » 9. Nov 2015, 10:49

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

Nächste

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast