Jak usunąć powiększenie ze strony szczegółów produktu w temacie 1.9 RWD

9

Jak usunąć funkcję powiększania z motywu RWD Magento 1.9?

Mogę to usunąć za pomocą css

div.zoomContainer {
  display: none;
}

Ale nie sądzę, że to najlepsza metoda? Lepiej byłoby usunąć go z pliku szablonu lub za pomocą xml.

Próbowałem edytować szablon / katalog / produkt / widok / media.phtml, ale nie miałem szczęścia.

Ostrokrzew
źródło
Nie, to nie jest właściwa metoda, na razie zobacz ostatnią odpowiedź z moją edycją.
Simbus82

Odpowiedzi:

10

Jak wspomniano w jednym z innych odpowiedzi, funkcja zoom zaczyna się w createZoomfunkcji z ProductMediaManagerw /skin/frontend/rwd/default/js/app.jspliku.

Tak więc inną opcją jest zastąpienie poszczególnych createZoomfunkcji za pośrednictwem JS na późniejszym etapie procesu.

Na przykład, jeśli wstawiasz JS jako część własnego motywu, możesz dodać następujące elementy, aby zastąpić createZoomfunkcję w ProductMediaManagerobiekcie.

// 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; }

}

Dzięki tej metodzie nie musisz kopiować całego app.jspliku. Należy jednak upewnić się, że JS kompozycji jest dodawany po pliku JS kompozycji nadrzędnej. Uważam, że jest to czystsze podejście.

Patrick Ward
źródło
Pracowałem dla mnie, ale pamiętaj, że nadpisania nie można załadować zbyt późno. Owinąłem go w obserwatora gotowego dokumentu jQuery, i było już za późno, żeby nadpisanie mogło cokolwiek zrobić. Zamiast tego musiałem wykonać prawo nadpisywania, gdy mój niestandardowy plik JS został załadowany, więc po prostu umieściłem go poza obserwatorem gotowym do dokumentu jQuery.
Louis B.
15

Utwórz przesłonięcie pliku /skin/frontend/rwd/default/js/app.js (na przykład w /skin/frontend/rwd/mystyle/js/app.js)

skomentuj wiersz (default line: 649):

//image.elevateZoom();

Odśwież pamięć podręczną Magento.

użytkownik90047
źródło
1
Zredagowałem, ponieważ jest to właściwa metoda.
Simbus82
2
Nieco lepszym rozwiązaniem może być dodanie return;instrukcji na samym początku tej createZoomfunkcji, w której znajduje się to image.elevateZoom();wywołanie. W ten sposób żaden skrypt JavaScript po stronie klienta nie musi nawet zostać wykonany. (nadal najpierw wykonaj procedurę zastępowania tego pliku w lokalnym motywie)
Darren Felton,
-3

Otwórz /frontend/rwd/default/layout/catalog.xml, w <catalog_product_view>sekcji komentarz poniżej linii

<action method="addItem"><type>skin_js</type><script>js/lib/elevatezoom/jquery.elevateZoom-3.0.8.min.js</script></action>
WisdmLabs
źródło
dzięki, ale jeśli usunę ten plik js, nie będę już mógł wybrać miniaturek dla głównego obszaru galerii
Holly
Wyłączenie tej funkcji nie jest właściwą metodą.
Simbus82
3
Nigdy nie powinieneś modyfikować plików w / app / design / frontend / rwd / default / layout / LUB żadnych plików w / app / design / frontend / base / default / layout / . Takie postępowanie nie jest zgodne z procedurami przyjaznymi dla aktualizacji. Aktualizacji układu zawsze należy dokonywać w pliku „local.xml” w kompozycji. W pliku local.xml nie ma żadnych instrukcji XML dotyczących układu, których nie można zastąpić, zmodyfikować, usunąć itp.
Darren Felton
Spowoduje to błąd, ponieważ nie będzie w stanie znaleźć elevatezoom
Tisch