Cómo eliminar el zoom de la página de detalles del producto en el tema 1.9 RWD

9

¿Cómo se elimina la función de zoom del tema rwd de Magento 1.9?

Puedo eliminarlo con css

div.zoomContainer {
  display: none;
}

¿Pero no creo que este sea el mejor método? Sería mejor eliminarlo de un archivo de plantilla o con xml.

Intenté editar la plantilla / catálogo / producto / vista / media.phtml pero no tuve suerte.

Acebo
fuente
No, no es el método correcto, por ahora vea la última respuesta con mi edición.
Simbus82

Respuestas:

10

Como se menciona en una de las otras respuestas, la función de zoom comienza en la createZoomfunción del archivo ProductMediaManagerin /skin/frontend/rwd/default/js/app.js.

Entonces, otra opción es anular la createZoomfunción individual a través de JS más adelante en el proceso.

Por ejemplo, si está insertando JS como parte de su propio tema, puede agregar lo siguiente para anular la createZoomfunción en el ProductMediaManagerobjeto.

// 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 este método, no tiene que copiar todo el app.jsarchivo. Sin embargo, debe asegurarse de que el JS de su tema se agregue después del archivo JS del tema principal. Encuentro que este es un enfoque más limpio.

Patrick Ward
fuente
Funcionó para mí, pero tenga en cuenta que la sobrescritura no se puede cargar demasiado tarde. Lo había envuelto en un observador listo para documentos jQuery, y era demasiado tarde para que la sobrescritura hiciera algo. En su lugar, tuve que ejecutar la sobrescritura correcta cuando se cargó mi archivo JS personalizado, así que lo coloqué fuera del observador listo para documentos jQuery.
Louis B.
15

Cree una anulación del archivo /skin/frontend/rwd/default/js/app.js (por ejemplo en /skin/frontend/rwd/mystyle/js/app.js)

comentar la línea (default line: 649):

//image.elevateZoom();

Actualiza el caché de Magento.

user90047
fuente
1
He editado porque es el método correcto.
Simbus82
2
Una solución un poco mejor puede ser simplemente agregar una return;declaración al comienzo de esta createZoomfunción en la que image.elevateZoom();reside esta llamada. De esa manera, ninguno de los JavaScript del lado del cliente tiene que ejecutarse en primer lugar. (todavía siga la práctica de anular este archivo en su tema local primero)
Darren Felton
-3

Abierto /frontend/rwd/default/layout/catalog.xml, en la <catalog_product_view>sección comentario debajo de la línea

<action method="addItem"><type>skin_js</type><script>js/lib/elevatezoom/jquery.elevateZoom-3.0.8.min.js</script></action>
WisdmLabs
fuente
gracias, pero si elimino ese archivo js ya no puedo seleccionar las imágenes en miniatura para el área de la galería principal
Holly
No es un método correcto para deshabilitar esta función.
Simbus82
3
Nunca debe modificar los archivos en / app / design / frontend / rwd / default / layout / O cualquiera de los archivos en / app / design / frontend / base / default / layout / . Hacerlo no sigue las prácticas amigables de actualización. Las actualizaciones de diseño siempre deben hacerse en "local.xml" dentro de su tema. No hay instrucciones XML de diseño que no se puedan anular, modificar, eliminar, etc., en local.xml.
Darren Felton el
Esto arrojaría un error porque no podría encontrar elevatezoom
Tisch