Autore Topic: Tip:Visualizzare nella flypage le dimensioni del prodotto e solo 2 decimali  (Letto 9023 volte)

Offline nym72

  • Esploratore
  • **
  • Post: 107
  • Sesso: Femmina
    • Mostra profilo
    • Tempo di Vivere
Ok,

visto che ho faticato parecchio per mettere insieme queste info le posto anche qui in caso a qualcuno servissero

1) Per far apparire le dimensioni del prodotto automaticamente nella pagina dei dettagli prodotto

Aprire la nostra flypage nella cartella
/components/com_virtuemart/themes/default/templates/product_details

es. io utilizzo la flypage.tpl, per cui ho modificato la flypage.tpl.php

Inserire dove vogliamo che appaiano le misure, le seguenti stringhe
Codice: [Seleziona]
<?php echo $product_length ?>
<?php echo $product_height ?>
<?php echo $product_width ?>

(in caso voleste far apparire solo una o due misure ovviamente basterebbe non implementare la stringa che non v'interessa).

Nel mio caso avevo bisogno solo di Lunghezza e Larghezza e volevo farle apparire subito sotto il prezzo del prodotto, per cui ho modificato la parte della mia flypage che m'interessava  in questo modo
Codice: [Seleziona]
<td width="33%" valign="top" align="left">


      <?php echo $product_price_lbl ?>
      <?php echo $product_price ?><br />
<b>Lunghezza:</b> <?php echo $product_length ?> cm<br>
<b>Larghezza:</b> <?php echo $product_width ?> cm</td>
(ho aggiunto anche l'unità di misura perchè con il codice che vi ho indicato sopra non veniva visualizzata, nel mio caso si tratta di cm, se usate altre unità ovviamente dovete scrivere quello che v'interessa)

2) Per far sì che comparissero solo due crifre decimali anzichè quattro dopo la virgola ho modificato il database in questo modo

Entrare nel database (io lo faccio tramite phpMyAdmin), andare alla tabella
jos_vm_product table
 in modalità struttura

Individuare le righe
product_length,
product_width,
product_height

selezionarle una alla volta, cliccare "Modifica" e cambiare decimal(10,4) in decimal(10,2),
 salvate
(lo dovete fare per ogni riga)

Ecco fatto....in questo modo le misure che avete inserito nel pannello di aministarzione di VM > prodotto xyz> dimensioni e peso, saranno viualizzate anche nella vostra flypage

(a me non interessava evidenziare il peso, ma mi sembra che per quello sia già inclusa in VM la possibilità andando ad inserire {product_weight} dove vogliamo che appaia, se non funzionasse fate la stessa procedura che vi ho detto sopra inserendo
Peso: <?php echo $product_weight ?> kg

e poi andando a modificare nel database la riga product_weight nel modo indicato sopra.
Attenzione nel modificare i decimali per il peso perchè se usate spedizioni differenziate a seconda del peso del pacco non vorrei si creassero problemi, io non l'ho testato non interessandomi, per cui prima di modificare fate un backup!!! )


Spero sia stato utile  ;)

A presto
Katia

Offline jk4nik

  • Instancabile
  • ******
  • Post: 6517
  • Sesso: Maschio
    • Mostra profilo
    • www.niksistemi.it
ottimo lavoro, solo 2 appunti.

1) non conviene mai modificare il tema di default, ma copiarlo con un altro nome dato da noi e modificare quello, in maniera da preservarsi dagli aggiornamenti ormai molto frequenti di VirtueMart, che altrimenti potrebbero sovrascrivere il tema principale, e fare in seguito gli opportuni confronti per verificarne le differenze

2) non conviene modificare la struttura del db sempre per lo stesso motivo, ma invece modificare la visualizzazione ove necessario, visualizzando solo 2 decimali (magari opportunamente arrotondati) invece di 4.

ciao
jk
Sta per essere approvata la nuova nomenclatura per le taglie dei reggiseni: essi saranno d'ora in poi descritti con le lettere dell'alfabeto ABCDEF: A - Apprezzabile B - Buona C - Cannonata D - Discreta E - Esagerata F - Falsa

