VirtueMart - Aggiungere un campo prodotto

google-plus Scritto da . Postato in Joomla!

Tags: joomla 2.5 virtuemart

VirtueMart 2.0.x è un ottimo prodotto. Purtroppo è pieno di imprecisioni come il predecessore, arrivato poi alla versione 1.2.0 e scartato quando finalmente era un prodotto maturo.

Credo arriveremo alla stessa triste fine anche per la versione 2.x.

Nel complesso, funziona bene per cose non troppo complesse. Ma se è necessario permettere a qualcuno di agire da front-end o creare un sistema multi-vendor posso garantire che diventa complesso customizzarlo anche se si basa su una buona filosofia e una volta imparato il sistema non è poi difficile la modifica.

Virtuemart 2.0.x nasce con un sistema che concede all'utente di definire campi personalizzati o custom da aggiungere ai prodotti. Molto utile!
Il difetto, è se si vuole un'interfaccia che risulti più intuitiva per l'utente, in quanto in inserimento e modifica, il campo va aggiunto prodotto per prodotto, passando per la scheda Campi personalizzati.

Per questo, se l'intenzione è quella di aggiungere un campo, ma di poterlo mettere nella scheda Informazioni prodotto, cioè quella principale in inserimento e modifica, seguite i seguenti passaggi:

Prima cosa da fare, attraverso phpMyAdmin o un database Manager (come Navicat o MySQL Query Browser per Linux) aprire la tabella  tuocod_virtuemart_products e modificarne la struttura inserendo un campo del nome desiderato. Nel mio caso product_year di tipo intero dimensione 4.

Passiamo ora al codice e alle classi PHP da modificare:

La prima classe da modificare la trovate nel percorso tuosito/administrator/com_virtuemart/tables/products.php
Nella prima parte della classe, dove vengono specificati gli attributi, aggiungere il proprio campo personalizzato, ad esempio:

var product_year;

Una volta effettuata questa modifica, siamo pronti per il secondo step.
Aprite il file tuosito/administrator/com_virtuemart/views/product/tmpl/product_edit_information.php
Dopo la seconda riga della tabella HTML, inserire il codice seguente. In questo caso il nostro campo è l'anno di produzione:

<?php $i = 1 - $i; ?> 
<tr class="row<?php echo $i?>">
     <td ><div style="text-align:right;font-weight:bold;">
             <?php echo JText::_('COM_VIRTUEMART_PRODUCT_FORM_YEAR') ?></div>
     </td>
     <td colspan="3">
             <input type="text" class="inputbox" name="product_year" value="<?php echo $this->product->product_year; ?>" size="32" maxlength="255" />
     </td>
</tr> 

Ora bisogna inserire la chiave nel file ini della lingua di virtuemart, che dovrete andare ad aprire al seguente percorso:
tuosito/administrator/language/it-IT/it-IT.com_virtuemart.ini (Questo file riguarda la lingua nel back-end).
Ovviamente al posto di YEAR dovrà esserci il nome del vostro campo e al posto di anno la descrizione da voi desiderata. Inserire la chiave nel file e salvare:

COM_VIRTUEMART_PRODUCT_FORM_YEAR="anno"

Fate la stessa cosa nel file tuosito/language/it-IT/it-IT.com_virtuemart.ini (Questo file riguarda la lingua nel front-end).

Ora, inseriamo in una view del sito, cioè a front-end il nostro campo anno. Per esempio nella view principale: virtuemart.
Aprire il file tuosito/components/com_virtuemart/views/virtuemart/tmpl/default_products.php
Inserire il seguente codice dove si preferisce la visualizzazione del valore del campo prodotto:

<p>
     <?php //Modifica campo Anno
             if($product->product_year) echo JText::_ ( 'COM_VIRTUEMART_PRODUCT_FORM_YEAR' ).": ".$product->product_year;
     ?>
</p>

Il codice soprastante va ripetuto in ogni view dove vi è il bisogno di visualizzare il nuovo campo prodotto, per esempio nella view productdetails.

Ovviamente funzionerà nelle view dove viene richiamato l'oggetto $product. Se avete domande chiedete!

Ed ecco i risultati a back-end:

 vm-prodotto-back-end

A front-end, la view virtuemart:

vm-campo-aggiuntivo

{bwomakase size="468x60"}

Se hai gradito l'articolo, condividilo, basta un click!

Aggiungi commento


Codice di sicurezza
Aggiorna

  • logo teoca
  • logo arcotraslochi
  • koilab japan and tropical fish farm
  • logo flash pulizie
  • revolution srl
  • logo casaeditrice isenzatregua
  • logo planetkoi small
  • logo elevatori sito
  • logo finiture
  • logo prontopro
  • ick logo template
  • montaggio mobili trento

Realizzato da: Daniele Gagliardi
Viale Monache 3 - 38062 Arco - TN
- Contattami -

Per essere più facile ed intuitivo, il blog fa uso dei cookie, piccole porzioni di dati che consentono di capire come gli utenti navighino e ne visualizzino le pagine. I cookie non registrano alcuna informazione personale sull'utente ed eventuali dati identificabili non verranno memorizzati. La nostra Privacy Policy è cambiata (11/09/2019): Ti invitiamo a prenderne visione. Oppure visiona la nostra Cookie Policy: