Traduzione dei VirtueMart files con JoomFish
Utilizzando VirtueMart 1.1 e JoomFish 2 potreste riscontrare un problema tale per cui i files associati ai prodotti non vengono tradotti.
Vediamo nel dettaglio di cosa si tratta e qual è la soluzione.
VirtueMart Files
Chi usa VirtueMart sa che è possibile associare ad ogni prodotto dei media di diverso tipo:
- immagini
- files scaricabili liberamente
- files da vendere (per prodotti digitali)
In particolare, i files liberamente scaricabili sono spesso usati per associare manuali, brochures, o garanzie ai nostri prodotti.
Traduzione dei files
Se installate JoomFish e gli elementi di linguaggio per la traduzione di VirtueMart, tra le altre cose troverete anche la possibilità di tradurre i “VirtueMart Files”.
Questo è interessante perchè ci permette di associare alla versione italiana della pagina prodotto il manuale in lingua italiana, alla versione inglese il manuale in lingua inglese, e così via.
Solo che, dopo aver creato la traduzione – ovvero dopo aver selezionato un file in un’altra lingua – succede questo:
- vedete correttamente, nella versione tradotta, il nome e la dimensione del file tradotto
- se però cliccate per scaricare continua a scaricarvi il file originale.
Soluzione
Joomfish ha sempre bisogno dell’id. Ovvero, per poter intervenire e pescare il file corretto ha bisogno che il campo indicato come id di una certa tabella sia sempre incluso nei campi selezionati da una query.
Pertanto la soluzione è quella di modificare la funzione send_file nella classe ps_product_files. Aprite il file
/administrator/components/com_virtuemart/classes/ps_product_files.php
e andate alla riga 731 (stiamo parlando della versione 1.1.9, in altre versioni potrebbe variare). Sostituite
$sql = 'SELECT file_mimetype, file_name'
con
$sql = 'SELECT file_id, file_mimetype, file_name'
e il tutto dovrebbe funzionare correttamente.