Αρχική
To Forum   Tutorials   Ενημέρωση
Home Είστε εδώ: Αρχική Tutorials Ιδέες και Κόλπα Προσθήκη νέων πεδίων σε προιόν του virtuemart
Προσθήκη νέων πεδίων σε προιόν του virtuemart Εκτύπωση E-mail
Συντάχθηκε απο τον/την Παναγιώτης Σιγκριρίδης   

Προσπαθώντας να βρω κάποιο τρόπο μέσο του vm να εισάγω εύκολα νέα πεδία στα προιόντα του, κατάληξα να δοκιμάσω να το κάνω μόνος μου.
Οι παρακάτω σημειώσεις αποτελούν τη διαδικασία που ακολούθησα ώστε να προσθέσω ένα νέο πεδίο και να το εμφανίσω στη flypage του προιόντος.

Αρχικά θα πρέπει να δημιουργήσουμε ένα νέο πεδίο στην βάση δεδομένων και συγκεκριμένα στον πίνακα jos_vm_product. Ας υποθέσουμε ότι το ονομάζουμε fld1.

Το δεύτερο βήμα είναι να δημιουργήσουμε το πεδίο εισαγωγής από την φόρμα του προιόντος. Ανοίγουμε το αρχείο product.product_form.php το οποίο βρίσκεται στον φάκελο administrator\components\com_virtuemart\html.

Περίπου στην γραμμή 200 εισάγουμε ένα νέο tr στο table που περιέχει τα στοιχεία του προιόντος.

<!-- Test field product  -->
    <tr> 
      <td width="21%"><div style="text-align:right;font-weight:bold;">
        <?php echo "test field1" ?>:</div>
      </td>
      <td width="79%"> 
        <input type="text" class="inputbox"  name="fld1" value="<?php $db->sp("fld1"); ?>"
size="32" maxlength="200" />
      </td>   
    </tr>

Με τα παραπάνω εμφανίζεται ένα νέο input box με label test field1.
Στο επόμενο βήμα πρέπει να αποθηκεύσουμε την τιμή του πεδίου που συμπληρώσαμε στη βάση δεδομένων όταν ο χρήστης πατάει save.

Ανοίγουμε το αρχείο ps_product.php που βρίσκεται στο φάκελο administrator\components\com_virtuemart\classes. 
Περίπου στη γραμμή 240 της function add( &$d ) υπάρχει
$q  = "INSERT INTO #__{vm}_product (vendor_id,product_parent_id,product_sku,";
Είναι το query εισαγωγής, οπότε συμπληρώνουμε 
$q .= "product_name,product_desc,product_s_desc,fld1,";
και
$q .= $d["fld1"] . "','" . $d["fld1"] . "','";
στα values του query
Τα ίδια κάνουμε και για τη function update( &$d ) περίπου line 450
$q .= "fld1='" . $d["fld1"] . "',";
Για να φαίνονται οι αλλαγές και στη φόρμα του προιόντος ανοίγουμε το product.product_display.php και συμπληρώνουμε
<div class="formLabel"> <?php echo 'fld1' ?>:</div>
<div class="formField" > <?php $db->p("fld1"); ?></div>    
Περίπου Line 75
Για την εισαγωγή στη flypage κάνουμε τα παρακάτω
στο αρχείο shop.product_details.php στη γραμμή ~125 προσθέστε
/** GET CUSTOM FIELD 1 **/
$fld1 = $db_product->f("fld1"); 
και στη γραμμή 370
$template = str_replace( "{fld1}", $fld1, $template );
Το μόνο που έμεινε είναι να εισάγουμε το νέο πεδίο στη flypage. Αυτό γίνεται με την προσθήκη απλά του {fld1}
Η παραπάνω διαδικασία δουλεύει κανονικά, αλλά δεν έχω φτιάξει ακόμα το search για το custom πεδίο.

 
   
 

Joomla! Best CMS 2011

Packt OS-AWARDS-2011 0

Το Joomla βραβεύτηκε για ακόμη μια φορά, ως το καλύτερο open source, σύστημα διαχείρισης  περιεχομένου και για το 2011.

 

C) 2005-2010 joomla.gr | Φιλοξενία και υποστήριξη joomla! hosting and support services in Greece

Top