Jump to content
creationata

Augmenter nombre caractères champ texte dans Personnalisation du produit

Recommended Posts

Bonjour,

 

Je suis en train de finaliser ma boutique prestashop, et je cherche vainement comment augmenter le nombre de caractères que le client peut envoyer dans un des champ texte de la personnalisation du produit.

 

Exemple :

http://www.creationata.com/faire-part-naissance-fille/47-faire-part-rosalie.html

concernant le "Texte intérieur"

 

Apparemment ce dernier est limité à 255 caractères, ce qui est un peu limite pour un texte de faire-part.

 

J'ai cherché dans Classes/Product.php

à cet endroit :

 

/* Description short is limited to 400 chars, but without html, so it can't be generic */

protected $fieldsSizeLang = array('meta_description' => 255, 'meta_keywords' => 255,

'meta_title' => 128, 'link_rewrite' => 128, 'name' => 128, 'available_now' => 255, 'available_later' => 255);

 

 

Mais je ne vois pas quel intitulé mettre entre ' et '...

 

Peut être un autre fichier à modifier ?

 

En vous remerciant par avance pour vos réponses....

Share this post


Link to post
Share on other sites

Bonjour,

Dans la DB, sur la table customized_data vous pouvez augmenter la taille max de la colonne value qui est à 255

Ensuite je n'ai pas trouvé de limite dans le core (PHP) sur ce paramêtre.

Donc testez si la modification fonctionne.

 

Ckarone

Share this post


Link to post
Share on other sites

Bonjour,

 

Merci pour votre réponse.

 

J'ai bien essayé de changer cette valeur en mettant 500 par exemple, mais apparemment le type VARCHAR est limité à 255. Du coup j'ai aussi essayé de mettre TEXT ou MEDIUMTEXT au lieu de VARCHAR mais cela ne change toujours rien...

 

J'ai l'impression que c'est bloqué à 220 caractères (lorsque je vais voir le panier ou la commande dans le BO prestashop)....

Share this post


Link to post
Share on other sites

Bonjour,

 

J'ai trouvé un début de piste ici :

 

 

Donc peut on changer quelque chose par rapport à la limitation de caractère dans le fichier themes/xxx/product.tpl ?

 

<!-- Customizable products -->
{if $product->customizable}
<ul class="idTabs">
 <li><a style="cursor: pointer">{l s='Product customization'}</a></li>
