Jump to content

TinyMCE pour la description des catégories


Recommended Posts

Voilà, j'ai le besoin de personnalisé mon texte pour la descriptions des mes catégories. Dans le script de l'AdminCategories.php, j'ai modifier le formulaire en lui incluant le JS script du TinyMce qui se trouve dans l'AdminCMS également.

Voilà, mon textarea est maintenant un TinyMCE et la sauvegarde se fait bien ! Par contre, ce champs ne sauvegarde pas les tags

et autres...alors je me suis dit qu'il y avait peut-etre un stips tags avant la sauvegarde car oui...c'est envoyé dans la BD sans les tags...

Ce que je cherche est donc dans le script qui envoit et traite ma description dans la base de donnée. Est-ce que quelqu'un a réussis à faire ceci ?

Link to comment
Share on other sites

tu as cherché la dernière version chez Tiny ? cause celle fournie par presta est très incomplète. manque un tas de plugs ins. c'est dommage d'ailleurs... si tu galères pour l'intégration, y'a un post US qui explique en détails.

Link to comment
Share on other sites

Non ce n'est pas pour l'intégration du TinyMCE que j'ai un problème (et puis je suis en train de faire un nouveau TinyMCE que je vais mettre sur le forum :) ) non il est fonctionnel!

Le fait est simplement qu'il y aurait une sorte de stripTags, j'ai découvert une condition qui vérifiait si la description d'une catégorie est isHtmlClean...mais je dois trouver le script qui nettoyage ma descriptions, je veux conservers les tags HTML sinon mon TinyMce me sert à rien

Link to comment
Share on other sites

  • 2 weeks later...
j’ai mis le tinyMCE avec mes modules et rien faire il n’apparait pas, comment peut ton l’installer ?



tinyMCE c'est pas un module, donc normale qu'il n'apparaisse pas dans les modules!

Il faut remplacer les fichiers de PS original par ceux de tinyMCE!
Fait quand même une sauvegarde des fichiers à remplacer avant plutôt que de les écraser!

Ex: pour le dossier tabs, (qui doit aller dans ton dossier admin(ton dosier admin name) )
renomme ton dossier en base_tabs puis ensuite importe le dossier tabs de tiny!!
et ainsi de suite pour les autres dossiers et fichiers!!

Link to comment
Share on other sites

Ex: pour le dossier tabs, (qui doit aller dans ton dossier admin(ton dosier admin name) )
renomme ton dossier en base_tabs puis ensuite importe le dossier tabs de tiny!!
et ainsi de suite pour les autres dossiers et fichiers!!

-------------------

euhhh j'ai rien compris....

j'ai bien ecrasé mon ancien dossier et ca ne fonctionne pas !!

ahhhhh prise de tete

Link to comment
Share on other sites

En fait c'est simple, tu à télécharger le pack tinyMCE!

Une fois décompressé tu as un dossier Upload , dans ce dossier cinq autres dossiers!
c'est ce qui est dans ces dossiers que tu dois mettre sur ton serveur dans les dossiers correspondant!!
c'est une modification!

Moi je fais toujours une sauvegarde puis ensuite je dépose les fichiers !
Ce qui m'a servi, car pour la version 1.2 de PS cette version de tiny n'est pas compatible!!

Si tu place bien tous les fichiers dans les bons dossiers ça devrait marcher!!

Link to comment
Share on other sites

pour probitaille :
il y a en effet un clean du html après l'envoi des données.
Je n'ai plus exactement en tête l'endroit de ce code, mais il est au niveau d'une fonction pour les traductions (translations)

Si tu cherche toujours, fait signe sur ce topic et je regarderais pour te trouver le fichier et la ligne exacte.

ps : ce changement peut toutefois poser parfois problème...

Link to comment
Share on other sites

  • 8 months later...

Salut,

Je relance ce post, car je cherche le moyen d'intégrer l'éditeur html (TinyMCE) sur les catégories ??
J'ai effectuer pas mal de recherche a ce sujet mais pas de réponse...
Si vous avez trouver la solus, serait-il possible de me la communiquer ??
Merci d'avance...

@++

Link to comment
Share on other sites

  • 1 month later...

Soluce pour ajouter tinyMCE pour la description des categories (OK pour PS 1.3.1):

Dans admin/tabs/adminCategories.php ligne 212 (PS 1.3.1)
Ajoutez class="rte" pour la description:
comme ceci:

                        <textarea class="rte" name="description_'.$language['id_lang'].'" rows="5" cols="40">'.htmlentities($this->getFieldValue($obj, 'description', intval($language['id_lang'])), ENT_COMPAT, 'UTF-8').'</textarea>



