Après des heures de recherches, j'ai réussi (en supprimant 2 lignes dans un fichier ! ) à parvenir à mes fins : avoir un tinymceplus avec un comportement identique à la description dans le chapo et le postscriptum. Pour rappel, par défaut dans ces 2 champs, les <br /> sont automatiquement supprimés... Pourquoi les développeurs ont-ils fait ce choix ? Il doit y avoir une bonne raison.
En supprimant les lignes 230 et 503 dans produit_modifier.php, ça fonctionne au premier enregistrement... et aussi et surtout aux suivants !
J'avais essayé plusieurs solutions qui fonctionnaient certes, mais paraissaient bien complexes pour un problème aussi simple : un " $( 'p:empty' ).remove(); " au chargement de tinymceplus ou encore une regexp pour virer les paragraphes vides. Bref Inutile de bricoler tout ça.
Le problème se pose à nouveau cependant avec la nouvelle interface d'administration basée sur bootstrap : rebelotte, les <br /> dégagent à l'enregistrement dans le chapo et le postscriptum. Et l'astuce du dessus n'est plus applicable. De plus c'est tinymce4 et non tinymceplus qui est utilisé dans cette version.
Je sais que Roadster déconseille d'utiliser cette interface pour plusieurs raisons bien fondées (http://thelia.net/forum/viewtopic.php?pid=67508#p67508), cependant pour un site pas trop complexe sans plugin, offrir une interface plus moderne et plus ergonomique au client apporte une vraie valeur ajoutée. Pour ma part, je l'utilise depuis 3 ans maintenant et même avec des plugins et un site marchand un peu complexe, je n'ai jamais rencontré de gros problème lié à cette interface.
Pour obtenir le comportement souhaité, j'ai donc modifié le fichier admin/classes/ProductAdmin.class.php ligne 381 et 383 :
$produitdesc->chapo = str_replace("\n", "<br />", $chapo);
devient
$produitdesc->chapo = $chapo;
et
$produitdesc->postscriptum = str_replace("\n", "<br />", $postscriptum);
devient
$produitdesc->postscriptum = $postscriptum
Il faut également modifier les fichiers contenu_modifier.php, dossier_modifier.php, produit_modifier.php, rubrique_modifier.php dans le dossier admin en supprimer les lignes :
$rubriquedesc->chapo = str_replace('<br />', "\n", $rubriquedesc->chapo);
$rubriquedesc->postscriptum = str_replace('<br />', "\n", $rubriquedesc->postscriptum);
Pour rendre tout cela accessible et plus pratique, j'ai refait une version de Thélia 1.5.4.3 avec l'ancienne interface d'admin (just in case of) et la nouvelle (activée par défaut - version du 30 avril 2014) en intégrant ces correctifs et en activant par défaut l'éditeur tinymce4 dans les champs chapo, description et postscriptum :
https://github.com/anti-conformiste/the … 024266.zip
ou
https://github.com/anti-conformiste/thelia1.git
Je ne sais pas si c'est la bonne méthode, mais comme il n'y a pas de projet github pour la version 1.5, impossible de faire un pull request sur le dépôt officiel.
Je ne pense pas que ces modifications changent le comportement de thelia ou provoquent d'autres bugs, si quelqu'un peut confirmer ...?
Last edited by anti-conformiste (29-10-2015 01:11:01)