Jump to content

aumentare caratteri nel campo descrizione breve


Recommended Posts

salve
è possibile aumentare i caratteri del campo descrizione breva a + di 100

al memento mi compare sempre il messaggio

------
1 errore
il campo descrizione breve (Italiano (Italian)) è troppo lungo (100 caratteri massimi)
------

e sono davvero pochi!!!

Link to comment
Share on other sites

Ciao,

devi modificare sia il file admin/tabs/AdminProducts.php che il file classes/Product.php

1: vai nella tua cartella admin in /tabs/AdminProducts.php e modifica il seguente codice

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)).')'; 



sostituisci il valore 400 con quello che vuoi tu. ;-)

2: vai in classes -> apri il file Product.php e modifica il segunete codice

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); 



sostituisci il valore 400 con quello che vuoi tu. ;-)

P.S: Il valore 400 lo devi sostituire tutte le volte che compare nelle stringhe.

Link to comment
Share on other sites

Temo che quel limite ci sia anche nella tabella in database. Almeno per una cosa simile, ho dovuto mettere mano anche al database.

Si verifica facilmente. Dopo aver fatto le modifiche sopra indicate, si modifica il prodotto e si prova a visualizzarlo. Se il messaggio è troncato, va messo mano anche nel db. Dove di preciso non lo so, ma a intuito dovrebbe essere ps_product_lang (la voce description_short)

Link to comment
Share on other sites

Temo che quel limite ci sia anche nella tabella in database. Almeno per una cosa simile, ho dovuto mettere mano anche al database.

Si verifica facilmente. Dopo aver fatto le modifiche sopra indicate, si modifica il prodotto e si prova a visualizzarlo. Se il messaggio è troncato, va messo mano anche nel db. Dove di preciso non lo so, ma a intuito dovrebbe essere ps_product_lang (la voce description_short)


Temo che ti sbagli ;-)
il controllo dei caratteri è gestito dai file sopra elencati, il db non c'entra nulla.
Link to comment
Share on other sites



Temo che ti sbagli ;-)
il controllo dei caratteri è gestito dai file sopra elencati, il db non c'entra nulla.


La mia era un probabile precisazione, se sbaglio non ce nulla da temere. Meglio per chi deve fare delle modifiche.

Purtroppo sono ancora impossibilitato a controllare il database, ma faccio una precisazione.

Io non parlavo di controllo nel mio post. E quel che dici te è corretto. E' il PHP che fa il controllo.
Ma il db c'entra perché sono li che finiscono i dati.
Il problema è che non si può controllare (affermazione da verificare da uno che mysql lo conosce a fondo) la lunghezza di un campo tramite db. Se il campo accetta X caratteri, dal X+1 alla fine quelli vengono troncati. E non ti viene segnalato nulla. Io questo intendevo nel mio post.


EDIT: Allora, ho approfondito, per pura curiosità :)

Il campo description_short in database è di tipo text, e la lunghezza massima di questo campo è 64K (mysql docs) quindi in questo caso non dovrebbero esserci problemi (a meno che non si voglia mettere come descrizione breve un romanzo).
Link to comment
Share on other sites

Non volevo polemizzare sulla tua risposta, ma sinceramente non avevo capito finchè non ho letto la tua ultima.
Comunque credo che il db sia un contenitore dove accoglie infiniti dati (in base ai mb che hai a disposizione), sempre regolati da php.
Non so, mi piacerebbe che un esperto di mysql e php ci rispondesse a questo quesito.

Link to comment
Share on other sites

L'infinito è un concetto teorico. Nell'informatica tale concetto "non esiste". Per svariati motivi si mettono dei limiti (mancanza di spazio o complessità di calcolo).
Cmq, se apri una tabella di ps (o di qualsiasi altro programma che utilizza db, noterai che c'è un tipo definito per ogni campo, e una dimensione definita dall'utente, o di default, cmq finita.

Link to comment
Share on other sites

  • 2 years later...
  • 1 year later...

Nella versione di Prestashop 1.5.6.1 il file da modificare è  /controllers/admin/AdminProductsController.php

 

La riga 1981 contiene il valore 400 che io ho impostato a 600 così:

		if ($limit <= 0) $limit = 600;

E la riga 3524 dove ho impostato il valore 600 diventa così:

$data->assign('PS_PRODUCT_SHORT_DESC_LIMIT', Configuration::get('PS_PRODUCT_SHORT_DESC_LIMIT') ? Configuration::get('PS_PRODUCT_SHORT_DESC_LIMIT') : 600);
Link to comment
Share on other sites

ma è non è possibile che mettono un limite nella descrizione dei prodotti ma che schifo è mai questo. e se una persona non conosce in particolare il codice html combina casini.

@gianluca1983...

il tuo è un post vecchio che leggo solo ora.....ma non ce la faccio a non dire quello che penso....

una volta si diceva.....non sputare nel piatto dove si mangia

c'è maniera e maniera di esprimere la propria insoddisfazione x un prodotto.....soprattutto prima bisogna conoscerlo....schifo mi sembra esagerato, ma tipico di qualcuno che gratuitamente pretende....la pappa pronta....ricorda che c'è gente che lavora continuamente x migliorare Prestashop e mi sembra davvero troppo venga trattata così, soprattutto xchè non ti chiede un'euro....

 

Nella versione di Prestashop 1.5.6.1 il file da modificare è  /controllers/admin/AdminProductsController.php

 

La riga 1981 contiene il valore 400 che io ho impostato a 600 così:

        if ($limit <= 0) $limit = 600;

E la riga 3524 dove ho impostato il valore 600 diventa così:

$data->assign('PS_PRODUCT_SHORT_DESC_LIMIT', Configuration::get('PS_PRODUCT_SHORT_DESC_LIMIT') ? Configuration::get('PS_PRODUCT_SHORT_DESC_LIMIT') : 600);

 

@gianlucacsfo

basta andare nel BO > Preferenze > Prodotti  e come vedi nella schermata allegata puoi impostare anche 1000000000 :) caratteri senza problemi

semplice no?

post-148583-0-75353600-1386173459_thumb.jpg

Edited by ariom (see edit history)
  • Like 2
Link to comment
Share on other sites

  • 2 years later...
  • 8 months later...
  • 1 year later...

Salve a tutti,

 

mi aggancio qui dopo aver provato numerose soluzioni lette sul forum senza purtroppo ottenere risultati. 

 

La mia versione è la 1.7.3  ed ho anche io il problema della descrizione breve troppo corta.   

nonostante io abbia provato ad impostare il parametro dal BO, e anche a cambiare le suddette stringhe aumentando il valore "400" come suggerito sopra, 

la descrizione breve è ancora troppo breve.

 

Ma secondo me c'è qualche cosa (ovviamente) che non ho ancora settato nel modo giusto.

 

infatti nella mia descrizione breve compaiono solamente circa 20 o 21 caratteri, seguiti poi addirittura da 3 puntini di sospensione, quindi non è una TRONCATURA derivata da un settaggio errato credo, ma proprio un'impostazione che , evidentemente, ancora non ho trovato. 

Spero che qualcuno possa darmi una mano. ma da quel che ho letto in giro (anche altrove) a tutti quelli col mio problema nessuno sa rispondere. 

 

buona giornata

Link to comment
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...