Toujours dans admin/tabs/adminCategories.php
Prennez le code pour tinyMCE qui se trouve par exemple dans admin/tabs/adminCMS.php

Ce code :(attention des blancs sont ajoutés au balises script pour passer sur le forum - Copier de préférence le code du fichier adminCMS.php)

        // TinyMCE
       echo '
       < script type="text/javascript" src="'.__PS_BASE_URI__.'js/tinymce/jscripts/tiny_mce/jquery.tinymce.js"></ script>
       < script type="text/javascript">
       function tinyMCEInit(element)
       {
           $().ready(function() {
               $(element).tinymce({
                   // Location of TinyMCE script
                   script_url : \''.__PS_BASE_URI__.'js/tinymce/jscripts/tiny_mce/tiny_mce.js\',
                   // General options
                   theme : "advanced",
                   plugins : "safari,pagebreak,style,layer,table,advimage,advlink,inlinepopups,media,searchreplace,contextmenu,paste,directionality,fullscreen",
                   // Theme options
                   theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
                   theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,,|,forecolor,backcolor",
                   theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,media,|,ltr,rtl,|,fullscreen",
                   theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,pagebreak",
                   theme_advanced_toolbar_location : "top",
                   theme_advanced_toolbar_align : "left",
                   theme_advanced_statusbar_location : "bottom",
                   theme_advanced_resizing : false,
                   content_css : "'.__PS_BASE_URI__.'themes/'._THEME_NAME_.'/css/global.css",
                   document_base_url : "'.__PS_BASE_URI__.'",
                   width: "582",
                   height: "auto",
                   font_size_style_values : "8pt, 10pt, 12pt, 14pt, 18pt, 24pt, 36pt",
                   // Drop lists for link/image/media/template dialogs
                   template_external_list_url : "lists/template_list.js",
                   external_link_list_url : "lists/link_list.js",
                   external_image_list_url : "lists/image_list.js",
                   media_external_list_url : "lists/media_list.js",
                   elements : "nourlconvert",
                   convert_urls : false,
                   language : "'.(file_exists(_PS_ROOT_DIR_.'/js/tinymce/jscripts/tiny_mce/langs/'.$iso.'.js') ? $iso : 'en').'"
               });
           });
       }
       tinyMCEInit(\'textarea.rte\');
       </ script>
       ';



Ajoutez le code ligne 297 après:

            
       </form>

';



et ca marche

sur ce post en russe http://www.prestashop.com/forums/viewthread/43401/
il y aussi une modif donnée pour changer la fonction public function getTranslationsFieldsChild() dans classes/Category.php

si quelqu'un a une explication sur l'interet de cette modif et si elle est bien adaptée a PS 1.3.1, ce serait bien volontiers.

Sinon vous pouvez encore améliorer en ajoutant TinyBrowser a TinyMCE qui permet d'uploader directement vos images, très pratique voir indispensable:
voir: http://www.dev-net.fr/30/module-upload-tinybrowser-prestashop/

Et pour ajouter du html à la description:
http://www.prestashop.com/forums/viewthread/21118

Je vous laisse vous débrouiller tout seul avec ca (pas de support), j'y suis arrivé, vous devriez aussi avec un peu d'application et de reflexion car tout est là ;-)

  • Like 1
Link to comment
Share on other sites

Bonsoir,

Merci Jolvil pour cette info... :)

Une question, je voudrai savoir si possible a quel endroit exactement je rajoute la phrase :

<textarea class="rte" name="description_'.$language['id_lang'].'" rows="5" cols="40">'.htmlentities($this->getFieldValue($obj, 'description', intval($language['id_lang'])), ENT_COMPAT, 'UTF-8').'</textarea>

Merci pour ton retour...

Informatiquement,

Link to comment
Share on other sites

  • 2 weeks later...

Hello,

Pour compléter le post de Jolvil, vous devez modifier le fichier Category.php dans le dossier classes, comme ci-dessous, sinon l'éditeur s'affiche bien mais ne prend pas en compte les mises en forme etc...

Remplacer (ligne 98 environ) :

public function getTranslationsFieldsChild()
   {
       parent::validateFieldsLang();
       return parent::getTranslationsFields(array('name', 'description', 'link_rewrite', 'meta_title', 'meta_keywords', 'meta_description'));
   }



Par :

