Back to top

Autore Topic: Virtuemart: Noimage con link web  (Letto 1665 volte)

Offline fottutoblues

  • Esploratore
  • **
  • Post: 82
    • Mostra profilo
Virtuemart: Noimage con link web
« il: 07 Giu 2010, 18:55:53 »
Ciao a tutti e grazie in anticipo per l'aiuto.
Nel mio catalogo VM utilizzo solamente il link URL per le immagini prodotto. L'url è un database immagini del mio fornitore tipo www.fornitore/product_sku.jpg
Se però l'immagine è mancante viene visualizzato un'area vuota allo stesso modo di un link html inesistente (come di fatto è).
E' possibile tramite una modifica .php accorgersi dell'inesistenza dell'immagine così da reindirizzare ad un link generico ad esempio www/miosito/noimage.jpg?
Chiedo questo poiché non so in anticipo se l'immagine .jpg sul sito fornitore è esistente o meno ed il numero degli articoli è così elevato da non poter effettuare verifice uno per uno.
vtt

Offline fottutoblues

  • Esploratore
  • **
  • Post: 82
    • Mostra profilo
[RISOLTO] Virtuemart: Noimage con link web
« Risposta #1 il: 09 Giu 2010, 18:35:57 »
con un nome così chi vuoi che ti risponda???

l'url dell'immagine è memorizzato nella varabile stringa $product_thumb_image: se si controlla questa variabile prima della sua pubblicazione è possibile verificare se il link stesso è corretto o meno.

per non modificare il core di vm ho agito su una pagina di visualizzazione categoria personalizzata (che ho rinominato browse_vtt.php e che ho assegnato a tutte le categorie) così che non possa essere sovrascritta da eventuali aggiornamenti.

1. apro la pagina di visualizzazione categoria situata in \components\com_virtuemart\themes\default\templates\browse

2. cerco la riga di codice che si occupa della stampa dell'immagine (la sua posizione varia a seconda della browse page utilizzata):
<?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="'.$product_s_desc.'" alt="'.$product_s_desc .'"' )?>

3. scrivo lo script di verifica prima di questa riga, io l'ho fatto ad inizio pagina subito dopo la chiusura del primo tag php e subito prima dei tag html:
<?php //verifico l'esistenza del link web
$handle = @fopen("$product_thumb_image", "r");
if(strpos($handle, "Resource id") !== 0) {
  // l'immagine non esiste e la cambio con la noimage predefinita
  $product_thumb_image=VM_THEMEURL.'images/'.NO_IMAGE;
  }
?>
in pratica la routine verifica l'esistenza del file immagine remoto (http://sitofornitore/codiceprodotto.jpg), cioè ubicato su altro server.
se il file non esiste alla variabile $product_thumb_image viene attribuito il percorso del file noimage predefinito (o qualuque altro si desideri anche nella forma $product_thumb_image="http://sitochetipare/noimage.jpg")

4. ma non è finita!!!
Manca la sistemazione dell'immagine grande: variabile $product_full_image
Manca la sistemazione della flypage (visualizzazione di dettaglio del prodotto) contenuta in \components\com_virtuemart\themes\default\templates\product_details


Spero che questo chi fa da sé fa per tre sia servito o servirà a qualcuno.

vtt


 



Web Design Bolzano Kreatif