Offline nym72

  • Esploratore
  • **
  • Post: 107
  • Sesso: Femmina
    • Mostra profilo
    • Tempo di Vivere
ottimo lavoro, solo 2 appunti.

1) non conviene mai modificare il tema di default, ma copiarlo con un altro nome dato da noi e modificare quello, in maniera da preservarsi dagli aggiornamenti ormai molto frequenti di VirtueMart, che altrimenti potrebbero sovrascrivere il tema principale, e fare in seguito gli opportuni confronti per verificarne le differenze

2) non conviene modificare la struttura del db sempre per lo stesso motivo, ma invece modificare la visualizzazione ove necessario, visualizzando solo 2 decimali (magari opportunamente arrotondati) invece di 4.

ciao
jk

Ti ringrazio per i suggerimenti  :)
Ho solo cercato di mettere insieme le notizie che ho trovato in giro e che per me hanno funzionato.
Hai assolutamente ragione sul fatto che si potrebbe fare meglio, ma io non sono proprio una cima con le modifiche  :-[
Sulla flypage personalizzata faccio in modo di trovare istruzioni, per la questione decimali, hai idea di dove possa trovare istruzioni su come fare quello che dici tu?

Offline rnervi

  • Nuovo arrivato
  • *
  • Post: 20
    • Mostra profilo
queste righe prendono l'unità di misura direttamente dal db, dalla scheda dell'articolo:

Codice: [Seleziona]
        <b>Lunghezza:</b> <?php echo $product_length ?> <?php echo $product_lwh_uom ?> <br />
        <b>Larghezza:</b> <?php echo $product_width ?> <?php echo $product_lwh_uom ?> <br />
        <b>Altezza:</b> <?php echo $product_heigth ?> <?php echo $product_lwh_uom ?> <br />

nelle prossime ore provo a:
  • prelevare il prompt dal db (lunghezza etc)
  • formattare le cifre decimali
  • Se il valore è zero NON visualizzare la stringa

Offline rnervi

  • Nuovo arrivato
  • *
  • Post: 20
    • Mostra profilo
codice con cifrfe decimali formattate a 2:

Codice: [Seleziona]
        <b>Lunghezza:</b> <?php echo number_format($product_length,2?> <?php echo $product_lwh_uom ?> <br />
        <b>Larghezza:</b> <?php echo number_format($product_width,2?> <?php echo $product_lwh_uom ?> <br />
        <b>Altezza:</b> <?php echo number_format($product_heigth,2?> <?php echo $product_lwh_uom ?> <br />

Offline rnervi

  • Nuovo arrivato
  • *
  • Post: 20
    • Mostra profilo
Versione con IF che non fa apparire la riga quando il valore  è vuoto:

Codice: [Seleziona]
      <?php if( !empty($product_length)) { ?>
            <b>Lunghezza:</b> <?php echo number_format($product_length,2?> <?php echo $product_lwh_uom ?> <br />
        <?php ?>
      <?php if( !empty($product_width)) { ?>
            <b>Larghezza:</b> <?php echo number_format($product_width,2?> <?php echo $product_lwh_uom ?> <br />
        <?php ?>
        <?php if( !empty($product_heigth)) { ?>
            <b>Altezza:</b> <?php echo number_format($product_heigth,2?> <?php echo $product_lwh_uom ?> <br />
        <?php ?>

Offline rnervi

  • Nuovo arrivato
  • *
  • Post: 20
    • Mostra profilo
Questa riga di codice

Codice: [Seleziona]
<?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_LENGTH'?>:
Le tre chiavi che ci servono (lung, larg, alt) sono:

PHPSHOP_PRODUCT_FORM_LENGTH      => 'Lunghezza
PHPSHOP_PRODUCT_FORM_WIDTH      => 'Larghezza
PHPSHOP_PRODUCT_FORM_HEIGHT      => 'Altezza

dovrebbe rispondere con "Lunghezza:" -  ma esce vuota... (probabilmente non è caricata la funzione di traduzione, non so...)...qualcuno ha qlc idea ?

 

Torna su