Thierry Création Posted November 2, 2009 Share Posted November 2, 2009 bonjour,J'aimerai savoir Comment enlever la limitation de 400 caractères dans la courte description de la fiche produit ?Merci de votre aide Thierry Link to comment Share on other sites More sharing options...
Melki-Tsedeq Posted November 2, 2009 Share Posted November 2, 2009 Bonjour Thierry-CréationPour enlever la limitation de 400 caractères dans la courte description de la fiche produit il faut éditer 2 fichiers : AdminProducts.php & product.php Vous pouvez trouver la limitation et remplacer tous les "400" par le nombre que vous voulez. Admin/Tabs/AdminProducts.php : Ligne 664 pour moi. /* Check description short size without html */ foreach ($languages AS $language) if ($value = Tools::getValue('description_short_'.$language['id_lang'])) if (Tools::strlen(strip_tags($value)) > 400) $this->_errors[] = $this->l('the field').' '.call_user_func(array($className, 'displayFieldName'), 'description_short').' ('.$language['name'].') '.$this->l('is too long').' : 400 '.$this->l('chars max').' ('.$this->l('count now').' '.Tools::strlen(strip_tags($value)).')'; Classes/Product.php : Ligne 374 pour moi. public function validateFieldsLang($die = true, $errorReturn = false) { foreach ($this->description_short as $k => $value) if (Tools::strlen(strip_tags($value)) > 400) { if ($die) die (Tools::displayError().' ('.get_class($this).'->description: length > 400 for language '.$k.')'); return $errorReturn ? get_class($this).'->'.Tools::displayError('description: length > 400 for language').' '.$k : false; } return parent::validateFieldsLang($die, $errorReturn); } Cordialement.Melki-Tsedeq 1 Link to comment Share on other sites More sharing options...
Thierry Création Posted November 2, 2009 Author Share Posted November 2, 2009 Bonjour Melki-Tsedeq,Je vous remercie de votre aide , je vais de ce pas modifier mes fichiers ...Bonne continuation, Thierry Link to comment Share on other sites More sharing options...
GAELLE Posted November 2, 2009 Share Posted November 2, 2009 Pouvez vous me dire si ca fonctionne ? car moi aussi ca m interesse ! Merci ! Link to comment Share on other sites More sharing options...
Melki-Tsedeq Posted November 2, 2009 Share Posted November 2, 2009 Bonsoir Gaëlle.Oui je vous confirme que cela fonctionne bien avec toutes les versions de prestashop.Il faut bien repérer le code pour modifier uniquement le nombre 400.Selon la version de prestashop ou les modifications personnelles sur ces fichiers la modification n’est pas à la même ligne que moi.Cordialement.Melki-Tsedeq Link to comment Share on other sites More sharing options...
GAELLE Posted November 2, 2009 Share Posted November 2, 2009 merci pour l info Melki ! je modifie cela dès ce soir. Bonne soirée Link to comment Share on other sites More sharing options...
Thierry Création Posted November 2, 2009 Author Share Posted November 2, 2009 Bonjour,De mon coté malgres avoir modifié correctement les 2 fichiers ça ne semble pas fonctionner ...1 erreur 1. le champ description_short (Français (French)) est trop long : 400 caractères maximum (en compte actuellement 625)une idée du soucis ? pour info je suis sur presta 1.2.4...Merci, Thierry Link to comment Share on other sites More sharing options...
Melki-Tsedeq Posted November 3, 2009 Share Posted November 3, 2009 Bonjour Thierry.Pour moi vous n'avez pas modifié correctement les 2 fichiers, car cela aurais fonctionné…L’erreur que vous avez obtenue montre que le fichier na pas été modifier. Car le nombre 400 aurait changé. J’ai téléchargé et installer la version 1.2.0.4 qu’on peu trouver iciJe l’ai testé et cela marche bien. Je vous montre le code : remplacer ici par 800.Dans : Admin/Tabs/AdminProducts.php : Ligne 662 pour la 1.2.0.4 /* Check description short size without html */ foreach ($languages AS $language) if ($value = Tools::getValue('description_short_'.$language['id_lang'])) if (Tools::strlen(strip_tags($value)) > 800) $this->_errors[] = $this->l('the field').' '.call_user_func(array($className, 'displayFieldName'), 'description_short').' ('.$language['name'].') '.$this->l('is too long').' : 800 '.$this->l('chars max').' ('.$this->l('count now').' '.Tools::strlen(strip_tags($value)).')'; Dans : Classes/Product.php : Ligne 374 pour la 1.2.0.4 public function validateFieldsLang($die = true, $errorReturn = false) { foreach ($this->description_short as $k => $value) if (Tools::strlen(strip_tags($value)) > 800) { if ($die) die (Tools::displayError().' ('.get_class($this).'->description: length > 800 for language '.$k.')'); return $errorReturn ? get_class($this).'->'.Tools::displayError('description: length > 800 for language').' '.$k : false; } return parent::validateFieldsLang($die, $errorReturn); } Maintenant si cela ne marche pas c’est que vous ne modifier pas le bon fichier ou que vous avez des erreurs sur des fichiers PHP.Cordialement.Melki-Tsedeq Link to comment Share on other sites More sharing options...
Nommam Posted November 4, 2009 Share Posted November 4, 2009 La Limitation vient p'tre de ta bdd.Ca ce passe dans la table ps_product_lang champ short_desc qui est de type text, voir si ca ne coince pas par la !!! Link to comment Share on other sites More sharing options...
Melki-Tsedeq Posted November 4, 2009 Share Posted November 4, 2009 Bonjour a tous.Nommam pour moi la limitation ne vient pas de la base de donnés. J’ai déjà réalisé cette modification a plusieurs reprise sur différente version de prestashop et je n’ai pas eu de problème. De plus ces deux fichiers PHP nous montrent bien que c’est eux qui gèrent la limitation des caractères et qui nous retourne les messages d’erreurs.Gaëlle pouvez vous nous faire un retour sur cette modification, si vous l'avez utilisé et si cela a fonctionné pour vous et avez vous rencontré des problèmes. MerciThierry ou Gérard je pence que le mieux si vous voulez je suis prêt a vous accordé 20 mn de mon temps libre pour intervenir sur ces fichiers afin de les comparer avec une version standard pour voir d’où viens le problème. Et de faire le nécessaire pour que cela fonctionne.2 possibilité pour intervenir sur ces fichiers, me les envoyer par mail si vous travailler en local ou un FTP par MP pour pouvoir intervenir. MerciCordialement.Melki-Tsedeq Link to comment Share on other sites More sharing options...
Gérard Vaubourg Posted November 4, 2009 Share Posted November 4, 2009 bien compris Melki pour la solution proposé . Je vous adresse un mp en suivant avec le ftp. ;-) Link to comment Share on other sites More sharing options...
Chouro Posted November 4, 2009 Share Posted November 4, 2009 bonjour j'ai le meme probleme mais pour le champ content du cms. Ma cgv est longue et la limitation est de 65536 characteres.J'ai essayé de changer la ligne 24 de la class CMS.php :protected $fieldsSizeLang = array(‘meta_description’ => 255, ‘meta_keywords’ => 255, ‘meta_title’ => 128, ‘link_rewrite’ => 128, ‘content’ => 65536);mais rien n'y faitmerci de votre aide Link to comment Share on other sites More sharing options...
GAELLE Posted November 5, 2009 Share Posted November 5, 2009 Bonjour,Oui moi cela fonctionne.Un détail : Je travaille sur la version 1.1.0. 5, dans le deuxième fichier à modifier (Classes/Product.php), j'ai seulement deux nombres à modifier et non trois comme sur la version 1.2.0.4 public function validateFieldsLang($die = true) { foreach ($this->description_short as $k => $value) if (Tools::strlen(strip_tags($value)) > 600) { if ($die) die (Tools::displayError().' ('.get_class($this).'->description: length > 600 for language '.$k.')'); return false; } return parent::validateFieldsLang($die);est ce pour cela que lorsque je rentre du texte, celui ci ne va pas automatiquement à la ligne ? (voir fichier)est ce qu'il faudrait que je rajouter dans mon code la ligne qui manque ?Merci ! Link to comment Share on other sites More sharing options...
Melki-Tsedeq Posted November 5, 2009 Share Posted November 5, 2009 Bonjour tout le monde.Mr Gérard Vaubourg J’ai bien reçu votre message et je suis en attente de vos fichiers pour voir ce qui ne va pas.Chouro je n’ai pas eu le temps de me plongé en profondeur sur votre problème mais dans votre cas il me semblait que cela pouvais ce réglé dans la basse de données. Voir ps_cms_lang et j’ai changé content longtext par varchar (99999) mais ça na pas marcher. Donc pour le moment je n’ai pas vraiment le temps si je peux je regarderais ça plus tard.Gaëlle vous n’avez pas besoin de rajouter dans le code les lignes qui manque pour la 1.1.0.5Je pense que cela viens de la feuilles de style css voir avec Firebug merci de me dire si cela règle votre problème.Cordialement.Melki-Tsedeq Link to comment Share on other sites More sharing options...
Chouro Posted November 5, 2009 Share Posted November 5, 2009 Merci c'est gentil.j'avais essayeé aussi la modif dans la BD mais de toute les manieres Longtext accepte beaucoup plus de 65536 characteres, donc c'est une limitation dans prestashop.Je continu de chercher, le site ouvre dans quelques heures, je crois que je vais devoir mettre une petite cgv de secour en attendant...Je vous fais savoir si je trouve. Link to comment Share on other sites More sharing options...
GAELLE Posted November 5, 2009 Share Posted November 5, 2009 Ok pas de souci pour moi ! merci encore. Link to comment Share on other sites More sharing options...
Melki-Tsedeq Posted November 7, 2009 Share Posted November 7, 2009 Bonjour Thierry,J’ai bien réceptionné vos fichiers et effectué une première comparaison.Cependant il y a une chose que je ne comprends pas. Vous me dites plus haut poste [ # 6 ] que vous travaillez sur une version 1.2.0.4, et vous m’avez envoyé des fichiers d’une version 1.0. /** * Products class, Product.php * Products management * @category classes * * @author PrestaShop * @copyright PrestaShop * @license http://www.opensource.org/licenses/osl-3.0.php Open-source licence 3.0 * @version 1.0 * */ Comment cela est-il possible ? Donc je pense bien que le problème viendrait de là.Cordialement.Melki-Tsedeq Link to comment Share on other sites More sharing options...
Thierry Création Posted November 7, 2009 Author Share Posted November 7, 2009 bonsoir,effectivement je me suis emmêlé les pinceaux dans mes topics il s'agit bien de la version 1.0 ... du coup la manip ne fonctionne donc pas ?Merci, Thierry Link to comment Share on other sites More sharing options...
Melki-Tsedeq Posted November 8, 2009 Share Posted November 8, 2009 Bonjour Thierry,Aujourd’hui jour du seigneur votre problème est résolu.Car je n’ai pas dit que l'astuce ne fonctionné pas sur une version 1.0Donc pour vous la modification a effectué est comme ça :Dans Admin/Tabs/AdminProducts.php : à la ligne 561. /* Check description short size without html */ foreach ($languages AS $language) if ($value = Tools::getValue('description_short_'.$language['id_lang'])) if (Tools::strlen(strip_tags($value)) > 1400) $this->_errors[] = $this->l('the field').' '.call_user_func(array($className, 'displayFieldName'), 'description_short').' ('.$language['name'].') '.$this->l('is too long').' : 1400 '.$this->l('chars max').' ('.$this->l('count now').' '.Tools::strlen(strip_tags($value)).')'; Dans Classes/Product.php : à la ligne 299. public function validateFieldsLang($die = true) { foreach ($this->description_short as $k => $value) if (Tools::strlen(strip_tags($value)) > 1400) { if ($die) die (Tools::displayError().' ('.get_class($this).'->description: length > 1400 for language '.$k.')'); return false; } return parent::validateFieldsLang($die); } J’ai modifié les 400 par 1400.Bon à la base je vous avez déjà donnée la solution car comme je l’avais déjà dit plus haut il fallait juste repérer ces lignes de codes et de les modifier par le nombre que vous souhaité.CordialementMelki-Tsedeq Link to comment Share on other sites More sharing options...
samuel36 Posted November 8, 2009 Share Posted November 8, 2009 bonjour a vous une question cela est t il souhaitable de laisser a 400 ou bien cela n'as aucune incidence sur le referencement ou autre ?? bonne soirée Link to comment Share on other sites More sharing options...
Thierry Création Posted November 8, 2009 Author Share Posted November 8, 2009 bonjour melki,je vais tester la modif ... merci Link to comment Share on other sites More sharing options...
Gérard Vaubourg Posted November 8, 2009 Share Posted November 8, 2009 :wow: Bonjour Melki,Je réponds suite à votre message reçu affirmant que le probléme est résolu :bug: désolé mais il n'en ai rien !!! en effet avec Thierry nous avons effectué les corrections selon vos critères mais rien n'y fait et votre solution ne fonctionne pas.D'ailleurs je voudrais vous dire que celle ci à été formulé à la fois sur les deux sites réalisés sur des versions différentes de prestashop , l'une sur la version 1.1 et l'autre sur la version 1.5.... sans succès.Je ne comprends pas :smirk: moi comme Thierry que vous dite pouvoir y parvenir et avoir résolu le probléme car de notre côté cela ne marche pas.Bien cordialement. Link to comment Share on other sites More sharing options...
Melki-Tsedeq Posted November 9, 2009 Share Posted November 9, 2009 Bonjour Gérard,Moi je ne comprends pas comment ce fait il, qu’avec Gaëlle, qui utilise aussi une version 1.1.0.5, et moi qui l’ai testé sur toutes les versions, il n’y est jamais eut de problème de fonctionnement.Ce que je peux vous conseiller, c’est de tout simplement reprendre en copier-coller le code mentionné plus haut pour votre version 1.0.Si avec ça, je n'ai pas résolu votre problème, c’est que le problème vient d’ailleurs.Sinon veuillez consulter un professionnel PHP afin qu’il vous explique et qu’il résolve votre problème.Moi pour des raisons professionnelles (clients et délais à respecter), je ne serai pas trop présent cette semaine. Cordialement,Melki-Tsedeq Link to comment Share on other sites More sharing options...
xavriley Posted December 15, 2009 Share Posted December 15, 2009 Merci a tout pour cette information,Je ne parle pas Francais tres bien, mais je veux lire le forums francophones pour le mieux information! Les PS developers anglais est pas fort. Le wiki n'est pas clair sur le limitations de la product (fields) aussi.Thanks again for the good work,Xavier Link to comment Share on other sites More sharing options...
Melki-Tsedeq Posted December 16, 2009 Share Posted December 16, 2009 Bonjour Thierry et Gérard,Avez-vous pu régler votre problème ?Si ce n’es pas le cas, mon aide est toujours d’actualité.Vous pouvez sois ; reprendre contact avec moi par mail, sois me communiquer les deux fichiers php mentionnés plus haut pour la bonne version utilisée. Et ne pas m’envoyer un fichier php d’une mauvaise version sortit tout droit d’un chapeau magique !!Pouvez-vous aussi me communiquer le fichier : « product.tpl » afin que je le vérifie. Ou directement, me communiquer un accès ftp sur la version testée afin de voir d’où peut venir le problème.Je remercie Xavier (l’anglais) pour ses encouragements ! Et j’aimerais aussi de lui qui nous communique la version de prestashop utilisée pour cette modification.PS: Je voulais également signaler que j'ai testé sur un autre serveur pour voir si le probleme ne venait pas de la... Et cela n'a pas été le cas.Cordialement.Melki-Tsedeq Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now