Probleme mit Button Bewerten in der Detailansicht

Hallo zusammen / SWAG-Team, leider bin ich auf ein Problem gestoßen, das ich zwar statisch lösen kann, was aber leider nicht ideal ist. Wir haben mal weitere Tabs in der Detailansicht gehängt. z.B. Beschreibung, Tab-A, Tab-B, Tab-C, Bewertungen [code]

BeschreibungTab-ATab-BTab-CBewertungen1
[/code] Wenn man nun auf den Button „Bewerten“ (nicht den Reiter!) klickt, springt man in der Tab-Reihenfolge zu Position 1. Da befindet sich aber Bewertungen nicht mehr, sondern auf 4. In folgender JS-Datei hab ich die Anweisung gefunden: \themes\Frontend\Responsive\frontend_public\src\js\jquery.jump-to-tab.js [75] me.tabMenuProduct.changeTab(1); Hier kann man den Wert anpassen und der richtig Tab (Bewertungen) öffnet sich. Bei v4.x ist dieses Problem nicht vorhanden. Könnte das SWAG-Team dazu was sagen?

[quote]…Im folgender JS-Datei hab ich die Anweisung gefunden: \themes\Frontend\Responsive\frontend_public\src\js\jquery.jump-to-tab.js [75] me.tabMenuProduct.changeTab(1); Hier kann man den Wert anpassen und der richtig Tab (Bewertungen) öffnet sich. Bei v4.x ist dieses Problem nicht vorhanden… [/quote] Wenn man für manche Artikel unterschiedliche Anzahl an Tabs verwendet geht eine statische Zahlangabe aber auch nicht, oder?

richtig. man weiß nie welche plugins die tabs erweitern.

[quote=“pino”] Im folgender JS-Datei hab ich die Anweisung gefunden: \themes\Frontend\Responsive\frontend_public\src\js\jquery.jump-to-tab.js [75] me.tabMenuProduct.changeTab(1); Hier kann man den Wert anpassen und der richtig Tab (Bewertungen) öffnet sich. [/quote] Die Datei habe ich bei mir (SW 5.0.1) gar nicht. Bin auch an einer Lösung des Problems interessiert.

hi Sebastian, doch die datei ist da. hab nachgesehen.

1 „Gefällt mir“

[quote=„pino“]hi Sebastian, doch die datei ist da. hab nachgesehen.[/quote] Wurde wohl erst bei Version 5.0.1 eingeführt. Nach dem update habe ich die Datei jetzt auch. Danke schön

Hallo Zusammen, ich hab genau das gleiche Problem. Hab meine Tabs eingefügt, neue Templates für die Inhalte definiert, etc. Nun haben die Tabs in der tab-navigation nicht die Klasse “has–content” und man kann sie nicht korrekt anspringen, weil die Content-Divs nicht angezeigt werden. Kann man das JS anpassen? Ist das auch sinnvoll? Gibt es einen sauberen oder “offiziellen” Weg wie man das JS anpasst? Grüße, Cat.

[quote=“pino”]Hallo zusammen / SWAG-Team, leider bin ich auf ein Problem gestoßen, das ich zwar statisch lösen kann, was aber leider nicht ideal ist. Wir haben mal weitere Tabs in der Detailansicht gehängt. z.B. Beschreibung, Tab-A, Tab-B, Tab-C, Bewertungen [code]

BeschreibungTab-ATab-BTab-CBewertungen1
[/code] Wenn man nun auf den Button “Bewerten” (nicht den Reiter!) klickt, springt man in der Tab-Reihenfolge zu Position 1. Da befindet sich aber Bewertungen nicht mehr, sondern auf 4. In folgender JS-Datei hab ich die Anweisung gefunden: \themes\Frontend\Responsive\frontend_public\src\js\jquery.jump-to-tab.js [75] me.tabMenuProduct.changeTab(1); Hier kann man den Wert anpassen und der richtig Tab (Bewertungen) öffnet sich. Bei v4.x ist dieses Problem nicht vorhanden. Könnte das SWAG-Team dazu was sagen?[/quote] Hallo Pino, mach doch mal ein Ticket auf, denn so wie es jetzt ist sollte es nicht bleiben. Ich bin bei mir noch nicht über das Problem gestolpert, weil man ja an so etwas gar nicht vermutet. Ich habe auch teilweise einen zusätzlichen Reiter für die Größentabelle eingebaut. Das hängt bestimmt damit zusammen das die komplette Seite neu lädt und nicht nur der Inhalt des Reiters, so das dann über den Script wieder der Bewertungs-Reiter öffnen sollte.

Ich habe jetzt mal zu dem Thema ein Ticket angelegt und bitte euch dort zu Voten. http://jira.shopware.de/?ticket=SW-12687 Vielen Dank

