So entfernen Sie den Zoom von der Produktdetailseite zum 1.9 RWD-Thema

9

Wie entferne ich die Zoomfunktion aus dem rwd-Design von Magento 1.9?

Ich kann es mit CSS entfernen

div.zoomContainer {
  display: none;
}

Aber ich denke nicht, dass dies die beste Methode ist? Es wäre besser, es aus einer Vorlagendatei oder mit XML zu entfernen.

Ich habe versucht, die Vorlage / catalog / product / view / media.phtml zu bearbeiten, hatte aber kein Glück.

Stechpalme
quelle
Nein, es ist nicht die richtige Methode. Sehen Sie sich jetzt die letzte Antwort mit meiner Bearbeitung an.
Simbus82

Antworten:

10

Wie in einer der anderen Antworten erwähnt, startet die Zoomfunktion in der createZoomFunktion der ProductMediaManagerIn- /skin/frontend/rwd/default/js/app.jsDatei.

Eine andere Möglichkeit besteht darin, die einzelne createZoomFunktion später im Prozess über JS zu überschreiben .

Wenn Sie beispielsweise JS als Teil Ihres eigenen Themas einfügen, können Sie Folgendes hinzufügen, um die createZoomFunktion im ProductMediaManagerObjekt zu überschreiben .

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

}

Mit dieser Methode müssen Sie nicht die gesamte app.jsDatei kopieren . Sie müssen jedoch sicherstellen, dass die JS Ihres Themas nach der JS-Datei des übergeordneten Themas hinzugefügt wird. Ich finde das sauberer.

Patrick Ward
quelle
Hat für mich funktioniert, aber denken Sie daran, dass das Überschreiben nicht zu spät geladen werden kann. Ich hatte es in einen Beobachter mit jQuery-Dokument eingewickelt, und es war zu spät, um etwas zu überschreiben. Stattdessen musste ich das Überschreiben richtig ausführen, als meine benutzerdefinierte JS-Datei geladen wurde, und platzierte sie einfach außerhalb des Beobachters, der für das jQuery-Dokument bereit ist.
Louis B.
15

Erstellen Sie eine Überschreibung der Datei /skin/frontend/rwd/default/js/app.js (z. B. in /skin/frontend/rwd/mystyle/js/app.js).

Kommentar der Zeile (default line: 649):

//image.elevateZoom();

Aktualisieren Sie den Magento-Cache.

user90047
quelle
1
Ich habe bearbeitet, weil es die richtige Methode ist.
Simbus82
2
Eine etwas bessere Lösung könnte darin bestehen, ganz return;am Anfang dieser createZoomFunktion, in der sich dieser image.elevateZoom();Aufruf befindet , eine Anweisung hinzuzufügen . Auf diese Weise muss keines der clientseitigen JavaScript überhaupt ausgeführt werden. (Befolgen Sie immer noch die Praxis, diese Datei zuerst in Ihrem lokalen Thema zu überschreiben.)
Darren Felton
-3

Öffnen Sie den Kommentar /frontend/rwd/default/layout/catalog.xmlim <catalog_product_view>Abschnitt unter der Zeile

<action method="addItem"><type>skin_js</type><script>js/lib/elevatezoom/jquery.elevateZoom-3.0.8.min.js</script></action>
WisdmLabs
quelle
danke, aber wenn ich diese js-Datei entferne, kann ich die Miniaturbilder für den Hauptgaleriebereich nicht mehr auswählen
Holly
Es ist keine richtige Methode, diese Funktion zu deaktivieren.
Simbus82
3
Sie sollten niemals die Dateien in / app / design / frontend / rwd / default / layout / ODER eine der Dateien in / app / design / frontend / base / default / layout / ändern . Dies folgt nicht den aktualisierungsfreundlichen Praktiken. Layoutaktualisierungen sollten immer in "local.xml" innerhalb Ihres Themas erfolgen. In local.xml gibt es keine Layout-XML-Anweisungen, die nicht überschrieben, geändert, entfernt usw. werden können.
Darren Felton
Dies würde einen Fehler auslösen, da es nicht in der Lage wäre, Elevatezoom zu finden
Tisch