Autore Topic: [Risolto]campo personalizato in vm 3.0.19  (Letto 400 volte)

Offline conti1

  • Global Moderator
  • Instancabile
  • ********
  • Post: 8904
  • Sesso: Maschio
    • Mostra profilo
    • sito delle prove
[Risolto]campo personalizato in vm 3.0.19
« il: 19 Mar 2017, 02:46:45 »
ciao
sono passato  dalla 3.0.18 funzionante alla 3.0.19  e qui viene il bello
ho un banale campo personalizzato di tipo stringa settaggi i soliti  non e che cè ne siano molti.
sia nella scheda prodotto che nel dettaglio non varia il prezzo
esempio banale
prodotto padre
camicia cotone manica corta costo 25, e fin qui tutto funziona
aggiungo un campo personalizzato
camicia cotone manica corta costo 0 "prende il prezzo del padre"
camicia cotone manica lunga costo 10 "25+10=35"
in vm 3.0.18 il prezzo variava
in vm3.0.19 nulla e come se non ci fosse il l'aggiunta del prezzo .
ora spulciando il codice , ora non so se è un errore voluto oppure c'è qualcosa d' altro che non funzioni metto il code  cosi capite
components/com_virtuemart/assets/js/vmprices.js
alla riga 12
in pratica togliendo il controllo ! che dice fero quando e falso o viceversa si rimette a funzionare
originale
Codice: [Seleziona]
while(!container.hasClass('product-container') && !container.hasClass('product-field-display')  && runs<=maxruns){
        container = container.parent();
        runs++;
    }
    if(runs>maxruns){
        console.log('setproducttype: Could not find parent container product-container nor product-field-display');
        return false;
    }
modificato
Codice: [Seleziona]
while(container.hasClass('product-container') && !container.hasClass('product-field-display')  && runs<=maxruns){
        container = container.parent();
        runs++;
    }
    if(runs>maxruns){
        console.log('setproducttype: Could not find parent container product-container nor product-field-display');
        return false;
    }

qualche soluzione migliore
« Ultima modifica: 20 Mar 2017, 13:19:46 da conti1 »
se possibile postare il link  x risolvere al meglio il problema grazie
evitare nomi commerciali grazie

Offline Alex21

  • Appassionato
  • ***
  • Post: 513
    • Mostra profilo
    • servizi web
Re:campo personalizato in vm 3.0.19
« Risposta #1 il: 19 Mar 2017, 11:54:10 »
hasClass è un metodo jQuery. Sempre interessante jQuery.
Sembra che la nuova versione abbia già tutti i blocchi html interessanti con la classe 'product-container' impostata dal php   (hai già controllato?), così  la tua correzione ha bisogno solo di ricercare  quelli che non hanno anche la classe  'product-field-display'.
Beh, funziona. Ok allora. :)
Volendo fare una finezza potresti modificare il messaggio in console.log più o meno in questo modo: 'setproducttype: Can not find parent container product-container with product-field-display absent'.
Ciao!

Offline conti1

  • Global Moderator
  • Instancabile
  • ********
  • Post: 8904
  • Sesso: Maschio
    • Mostra profilo
    • sito delle prove
Re:campo personalizato in vm 3.0.19
« Risposta #2 il: 19 Mar 2017, 17:03:20 »
ops
sempre nelle due righe postate  gurdandolo bene c'è if
allora originale
Codice: [Seleziona]
var runs= 0, maxruns = 20;
   var container = form;
   while(!container.hasClass('product-container') && !container.hasClass('product-field-display')  && runs<=maxruns){
      container = container.parent();
      runs++;
   }
   if(runs>maxruns){
      console.log('setproducttype: Could not find parent container product-container nor product-field-display');
      return false;
   } return false;
    }
