Tooltipster in Einkaufswelten

Hi, ich habe das Script für tooltipstereingebaut was auch soweit auf normalen Kategorieseiten in der Beschreibung funktioniert: theme.php: /\*\* @var array Defines the files which should be compiled by the javascript compressor \*/ protected $css = array( 'src/css/tooltipster.css' ); /\*\* @var array Defines the files which should be compiled by the javascript compressor \*/ protected $javascript = array( 'src/js/jquery.tooltipster.js' ); Leider läd der Tooltip nicht dort wo ich ihn brauche: in den Einkaufswelten. Hat jemand einen Tipp parat woran es liegen könnte?

/push

Kannst du mal zeigen was du genau mit der Funktion bewirkst… Merci Alexander

Ohne genau zu wissen was du vor hast: Vermutlich liegt das daran, dass die Einkaufswelten per JavaScript nachgeladen werden, sie sind also noch gar nicht existent wenn das tooltipster-Plugin geladen wird. Vielleicht gibt es irgendwelche Events die von den Einkaufswelten getriggert werden wenn sie geladen sind, dann könnte man sich da ran hängen. Oder du baust den Aufruf zu Initialisierung der Tooltips in die Einkaufewelten ein (z.B. indem du deren Template anpasst)

[quote=“t2oh4e”]Oder du baust den Aufruf zu Initialisierung der Tooltips in die Einkaufewelten ein (z.B. indem du deren Template anpasst)[/quote] Hast du einen Tipp für mich, wo genau ich da ansetzen müsste? Es wird vermutlich genau das Problem mit dem Nachladen der Einkaufswelte sein.

Eigenes Template erstellen wie hier beschrieben: https://devdocs.shopware.com/designers- … tom-themes Dann musst du noch die richtige Template-Datei finden. Ich vermute du brauchst widgets/emotion/index.tpl Sehe gerade keinen passenden block den man erweitern könnte, also würde ich die ganze Datei aus dem Bare-Theme in dein eigenes kopieren und dort zwischen den ersten beiden oder den letzten beiden Zeilen dein Script einfügen. (Alles nur eine Idee wie es vermutlich funktionieren müsste…)

Hallo, hier könntest Du auch über das neue Event-System gehen. Siehe: https://devdocs.shopware.com/designers-guide/javascript-statemanager-and-pluginbase/#global-jquery-event-observer Das entsprechende Event aus dem Emotion Plugin wäre: ‘plugin/emotion/init’ Sonnige Grüße, Phil

Da sind also die Events die getriggert werden, wie in meiner ersten Antwort vermutet. Das wäre natürlich noch viel eleganter :thumbup:

Hallo, gibt es hierfür mittlerweile eine Lösung? In shopware4 wurde der Tooltip in den Einkaufswelten angezeigt. Es wurde sogar ein Bild ausgegeben.

In shopware5 funktioniert das wohl leider nicht mehr. Man kann beim Mapping zwar Tooltip auswählen, wird aber nicht mehr so angezeigt. Wäre schön, wenn mir das jemand möglichst genau erklären könnte.

Huhu! Ich wollte den Thread mal wiederbeleben … Gibt es dazu ein genaues Beispiel? Meine Tests verlaufen nämlich nicht so erfolgreich. Weder $.subscribe('plugin/emotion/onInit', function() { console.log('onInit'); }); weder $.subscribe('plugin/emotion/init', function() { console.log('onInit'); }); weder $.subscribe('plugin/emotion/onInit.my-plugin', function() { console.log('onInit'); }); noch $.subscribe('plugin/emotion/init.my-plugin', function() { console.log('onInit'); }); Ob ich das in der Console setze, oder in meinem sonst funktionierendem JS Plugin (innerhalb oder außerhalb der ;jQuery(function ($) { … ) - geht beides nicht, kommt keine Rückmeldung. Hat wer eine Idee oder ein weiteres Beispiel? Ich versuche eig. genau das - Tooltipster in den Einkaufswelten. Schöne Grüße, Niklas

Die Events sind irgendwann umbenannt worden. Das hier müsste glaube ich aktuell funktionieren: $.subscribe('plugin/swEmotionLoader/onLoadEmotionFinished', function() { //wenn die einkaufswelt komplett geladen ist }); $.subscribe('plugin/swEmotionLoader/onInitEmotion', function() { //wenn die einkaufswelt initialisiert wird }); Ansonsten einfach mal hier nach den richtigen Events suchen: https://github.com/shopware/shopware/bl … emotion.js

1 Like