Hallo,
ich kämpfe jetzt schon länger mit einem Problem welches meine eigenen CMS Elemente mit Bild(ern) betrifft: Und zwar wird in der Administration manchmal die falsche Bild-URL für das gewählte Bild ausgegeben: Nach dem neu-auswählen eines Bilds funktioniert es, aber oft nach dem Speichern der Erlebniswelt oder nach einem Refresh wird das Fallback-Bild ( preview_mountain_large.jpg ) angezeigt, so als ob das gewählte Bild keine URL hätte. In der Config ist das Bild aber noch richtig hinterleget, und im Shop Frontend funktioniert es immer richtig.
Daher glaube ich es muss hieran liegen:
im index.js:
import { Component, Mixin } from "src/core/shopware";
import template from "./big-teaser.html.twig";
Component.register("gg-big-teaser", {
template,
mixins: [Mixin.getByName("cms-element")],
computed: {
imageDesktopUrl() {
return this.getImageUrl(
this.element.data.imageDesktop,
this.element.config.imageDesktop
);
}
},
watch: {
cmsPageState: {
deep: true,
handler() {
this.$forceUpdate();
},
},
},
created() {
this.createdComponent();
},
methods: {
createdComponent() {
this.initElementConfig("big-teaser");
this.initElementData("big-teaser");
},
getImageUrl(dataImage, configImage) {
const context = Shopware.Context.api;
const elemData = dataImage;
if (configImage.source === "mapped") {
const demoMedia = this.getDemoValue(configImage.value);
if (demoMedia && demoMedia.url) {
return demoMedia.url;
}
}
if (elemData && elemData.id) {
return dataImage.url;
}
if (elemData && elemData.url) {
return `${context.assetsPath}${elemData.url}`;
}
return `${context.assetsPath}/administration/static/img/cms/preview_mountain_large.jpg`;
},
},
});
im Template:
Hab ich hier irgendwo einen Fehler drinnen den ich nicht finde, oder ist es ein Bug von Shopware? Danke schonmal!