Back to top

Autore Topic: virtuemart colori e vista immagini prodotti: la mia soluzione  (Letto 4484 volte)

Offline MarcusJ

  • Esploratore
  • **
  • Post: 107
  • Sesso: Maschio
    • Mostra profilo
Salve a tutti, non so se può essere utile, ma ho realizzato una soluzione per poter avere nella visualizzazione del prodotto una lista di caselle di colori differenti che una volta cliccati mostrano in una lightbox l'immagine del prodotto relativa. Potrei postare una mini guida, lo faccio direttamente qui?

ciauz
Francesco

Offline jk4nik

  • Instancabile
  • ******
  • Post: 6517
  • Sesso: Maschio
    • Mostra profilo
Re:virtuemart colori e vista immagini prodotti: la mia soluzione
« Risposta #1 il: 10 Lug 2009, 17:38:00 »
intanto si grazie, poi vediamo

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 MarcusJ

  • Esploratore
  • **
  • Post: 107
  • Sesso: Maschio
    • Mostra profilo
Re:virtuemart colori e vista immagini prodotti: la mia soluzione
« Risposta #2 il: 11 Lug 2009, 14:16:15 »
la mia soluzione parte da un presupposto: il cliente deve caricare il prodotto e le immagini dei relativi colori senza troppi problemi.
Basandomi su un post in questo form bisogna creare un attributo qualsiasi ad esempio di nome "colore" e poi aggiungere elementi al prodotto (i "subprodotti") di cui il nome sarà il colore RGB usato ad esempio "FF0000" e l'immagine quella che comparirà cliccando sul box che avrà come colore di sfondo il nome dell'elemento si aprirà una lightbox con l'immagine del subprodotto. Così facendo al cliente basterà caricare nuovi elementi mettendo come nome il colore del box.

Offline MarcusJ

  • Esploratore
  • **
  • Post: 107
  • Sesso: Maschio
    • Mostra profilo
Re:virtuemart colori e vista immagini prodotti: la mia soluzione
« Risposta #3 il: 11 Lug 2009, 14:23:12 »
ci sono un paio di modifiche da fare al core di virtuemart e un paio di file tpl da creare, non conosco benissimo virtuemart quindi mi sono basato sulla gestione degli elementi per estrapolare il codice, detto questo passiamo agli step:
bisogna modificare il file administrator/components/com_virtuemart/classes/
ps_product_attribute.php
e aggiungere la funzione list_attribute_color (l'ho creata basandomi su list_attribute):
Codice: [Seleziona]
function list_attribute_color( $product_id ) {

global $VM_LANG, $CURRENCY_DISPLAY, $mm_action_url, $sess ;

require_once (CLASSPATH . 'ps_product.php') ;
$ps_product = new ps_product( ) ;
$Itemid = $sess->getShopItemid() ;
$category_id = vmGet( $_REQUEST, 'category_id', "" ) ;
$db = new ps_DB( ) ;
$db_sku = new ps_DB( ) ;
$db_item = new ps_DB( ) ;
$tpl = new $GLOBALS['VM_THEMECLASS']( ) ;
$tpl->set( "cls_suffix", $cls_suffix ) ;
$tpl->set( "product_id", $product_id ) ;

// Get list of children
$q = "SELECT product_id,product_name,product_full_image FROM #__{vm}_product WHERE product_parent_id='$product_id' AND product_publish='Y'" ;
$db->query($q);

if( $db->num_rows() > 0 ) {
$flypage = $ps_product->get_flypage( $product_id ) ;
$html = "<div name=\"product_id\" value=\"$product_id\" />" ;
$html .= "<span>" . $VM_LANG->_( 'PHPSHOP_PLEASE_SEL_COLOR' ) . "</span>: <br />\n" ;

while( $db->next_record() ) {
$html .= "<div style=\"width:20px;height:20px;float:left;margin-right:5px;border: 2px solid #FFFFFF; background-color:#".$db->f( "product_name" ).";\"><a href=\"components/com_virtuemart/shop_image/product/".$db->f( "product_full_image" )."\" style=\"width:100%;height:100%;display:block;\" rel=\"lightbox[product2]\"></a></div>";
}
$html .= "</div>\n " ;
$tpl->set( "select_color", $html ) ;
} else {
$html = "<div name=\"product_id\" value=\"$product_id\" />" ;
$html .= "</div>\n " ;
$tpl->set( "select_color", $html ) ;
}
$html = $tpl->fetch( 'product_details/includes/select_color.tpl.php' ) ;
return array( $html , "drop" ) ;
}

e bisogna aggiungere ai file di lingua in administrator/components/com_virtuemart/languages/common la costante PHPSHOP_PLEASE_SEL_COLOR con il testo che preferite tipo "Visualizza colori differenti"


Offline MarcusJ

  • Esploratore
  • **
  • Post: 107
  • Sesso: Maschio
    • Mostra profilo
Re:virtuemart colori e vista immagini prodotti: la mia soluzione
« Risposta #4 il: 11 Lug 2009, 14:27:57 »
dopo create il file components/com_virtuemart/themes/nome del vostro tema/templates/product_details/includes/product_color.tpl.php

con il codice:
Codice: [Seleziona]
<?php if( !defined'_VALID_MOS' ) && !defined'_JEXEC' ) ) 
die( 
'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

<div class="vmColorContainer">
<?php
mm_showMyFileName
(__FILE__);
list(
$html,$children) = $ps_product_attribute ->
 
list_attribute_color( ( $product_parent_id )  ? $product_parent_id $product_id );
echo 
$html;
?>

</div>

e poi create il file components/com_virtuemart/themes/kronosystem/templates/product_details/includes/select_color.tpl.php

con il codice:
Codice: [Seleziona]
<?php if( !defined'_VALID_MOS' ) && !defined'_JEXEC' ) ) 
die( 
'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

<div class="vmColorDetails<?php echo $cls_suffix?>">
<?php echo $select_color ?>
</div>

e in
components/com_virtuemart/themes/nome del vostro tema/theme.css
aggiungere il css per .vmColorContainer

Offline MarcusJ

  • Esploratore
  • **
  • Post: 107
  • Sesso: Maschio
    • Mostra profilo
Re:virtuemart colori e vista immagini prodotti: la mia soluzione
« Risposta #5 il: 11 Lug 2009, 14:30:30 »
bene siamo alla fine adesso aggiungete le 2 righe di codice a shop.product_detail.php

$product_color = $tpl-> fetch('product_details/includes/product_color.tpl.php' );
$tpl->set( "product_color", $product_color );

Modificate infine il file flypage.tpl.php inserendo dove preferite
<?php echo $product_color ?>
questo creerà un box con una serie di div cliccabili! spero di essere stato chiaro!

ciauz vado al mare!!!

Offline thenetherworld

  • Nuovo arrivato
  • *
  • Post: 1
    • Mostra profilo
Re:virtuemart colori e vista immagini prodotti: la mia soluzione
« Risposta #6 il: 26 Lug 2009, 22:40:09 »
Io ho provato a seguire la tua guida ma non funziona niente.
Quando visualizzo il prodotto ricevo questo errore:
Fatal error: Call to a member function fetch() on a non-object in /var/www/miosito/administrator/components/com_virtuemart/html/shop.product_details.php on line 44
Perchè non fai un modulo, cosi è + facile da installarlo.

Come inserisci l'immagine??

Grazie

 



Web Design Bolzano Kreatif