Ich habe es einfach mit überschreiben des Plugins gelöst unabhängig davon wieviel Tabs erstellt werden: Die Datei jquery.jump-to-tab.js im /frontend/_public/src/js/ ablegen… ;(function($, window) { 'use strict'; /\*\* \* Tab Switcher Plugin \* \* This Plugin switches to the correct content tab when the user adds \* a product review which causes a page reload. The Plugin also \* scrolls to the correct page position where the alert messages \* are shown. \*/ $.overridePlugin('swJumpToTab', { onJumpToTab: function (event) { event.preventDefault(); var tab = 0; $(".tab-menu--product div a").each(function (i, el) { if ($(el).attr("title") == "Bewertungen") { tab = i; } }); this.jumpToTab(tab); $.publish('plugin/swJumpToTab/onClick', [this, event]); }, }); })(jQuery, window); Und in der Theme.php die JS Datei bekannt machen: protected $javascript = ['src/js/jquery.jump-to-tab.js']; Mal sehen was dies für folge Erscheinungen mitsich bringt!!

ich hab nun die Datei in der theme.php in /themes/frontend/meintheme/ bekannt gemacht Bei mir funktioniert das aber nicht und außerdem: Mit dem Bekanntmachen in der theme.php lässt sich nun im Backend das aktuelle Theme nicht mehr kompilieren. Die Kpmpilierung startet zwar, aber dann tut sich nix mehr.

Also meine sieht bis jetzt so aus: [code]

@tsurt danke, deine methode find ich toll! ich hab folgendes anzubieten. $.subscribe("plugin/swJumpToTab/onClick", function(event, me) { me.jumpToTab(2); }); man übergibt einfach die position (z.b. 2). nachteil: man muss es immer anpassen, je nach tabs. zu deiner variante. nach “Bewertungen” zu suchen macht keinen Sinn. 1. Textbaustein kann sich ändern 2. Fremdsprache wäre nicht möglich ich hab deins mal umgebaut: ;(function($, window) { 'use strict'; $.overridePlugin('swJumpToTab', { onJumpToTab: function (event) { event.preventDefault(); var tab = 0; $(".tab--navigation .tab--link").each(function (i, el) { if ($(el).find('.product--rating-count').length) { tab = i; } }); this.jumpToTab(tab); $.publish('plugin/swJumpToTab/onClick', [this, event]); }, }); })(jQuery, window); es wird nach ein element mit class ‘.product–rating-count’ gesucht. das ist etwas genauer, da nicht nach text gesucht wird. aber weiterhin würde das problem bestehen, dass ggf. im tpl ‘.product–rating-count’ nicht vorhanden sein könnte, da der designer rating count nicht haben möchte. der entickler müssten dann display:none verwenden. was soll’s es läuft so deutlich besser und danke für deine variante mit verbesserungsvorschlag :wink:

Super, das ist doch zu verwenden. Ich hatte es auch sorum versucht, nur scheinbar immer das Falsche element gezählt, bzw, immer eine falsche Zahl ausgespuckt bekommen. Aber danke für den Sprachfallback hinweis, dass habe ich dabei garnicht bedacht :wink:

gerne :wink: ich hab ein kleinen artikel dazu in meine seite geschrieben. hoffe du hast nichts dagegen deine schleife mit aufzuführen?

Zu erst sollten wir den Fehler noch ausmerzen, da es weiter unten im HTML noch einen link der Klasse „tab–link“ gibt…

[quote=„pino“]@tsurt danke, deine methode find ich toll! ich hab folgendes anzubieten. $.subscribe("plugin/swJumpToTab/onClick", function(event, me) { me.jumpToTab(2); }); man übergibt einfach die position (z.b. 2). nachteil: man muss es immer anpassen, je nach tabs. zu deiner variante. nach „Bewertungen“ zu suchen macht keinen Sinn. 1. Textbaustein kann sich ändern 2. Fremdsprache wäre nicht möglich ich hab deins mal umgebaut: ;(function($, window) { 'use strict'; $.overridePlugin('swJumpToTab', { onJumpToTab: function (event) { event.preventDefault(); var tab = 0; $(".tab--navigation .tab--link").each(function (i, el) { if ($(el).find('.product--rating-count').length) { tab = i; } }); this.jumpToTab(tab); $.publish('plugin/swJumpToTab/onClick', [this, event]); }, }); })(jQuery, window); es wird nach ein element mit class ‚.product–rating-count‘ gesucht. das ist etwas genauer, da nicht nach text gesucht wird. aber weiterhin würde das problem bestehen, dass ggf. im tpl ‚.product–rating-count‘ nicht vorhanden sein könnte, da der designer rating count nicht haben möchte. der entickler müssten dann display:none verwenden. was soll’s es läuft so deutlich besser und danke für deine variante mit verbesserungsvorschlag ;)[/quote] Wir fügen dem noch einem Abruch der Schleife bei Auffinden des ersten Elements hinzu, dann sollte es gehen. if ($(el).find('.product--rating-count').length) { tab = i; return false; } Welche Seite meinst du?

meine eigene. schreibe mir selber kleinere tuts auf. wäre halt öffentlich.

WIe lautet denn die Url? Grundsätzlich hab ich damit kein Problem!

siehe PN