THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

Une des particularités très appréciable de Thélia est la possibilité quasi infinie (si l'on compose avec les caractéristiques) d'arranger un site pour le rendre administrable dans le moindre détail à travers l'utilisation des champs de Thélia. Même si, dans une majorité de cas, les champs disponibles suffiront amplement.

Prenons un exemple simple :

#TITRE > permet de modifier le titre de la page.
#CHAPO > permet de modifier le résumé
#DESCRIPTION > permet de modifier le contenu
#POSTSCRIPTUM > permet de modifier le footer


Cependant, activer l'éditeur tinymce dans un autre champs que #DESCRIPTION est source de bien des tracas. En effet, l'interpretation des ces champs à l'enregistrement provoque l'apparition de <br> (et pas des <br /> ...) dans la zone correspondante au champs concerné. Ces solutions permettent de contourner le problème :

http://thelia.net/forum/viewtopic.php?id=9014

http://thelia.net/forum/viewtopic.php?id=9017

Cependant, il est alors impossible pour un client lambda de faire un retour à la ligne (un vrai <br /> cette fois) sans créer un nouveau paragraphe. Et si l'on supprime la ligne "$produitdesc->chapo = str_replace("<br />", "\n", $produitdesc->chapo);" dans le fichier (produit_modifier.php par exemple), le logiciel part en sucette et ajoute à chaque enregistrement un <br /> à la place de chaque retour à la ligne (\n). ((d'où cette ligne je suppose smile )

Question simple : pourquoi diantre ces champs ne peuvent-ils pas se comporter comme le champs description. Qu'est-ce qui empêche cela. (structure plus légère de la table dans la base mysql ?) Ça limite du coup l'interêt de tous ces champs.... C'est si peu "user-friendly" que j'en arrive souvent à créer un nouvel article pour bénéficier d'un autre champ "DESCRIPTION" qui ne perturbera pas l'utilisateur final. C'est dommage et peu pratique pour l'intégrateur comme pour le client.

Comment faire pour obtenir le même comportement que le champ DESCRIPTION dans n'importe quel autre champ ?
J'ai raté quelque chose à ce niveau ?

Merci à tous ceux qui prendront le temps de s'arrêter ici.

Last edited by anti-conformiste (29-10-2015 00:40:56)

Offline


Merci Roadster.
Mais je pense qu'on ne se comprends pas : j'ai bien activé l'éditeur dans le chapeau (j'ai omis de le préciser, désolé), mais le problème reste entier.

Je vais apporter 2 précisions : j'utilise la dernière version dispo ici : http://sourceforge.net/projects/thelia/ … t/download
Cette version propose à l'installation des plugins, notamment tinymce, mais aucun n'est présent dans le répertoire d'install...bizarre.
Bref j'y ajoute donc moi même l'admin via un git clone https://github.com/thelia/admin.git
puis cette version de tinymce : http://thelia.net/v1/contributions/plug … emanager-9
(site V1 > page modules/Administration)

Peut-être est-ce la problème...?

Last edited by anti-conformiste (23-10-2015 13:56:16)

Offline


Je viens de tester avec la version d'origine de l'administration de Thélia 1.5.4.3 avec le plugin TinyMCE Plus v1.0.0, rien à faire, il n'aime pas les <br />, il les vire purement et simplement sad

Pourquoi ce comportement dans le chapo alors que dans description ça fonctionne si bien ? Ça me chiffonne hmm

Last edited by anti-conformiste (23-10-2015 14:06:38)

Offline


Je n'ai pas utilisé l'admin boostrap de Thelia 1, désolé.


OpenStudio Toulouse

Offline


Je suis revenu à l'admin de base, et même sans éditeur, le champ chapeau supprime les <br />
Est-ce un comportement normal ?

Last edited by anti-conformiste (23-10-2015 14:58:32)

Offline


up...
On ne peut pas mettre l'éditeur tinymce ailleurs que dans la description sans que ça déconne ..?

Offline


Si, je le fais tout le temps, en employant la méthode que je t'ai donné, et ça ne "déconne pas"

Va lire la doc de TinyMCE, tu va trouver toutes les options pour régler son comportement aux petits oignons.


OpenStudio Toulouse

Offline


roadster31 wrote:

Si, je le fais tout le temps, en employant la méthode que je t'ai donné, et ça ne "déconne pas"

Quelque chose doit m'échapper :

