Skip to content

Individuelle Vorschau

In diesem Video erfahrt ihr, wie komplexere Vorschaubilder generiert werden können. Das Beispiel aus dem Tutorial seht ihr unter: https://configurator.onco-plugins.de/Bild-konfigurieren/SW10010

Verwendeter Code

Debug Ausgabe der Konfiguration

window.addEventListener('gaia.newstate', function(e){
    console.log(e.detail.app.configurationState);
    console.log(JSON.stringify(e.detail.app.configurationState.colorValues));
    console.log(JSON.stringify(e.detail.app.configurationState.fontValues));
    console.log(JSON.stringify(e.detail.app.configurationState.inputValues));
});

Generieren des Vorschaubilds

Quickstart

Ihr könnt diesen Code 1:1 zum Testen verwenden, wenn ihr die ID in der ersten Zeile anpasst und eure Konfigurator-ID eintragt

const gaiaConfiguratorId = 34;
const gaiaPreviewId = 'gaiaPreview'+gaiaConfiguratorId;

//CREATE PREVIEW STAGE
document.addEventListener('readystatechange', e=>{
    //add our base svg to the page
    if(document.getElementById(gaiaPreviewId)){
        return;
    }
    const previewStage = document.querySelector('.product-detail-media');
    if(previewStage) {
        previewStage.innerHTML = '';
        const previewElementContainer = document.createElement('div');
        previewElementContainer.id = gaiaPreviewId;
        previewElementContainer.style.position = 'relative';


        previewStage.append(previewElementContainer);
        fetch('https://gaia.onco-plugins.de/downloads/demo.svg')
            .then(e=>e.text())
            .then(text=>{
                previewElementContainer.innerHTML = text;
                previewElementContainer.querySelector('svg').style.maxWidth = '100%';
                const previewTextContainer = document.createElement('div');
                previewTextContainer.id = 'preview-text';
                previewTextContainer.innerHTML = 'Yippie!';
                previewTextContainer.style.fontSize = '50px';
                previewTextContainer.style.textAlign = 'center';
                previewTextContainer.style.position = 'absolute';
                previewTextContainer.style.bottom = '25px';
                previewTextContainer.style.left = '0';
                previewTextContainer.style.right = '0';
                previewTextContainer.style.color = 'black';
                previewElementContainer.append(previewTextContainer);
            });
    }
});

//ADJUST PREVIEW
window.addEventListener('gaia.newstate.' + gaiaConfiguratorId, function(e){
    const previewElementContainer = document.getElementById(gaiaPreviewId);
    if(!previewElementContainer){
        return;
    }
    const previewSvg = previewElementContainer.querySelector('svg');
    if(!previewSvg){
        return;
    }

    try {
        if (e.detail.app.configurationState.colorValues.farbe1) {
            previewSvg.querySelector('#car-color').style.fill = e.detail.app.configurationState.colorValues.farbe1;
        }
    }catch(error){}
    try {
        if (e.detail.app.configurationState.fontValues.schrift1) {
            document.getElementById('preview-text').style.fontFamily = e.detail.app.configurationState.fontValues.schrift1;
        }
    }catch(error){}
});