runs<=maxruns chiede
Vera se il valore di sinistra è minore o uguale a quello di destra
e nel if dice maggiore di 0 interviene if e non fa caricare i prezzi  o sbaglio
ora modificando
(runs>maxruns) in (runs<maxruns)
Codice: [Seleziona]
var runs= 0, maxruns = 20;
   var container = form;
   while(!container.hasClass('product-container') && !container.hasClass('product-field-display')  && runs<=maxruns){
      container = container.parent();
      runs++;
   }
   if(runs<maxruns){
      console.log('setproducttype: Could not find parent container product-container nor product-field-display');
      return false;
   } return false;
    }
torna a funzionare lasciando invariato il controllo !
« Ultima modifica: 19 Mar 2017, 17:05:54 da conti1 »
se possibile postare il link  x risolvere al meglio il problema grazie
evitare nomi commerciali grazie

Offline Alex21

  • Appassionato
  • ***
  • Post: 513
    • Mostra profilo
    • servizi web
Re:campo personalizato in vm 3.0.19
« Risposta #3 il: 19 Mar 2017, 17:40:46 »

torna a funzionare lasciando invariato il controllo !
Certo!  Tutto il blocco ritorna sempre false però, è così che lo vuoi, immagino.
Ciao!

Offline conti1

  • Global Moderator
  • Instancabile
  • ********
  • Post: 8904
  • Sesso: Maschio
    • Mostra profilo
    • sito delle prove
Re:campo personalizato in vm 3.0.19
« Risposta #4 il: 19 Mar 2017, 22:28:22 »
non e proppio cosi che tutto il blocco ritorna sempre false , se if interviene
 if(runs>maxruns){
lui aspetta runs maggiore del maxruns x cui potrebbe anche ritornara false ma l'if interviene
ho sbaglio io a interpretare il code
per cui va messo minore
 if(runs<maxruns){

ps: anche la versione 3.2.0 appena uscita stesso bug ma solo io ho questo problema?
la versione 3.0.18 era funzionante  xche tutto il blocco che c'è ora era mancante.
se possibile postare il link  x risolvere al meglio il problema grazie
evitare nomi commerciali grazie

Offline Alex21

  • Appassionato
  • ***
  • Post: 513
    • Mostra profilo
    • servizi web
Re:campo personalizato in vm 3.0.19
« Risposta #5 il: 20 Mar 2017, 12:34:17 »
La logica del tuo codice è una cosa tua. Ognuno ha i suoi gusti su come si adoperano i contatori (runs) e quando tutto funziona ed è leggibile per me va più che bene.  ;)
Mi riferivo solo alla forma, cioè tu hai
- un blocco while() che esegue una operazione e aggiorna il contatore.
- un test di esame del contatore if() che opzionalmente invia un msg  a console.log e ritorna false.
- un ulteriore ritorno di false alla fine se il test del contatore non esegue nessuna operazione.
- una } che dev'essere stata aperta in un punto più in alto del codice.
Per quello dicevo che ritorna sempre false.
Ciao!

Offline conti1

  • Global Moderator
  • Instancabile
  • ********
  • Post: 8904
  • Sesso: Maschio
    • Mostra profilo
    • sito delle prove
Re:campo personalizato in vm 3.0.19
« Risposta #6 il: 20 Mar 2017, 13:19:21 »
con la 3.20 nel dettaglio ora funziona e passa anche nel carello che prima non funzionava non era solo un ponto di vista del code.
nel prodotto non varia ma nel carello arriva il prezzo  giusto ,  in questo punto possiamo  discure all'infinito  del funzionamento  che sia giusto o meno  dal mio punto di vista variando il  prodotto dovrebbe cambiare il prezzo visivamente  , olmeno ora con la nuova versione funziona il caricamento nel carello.
ora sappiamo che si può far variare il prezzo  anche nel prodotto  lasciamo il tutto come di default di vm  visto che ora funziona, e lasciamo la parola al cliente  se vedere o meno la variabile funzionante anche nel prodotto.
se possibile postare il link  x risolvere al meglio il problema grazie
evitare nomi commerciali grazie

 

Torna su