Come rimuovere lo zoom dalla pagina dei dettagli del prodotto sul tema 1.9 RWD


9

Come si rimuove la funzione di zoom dal tema rwd di Magento 1.9?

Posso rimuoverlo con CSS

div.zoomContainer {
  display: none;
}

Ma non penso che questo sia il metodo migliore? Sarebbe meglio rimuoverlo da un file modello o con XML.

Ho provato a modificare il template / catalog / product / view / media.phtml ma non ho avuto fortuna.


No, non è il metodo giusto, per ora vedi l'ultima risposta con la mia modifica.
Simbus82

Risposte:


10

Come accennato in una delle altre risposte, la funzione di zoom inizia nella createZoomfunzione del ProductMediaManagerin /skin/frontend/rwd/default/js/app.jsfile.

Quindi, un'altra opzione è quella di sovrascrivere la singola createZoomfunzione tramite JS più avanti nel processo.

Ad esempio, se si inserisce JS come parte del proprio tema, è possibile aggiungere quanto segue per sovrascrivere la createZoomfunzione ProductMediaManagernell'oggetto.

// ProductMediaManager is outside document.read scope
if (typeof ProductMediaManager !== 'undefined') {

  // Override image zoom in /skin/frontend/rwd/default/js/app.js
  // and prevent the zooming of images on hover
  ProductMediaManager.createZoom = function(image) { return; }

}

Con questo metodo, non è necessario copiare l'intero app.jsfile. Tuttavia, è necessario assicurarsi che il JS del tema sia aggiunto dopo il file JS del tema principale. Trovo che questo sia un approccio più pulito.


Ha funzionato per me, ma tieni presente che la sovrascrittura non può essere caricata troppo tardi. L'avevo avvolto in un osservatore pronto per documenti jQuery, ed era troppo tardi perché la sovrascrittura facesse qualcosa. Invece ho dovuto eseguire la sovrascrittura nel momento in cui il mio file JS personalizzato è stato caricato, quindi l'ho appena posizionato fuori dall'osservatore del documento jQuery pronto.
Louis B.

15

Crea una sostituzione del file /skin/frontend/rwd/default/js/app.js (ad esempio in /skin/frontend/rwd/mystyle/js/app.js)

commenta la riga (default line: 649):

//image.elevateZoom();

Aggiorna la cache di Magento.


1
Ho modificato perché è il metodo giusto.
Simbus82

2
Una soluzione leggermente migliore potrebbe essere semplicemente aggiungere return;un'istruzione all'inizio di questa createZoomfunzione in cui image.elevateZoom();risiede questa chiamata. In questo modo nessuno dei JavaScript sul lato client deve nemmeno eseguire in primo luogo. (segui ancora la pratica di ignorare prima questo file nel tuo tema locale)
Darren Felton,

-3

Apri /frontend/rwd/default/layout/catalog.xml, nella <catalog_product_view>sezione commento sotto la riga

<action method="addItem"><type>skin_js</type><script>js/lib/elevatezoom/jquery.elevateZoom-3.0.8.min.js</script></action>

grazie, ma se rimuovi quel file js non posso più selezionare le immagini in miniatura per l'area della galleria principale
Holly

Non è un metodo corretto per disabilitare questa funzione.
Simbus82

3
Non dovresti mai modificare i file in / app / design / frontend / rwd / default / layout / O nessuno dei file in / app / design / frontend / base / default / layout / . In questo modo non segue le pratiche amichevoli di aggiornamento. Gli aggiornamenti del layout devono sempre essere eseguiti in "local.xml" all'interno del tema. Non ci sono istruzioni XML di layout, che non possono essere sovrascritte, modificate, rimosse, ecc., In local.xml.
Darren Felton,

Ciò genererebbe un errore perché non sarebbe in grado di trovare elevatezze
Tisch
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.