public function getTranslationsFieldsChild()
   {
       parent::validateFieldsLang();

       $fieldsArray = array('name', 'link_rewrite', 'meta_title', 'meta_keywords', 'meta_description');
       $fields = array();
       $languages = Language::getLanguages();
       $defaultLanguage = Configuration::get('PS_LANG_DEFAULT');
       foreach ($languages as $language)
       {
           $fields[$language['id_lang']]['id_lang'] = $language['id_lang'];
           $fields[$language['id_lang']][$this->identifier] = intval($this->id);
           $fields[$language['id_lang']]['description'] = (isset($this->description[$language['id_lang']])) ? pSQL($this->description[$language['id_lang']], true) : '';
           foreach ($fieldsArray as $field)
           {
               if (!Validate::isTableOrIdentifier($field))
                   die(Tools::displayError());

               /* Check fields validity */
               if (isset($this->{$field}[$language['id_lang']]) AND !empty($this->{$field}[$language['id_lang']]))
                   $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']]);
               elseif (in_array($field, $this->fieldsRequiredLang))
                   $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$defaultLanguage]);
               else
                   $fields[$language['id_lang']][$field] = '';
           }
       }
       return $fields;

   }



  • Like 1
Link to comment
Share on other sites

  • 2 months later...
  • 2 weeks later...

Sorry, but it does work only with errors for me. I get the tinnyMCE, can add html-code, link links, can save it, links appear fronted and are clickable, but I'm getting the following notice at bottom of category description:

Notice: Undefined variable: iso in admin\tabs\AdminCategories.php on line 333

This ist my code in line 333 (copied form admincms.php - whole block tinymce)

    language : "'.(file_exists(_PS_ROOT_DIR_.'/js/tinymce/jscripts/tiny_mce/langs/'.$iso.'.js') ? $iso : 'en').'"



What shall I change and where ?
I also tried $iso : 'de', no change...

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour et merci également.
Cependant, lorsqu'on inserre un tableau, celui ci se retrouve décalé tout en bas de la zone de texte.

Il faut surement changer le div class="cat_desc"> par div class="rte">dans le category.tpl du thème mais ça ne résoud pas mon problème mais ça doit être de ce côté là.

Les pro du code, essayer de mettre un tableau et vous verrez. Help!!!!

Link to comment
Share on other sites

  • 2 weeks later...

SI si AVTALIA sa fonctionne sur 1.3.2.3. C'est juste que les lignes de codes ne sont plus aux mêmes numéros de lignes. Par exempe ligne 276 au lieu de 212 pour le fichier admin/tabs/adminCategories.php

Par contre, je n'ai pas encore trouvé pour enlever le code hmrl des infos bulles des boutons...

Link to comment
Share on other sites

  • 1 month later...

Merci pour les modifs mais j'ai un petit problème que je n'arrive pas résoudre.
Dan la partie admin, information complémentaire du catalogue, j'ai un décalage ou un tableau si j'insere un tableau avec éditeur de texte.
avez vous une réponse à ce problème.
merci

Link to comment
Share on other sites

  • 1 month later...

Bonsoir.

cela fonctionne (PS 1.3.3.0, thème net-bw) mais je me retrouve avec des


après chaque paragraphe. Le code html généré pat tinyMCE ne comporte pas de


. Quelqu'un sait comment empêcher l'insertion de ces


? merci d'avance.

Link to comment
Share on other sites

C'est LeGastronome qui avait (déjà) trouvé la réponse pour les BR BR BR...

fichier category.php
remplacer la ligne 52 par : $category->description = $category->description;

Ce qui revient au meme de supprimer la ligne

Voila


http://www.prestashop.com/forums/viewthread/21118/P30/developpement/resolu_html_dans_le_champs_description_de_categorie

Merci de votre attention !
Link to comment
Share on other sites

  • 4 weeks later...

Bonjour,

Un module d'installation ?
Je suis intéressée par tinymce mais ça m'a l'air bien compliqué, surtout avec toutes ces modifs successives, je ne sais plus ce qu'il faut faire exactement pour l'installer : n'y a t-il pas un module qui l'installerait pour moi au lieu d'aller modifier des fichiers ici et là?

Où ça les modifications manuelles ? (en tout cas dans quel ordre par rapport aux posts ci-dessus)
D'autre part, si je suis obligée d'aller modifier des fichiers, je voudrais savoir si il faut les faire partout où on veut qu'il y ait la possibilités d'éditer avec. Ici par exemple c'est pour pouvoir l'utiliser avec les catégories ...