</ul>
<div class="customization_block">
 <form method="post" action="{$customizationFormTarget}" enctype="multipart/form-data" id="customizationForm">
  <p>
   <img src="{$img_dir}icon/infos.gif" alt="Informations" />
   {l s='After saving your customized product, remember to add it to your cart.'}
   {if $product->uploadable_files}<br />{l s='Allowed file formats are: GIF, JPG, PNG'}{/if}
  </p>
  {if $product->uploadable_files|intval}
  <h2>{l s='Pictures'}</h2>
  <ul id="uploadable_files">
   {counter start=0 assign='customizationField'}
   {foreach from=$customizationFields item='field' name='customizationFields'}
 {if $field.type == 0}
  <li class="customizationUploadLine{if $field.required} required{/if}">{assign var='key' value='pictures_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field}
   {if isset($pictures.$key)}<div class="customizationUploadBrowse">
	 <img src="{$pic_dir}{$pictures.$key}_small" alt="" />
	 <a href="{* $link->getProductDeletePictureLink($product,{$field.id_customization_field})*}" title="{l s='Delete'}" >
	  <img src="{$img_dir}icon/delete.gif" alt="{l s='Delete'}" class="customization_delete_icon" width="11" height="13" />
	 </a>
    </div>{/if}
   <div class="customizationUploadBrowse"><input type="file" name="file{$field.id_customization_field}" id="img{$customizationField}" class="customization_block_input {if isset($pictures.$key)}filled{/if}" />{if $field.required}<sup>*</sup>{/if}
   <div class="customizationUploadBrowseDescription">{if !empty($field.name)}{$field.name}{else}{l s='Please select an image file from your hard drive'}{/if}</div></div>
  </li>
  {counter}
 {/if}
   {/foreach}
  </ul>
  {/if}
  <div class="clear"></div>
  {if $product->text_fields|intval}
  <h2>{l s='Texts'}</h2>
  <ul id="text_fields">
   {counter start=0 assign='customizationField'}
   {foreach from=$customizationFields item='field' name='customizationFields'}
 {if $field.type == 1}
  <li class="customizationUploadLine{if $field.required} required{/if}">{assign var='key' value='textFields_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field}
   {if !empty($field.name)}{$field.name}{/if}{if $field.required}<sup>*</sup>{/if}<textarea type="text" name="textField{$field.id_customization_field}" id="textField{$customizationField}" rows="1" cols="40" class="customization_block_input" />{if isset($textFields.$key)}{$textFields.$key|stripslashes}{/if}</textarea>
  </li>
  {counter}
 {/if}
   {/foreach}
  </ul>
  {/if}
  <p style="clear: left;" id="customizedDatas">
   <input type="hidden" name="quantityBackup" id="quantityBackup" value="" />
   <input type="hidden" name="submitCustomizedDatas" value="1" />
   <input type="button" class="button" value="{l s='Save'}" onclick="javascript:saveCustomization()" />
   <span id="ajax-loader" style="display:none"><img src="{$img_ps_dir}loader.gif" alt="loader" /></span>
  </p>
 </form>
 <p class="clear required"><sup>*</sup> {l s='required fields'}</p>
</div>

 

notamment par rapport à la balise TEXTAREA ?

 

Mais cela semble cependant toujours bloqué par un VARCHAR(255) quelque part dans la DB....

Share this post


Link to post
Share on other sites

Petite précision : je n'arrive pas à trouver les informations rentrées dans le client lors de la commande personnalisée (donc le texte) dans la DB donc cela ne serait pas stocké dans la DB (donc à ce moment là rien à changer dans la DB ...) mais où ?

Share this post


Link to post
Share on other sites

Si il faut déjà changer dans la DB et trouver dans le core ou est contrôlé cette valeur!

Je pense dans une classe ou un controleur.

 

Ckarone

Share this post


Link to post
Share on other sites

Bonjour,

 

Non :(

 

Cela fait un mois que ma boutique est ouverte et je dois recontacter chaque client en lui disant qu'il y a eu un problème informatique.......

 

Contacté 4 développeurs, 2 n'ont pas le temps et disent que c'est pas si simple que ça, 1 propose de me le faire mais pour une somme :blink: et le dernier ne m'a pas répondu...

 

Si jamais vous avez d'autres pistes... c'est vraiment un soucis...

Share this post


Link to post
Share on other sites

Salut j'ai découvert ce problème ce matin.

J'ai modifié la BDD en passant le champ value de la table customized_data en text (j'ai enlevé la taille de 255) et cela fonctionne (j'ai tout mon texte dans la BDD).

Ma version de prestashop 1.4.6.2 et je suis en local... Je sais pas si cela à une influence ?!

A plus.

Share this post


Link to post
Share on other sites

Bonjour

j'ai aussi le même problème le client peut écrire son texte en entier, mais moi par contre quand je le reçois il est tronquer

Avait trouver une solution pour remédier à ce soucis

je vous remercie pour votre aide

Share this post


Link to post
Share on other sites

Salut à tous,

 

Cette astuce ne fonctionne pas sur la version 1.6.0.11 est ce que quelqu'un aurait une solution svp ??

 

Merci à tous :)

Share this post


Link to post
Share on other sites

pour wizard13 si ce n'est pas trop tard 

testé sur 1.6 la solution fonctionne il faut changer dans ta table ps customized data le varchar qui est à l'origine en valeur 255mized_dataed_data

Share this post


Link to post
Share on other sites

Salut BIBI37,

 

Pourrais-tu me dire ce que tu as mis à la place de "VARCHAR"?

Car j'ai essayé et sa ne marche pas et j'aimerais bien augmenter la valeur maximal de la description des catégories. Car la description sur ma page ne s'affiche pas complètement.

Share this post


Link to post
Share on other sites

Bonjour,

 

Pour PS v1.6.1.1

 

Je donne la solution à un problème identique : pouvoir insérer des valeurs supérieures à 255 caractères pour les caractéristiques personnalisées.

 

Le AdminControllerProducts dans sa fonction checkFeatures utilise un tableau $rules dans lequel il charge des valeurs via 'getValidationRules' qui je suppose est un appel dynamique à une fonction par son nom.

 

Donc le object model doit être modifié - dans mon cas - FeatureValue dans sa $definition qui est un tableau des propriétés de l'objet. J'ai mis 500 pour l'attribut size au champ value des langues. Attention utilisez l'overide et effacer dans le dossier cache le fichier class_index.php qui charge les classes. Voir documentation.

 

Par ailleurs pour que cela ne coince pas niveau DB il faut via PhpMyAdmin par ex. modifier la structure de la table feature_value_lang de varchar(255) à TEXT pour le champ value.

 

J'espère que cela aidera qqun.

 

Alexandre

Edited by Creativus Comunico (see edit history)

Share this post


Link to post
Share on other sites

Je recherche la table "table customized_data" citée dans les précédents messages, car j'ai besoin de limiter à 30 caractères (impression sur rose) le champs personnalisé.

 

Hors dansclasses -> DB, je n'ai pas de fichier customized_data :/

 

Ce fichier existe toujours dans la version 1.6.1.9 ?

 

Merci pour le renseignement !

Share this post


Link to post
Share on other sites

 

 

Le AdminControllerProducts dans sa fonction checkFeatures utilise un tableau $rules dans lequel il charge des valeurs via 'getValidationRules' qui je suppose est un appel dynamique à une fonction par son nom.

 

Donc le object model doit être modifié - dans mon cas - FeatureValue dans sa $definition qui est un tableau des propriétés de l'objet. J'ai mis 500 pour l'attribut size au champ value des langues. Attention utilisez l'overide et effacer dans le dossier cache le fichier class_index.php qui charge les classes. Voir documentation.

 

 

Bonjour, est ce que quelqu'un ou Alexandre, pourrais développer la partie ou il faut modifier le code... ? Merci !

 

Je suis sur 1.6.12...

 

Solution trouvée pour 1.6 : modifier la table + modifer classes/FeatureValue.php et mettre 9999999999999 à la place de 255

Edited by Stephanie2103 (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

Bonjour,

Je cherche comment supprimer la limitation à 6 000 caractère du champs Description dans la fiche produit d'un PS 1.7.2.2.
Pouvez m'aider ?

Merci de votre retour.

Share this post


Link to post
Share on other sites

Réponse
le fichier a modifié se trouve : src/PrestaShopBundle/Form/Admin/Product/ProductInformation.php
Modifier les deux valeurs 6 000 ligne 161 et 165 à la valeur désirée.

Share this post


Link to post
Share on other sites

Bonjour,

#personalisation 250 char. max

le fichier a modifié est product-customization.tpl faire une recherche a 250 et le changer au numéro que vous voulez.

se trouve (public_html/themes/......../templates/catalog/_partials)

Cordialement
Osama

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More