- Install propre (toute fraîche pour test) de T 1.5.4.3. Interface admin d'origine.
- J'ai mis 'elements' => '"description, chapo"', dans  fichier tiny_mce_init.php (tinymceplus d'origine)
le chapo me retire mes <br />

J'ai mal fait un truc ?

Offline


C'est mon 14ème essai, je persiste et signe : activer l'éditeur dans le chapo et faire shift + entré (un <br /> quoi...) ne fonctionne pas.

On peut faire un paragraphe mais pas de <br /> ...

Last edited by anti-conformiste (26-10-2015 10:54:06)

Offline


Sur un Thelia 1.5.4.3 de base, le plugin fonctionne parfaitement :

img-2015-10-26%2011%2026%2041.png

Et en base, on a bien le <br /> :

img-2015-10-26%2011%2031%2053.png

Et en front aussi, fatalement :

img-2015-10-26%2011%2033%2018.png

Tout ça avec juste "'elements' => '"description,chapo"'," dans tiny_mce_init.php

Si ça ne marche pas chez toi, regarde donc du côté des plugins installés, ou du front (genre, #STRIPCHAPO au lieu de #CHAPO).

Voilà.


OpenStudio Toulouse

Offline


roadster31 wrote:

Si, le plugin fonctionne parfaitement :

https://dl.dropboxusercontent.com/u/184 … 6%2041.png

lol je vais tourner chèvre. Le pire, c'est que j'essaye sur plusieurs sites de clients et obtiens le même comportement.
Je ne sais plus quoi faire. J'ai le même comportement que toi mais dès que je valide, les <br /> disparaissent.

Y'a-t-il un lien avec cette ligne dans produit_modifier.php ?

$produitdesc->chapo = str_replace("<br />", "\n", $produitdesc->chapo);

Offline


Ok, c'est un truc ce fou.
je vais changer de version de thelia pour voir, genre 1.5.2 au lieu de la 1.5.3.4

Merci pour ces confirmations, ça met de côté une autre manip que je n'aurais pas compris.

On bloque toujours sur des choses vraiment insignifiantes.

Offline


anti-conformiste wrote:

Y'a-t-il un lien avec cette ligne dans produit_modifier.php ?

$produitdesc->chapo = str_replace("<br />", "\n", $produitdesc->chapo);

Oui, ton problème est là: cette ligne remplace les <br /> par "\n". Sauf que dans la version originale de Thelia, c'est  :

$produitdesc->chapo = str_replace("\n", "<br />", $produitdesc->chapo);

Autrement dit, remplacer les \n par des <br />.

Donc ton Thelia a été bricolé.


OpenStudio Toulouse

Offline


roadster31 wrote:

Autrement dit, remplacer les \n par des <br />.
Donc ton Thelia a été bricolé.

Non, c'est juste une erreur de recopie (je n'ai pas fait de copier/coller)

Merci vraiment pour ton aide en tout cas. Ça peu paraitre bizarre, mais ça ne fonctionne toujours pas et comme ça n'a jamais fonctionné pour moi depuis que j'utilise Thélia, je suis vraiment désappointé face à ce problème.

Dernier recours
Voici une url test :

Effacée par mesure de sécurité - je peux la remettre

Thélia 1.5.3.4 (j'ai changé de version en désespoir de cause), install vierge, aucun plugin, pas de modif sur le template ni ailleurs, simplement le fichier 'tiny_mce_init.php' :

...
'elements' => '"description,chapo"',
...
What's going wrong ?

PS : Peux-tu me donner l'url du thelia que tu utilises : la dernière version (1.5.4.3) du site www.thelia.fr/v1 renvoie vers une version qui ne contient aucun plugin, donc j'ajoute manuellement le plugin tinymceplus

Offline


La magie n'existe pas.

Si tu utilises Thelia 1.5.4.3 et le plugin TinyMCE Plus, les deux d'origine, ça doit marcher.


OpenStudio Toulouse

Offline


roadster31 wrote:

La magie n'existe pas.

On est bien d'accord.

Y'a-t-il un lien vers une version 1.5.4.3 qui inclut tinymceplus ? (ce n'est pas le cas sur sourceforge ou github)

C'est aussi pour ça que j'étais revenu à la 1.5.3.4: http://contribs.thelia.fr/forum/viewtop … 524#p67524

Last edited by anti-conformiste (28-10-2015 08:31:20)

Offline


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)