Joomla.it Forum
Componenti per Joomla! => Gestione e-commerce => VirtueMart - tips & tricks => : nym72 28 Mar 2011, 22:48:08
-
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
<?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
<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
-
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
-
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?
-
queste righe prendono l'unità di misura direttamente dal db, dalla scheda dell'articolo:
<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
-
codice con cifrfe decimali formattate a 2:
<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 />
-
Versione con IF che non fa apparire la riga quando il valore è vuoto:
<?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 } ?>
-
Questa riga di codice
<?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 ?