Merci pour quelques infos.

Bonne soirée

Link to comment
Share on other sites

Bonjour,
Suite message :
Je me souviens d'un TinyMCE_File_Manager, quelqu'un sait-il à quoi il sert ? fallait remplacer les fichiers AdminCMS.php et AdminProducts.php par le contenu du dossier proposé, je n'avais pas osé le faire mais bon si il installe la totale c'est peut-être plus facile.

Merci pour des orientations.

Mon besoin précis pour l'instant c'est de pouvoir éditer mes catégories avec un éditeur.

Link to comment
Share on other sites

Bonjour Sofano.

A ma connaissance, il n'existe pas de module pour l'installation. En suivant à la lettre les explications pages1 puis page 2, ça passe tout seul...

Pour Tiny File manager (il s'appelle également Tiny Browser) il s'agit simplement d'un module permettant d'uploader des fichiers médias (images, vidéos, sons) directement depuis son PC. Sans cela, il faut uploader manuellement les images sur un serveur puis ensuite entrer l'adresse de celles-ci dans TinyMCE : Pas très pratique !

Attention toutefois, Ce module nécessite également certaines modifications de fichiers.

Bon courage !

Link to comment
Share on other sites

  • 4 weeks later...

Bonjour,
Merci à vous pour cette astuce cela marche nickel !
Dommage que cela ne soit pas en natif sur Prestashop comme l'upload d'images d'ailleurs cela éviterait les bidouilles de ce type.

Bonne continuation.

Link to comment
Share on other sites

  • 7 months later...

Salut,

petit up pour les gens qui ont la version 1.4.4 de presta.

Le posts 15 et le post 17 marche parfaitement, cependant il y a quelques petites choses à changer :

 

Le code du fichier AdminCMS.php à coller dans admin/tabs/adminCategories.php n'est plus le même, metre celui-ci :

 

  // TinyMCE
 global $cookie;
 $iso = Language::getIsoById((int)($cookie->id_lang));
 $isoTinyMCE = (file_exists(_PS_ROOT_DIR_.'/js/tiny_mce/langs/'.$iso.'.js') ? $iso : 'en');
 $ad = dirname($_SERVER["PHP_SELF"]);
 echo '
  <script type="text/javascript">
  var iso = \''.$isoTinyMCE.'\' ;
  var pathCSS = \''._THEME_CSS_DIR_.'\' ;
  var ad = \''.$ad.'\' ;
  </script>
  <script type="text/javascript" src="'.__PS_BASE_URI__.'js/tiny_mce/tiny_mce.js"></script>
  <script type="text/javascript" src="'.__PS_BASE_URI__.'js/tinymce.inc.js"></script>
  <script type="text/javascript">
 toggleVirtualProduct(getE(\'is_virtual_good\'));
 unitPriceWithTax(\'unit\');
  </script>';

 

Par contre il persiste toujours un problème, le code html est placé dans la balise title du module blockcategorie. Pour le régler remplacez la balise title dans le fichier category-tree-branch.tpl de votre module par :

 

title="{$node.desc|strip_tags:'UTF-8'|escape:'htmlall':'UTF-8'}"

 

Voilà, j'espère que ça va aider quelqu'un :)

Link to comment
Share on other sites

  • 5 months later...

Bonjour

 

Juste pour signaler que les posts 15 et 17 fonctionnent très bien sous Presta 1.4.6.2 !

Il faut juste modifier le lien vers tinymce de ça :

"'.__PS_BASE_URI__.'js/tinymce/jscripts/tiny_mce/jquery.tinymce.js"

à ça :

"'.__PS_BASE_URI__.'js/tiny_mce/jquery.tinymce.js"

 

Bonne soirée

Link to comment
Share on other sites

  • 7 months later...
  • 7 months later...

Bonjour,

 

Je suis également en 1.5.4.1 j'ai recherché le module TinyMCE, je n'ai trouvé que TinyMCE plus (semble pour 1.5.3.1, donc pas bon pour moi non plus...) et c'est "payant".

 

C'est dingue, je bosse depuis des années avec Joomla et TinyMCE est à 100% gratuit.

 

Comme se fait-il que TinyMCE ou un éditeur "normalement constitué" (qui permet d'insérer des liens hypertextes, des attributs de forme de texte etc...) ne soit pas en natif ?

 

Il est impossible de mettre en page proprement une description de catégorie : incroyable !

Edited by karopresta (see edit history)
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...