Bonjour @marionvendeur52 et @chloe_59,
@chloe_59 a raison, l'approche via la surcharge directe de AdminProductsController pour modifier un champ de formulaire Symfony est désormais moins directe sur PrestaShop 9.1.2. Le formulaire est construit par le service ProductForm et le FormattedTextareaType est spécifiquement conçu pour intégrer TinyMCE et sa logique de nettoyage.
Pour remplacer l'éditeur de texte pour le champ 'description', la méthode la plus propre est d'intervenir via le hook actionFormProductDefinitionModifier. Ce hook vous permet de modifier la définition du formulaire produit avant qu'il ne soit rendu. Vous pouvez ainsi remplacer le FormattedTextareaType par un simple TextareaType.
Voici un exemple de snippet PHP à intégrer dans un de vos modules (ou un module simple que vous créeriez pour ça) pour réaliser ce remplacement. Il s'agit de redéfinir le champ 'description' avec un type de base :
// Dans un module, méthode hookActionFormProductDefinitionModifier
use PrestaShop\PrestaShop\Core\Form\FormField;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
// Assurez-vous d'être dans votre méthode de hook, ex: public function hookActionFormProductDefinitionModifier(array $params): void
$formDefinition = $params['form_definition']; // La définition du formulaire est passée en paramètre
if ($formDefinition->hasField('description')) {
$formDefinition->setField(
(new FormField('description', TextareaType::class))
->setOptions(['attr' => ['class' => 'js-quill-target']])
);
Ce code va remplacer le champ de description par une balise textarea HTML standard, sans aucune initialisation TinyMCE. L'ajout de la classe js-quill-target vous permettra ensuite de cibler cette textarea avec du JavaScript personnalisé (par exemple, dans un fichier JS chargé via hookActionAdminControllerSetMedia pour le contrôleur AdminProducts) pour y initialiser votre éditeur Quill. Vous devrez bien sûr vous assurer d'inclure les bibliothèques JS et CSS de Quill.