Hoppa till innehåll

Hämta bild från Mediaflow

Exempel på hur man kan hämta ut en bild från en Mediaflow modul.

  1. Hämta ut sidans innehåll via REST-API:ets /contentnodes endpoint för sidan.
  2. Hitta den första Mediaflow modulen med en bild.
  3. Plocka ut första bilden.
  4. Returnera bildens properties som är intressanta.
getMediaflowImage.js
import RestApi from '@sitevision/api/server/RestApi';
function getMediaflowContentNode(node) {
return RestApi
.get(node, 'contentnodes')
.body
.find(content => content?.appId === 'marketplace.mediaflow.mediaflow');
}
function getImage(mediaflow) {
return mediaflow
?.properties
?.customContent
?.find({ type } => type === 'image')
?.properties
?.image;
}
export default function getMediaflowImage(node) {
const mediaflow = getMediaflowContentNode(node);
if(!mediaflow) return undefined;
const image = getImage(mediaflow);
return image && {
uri: image.URI,
alt: image.alt,
};
}

Behöver man skala om bilden (vilket man ofta behöver) måste man även hämta ut noden.

  1. Hämta ut sidans innehåll via REST-API:ets /contentnodes endpoint för sidan.
  2. Hitta den första Mediaflow modulen med en bild.
  3. Plocka ut första bilden.
  4. Hämta ut bildnoden via dess URI, skala om den och plocka ut den omskalade bildens URI.
  5. Returnera den omskalade bildern URI och de andra som är intressanta.
getMediaflowImage.js
import Utils from '@sitevision/api/server/Utils';
import RestApi from '@sitevision/api/server/RestApi';
import Properties from '@sitevision/api/server/Properties';
const imageScaler = Utils.getImageScaler(300, 5000);
function getMediaflowContentNode(node) {
return RestApi
.get(node, 'contentnodes')
.body
.find(content => content?.appId === 'marketplace.mediaflow.mediaflow');
}
function getImage(mediaflow) {
return mediaflow
?.properties
?.customContent
?.find({ type } => type === 'image')
?.properties
?.image;
}
function getScaledImageUri(image) {
const node = ResourceLocatorUtil.getNodeByUrl(image.URI);
if(!node) return undefined;
return Properties.get(imageScaler.getScaledImage(node), 'URI');
}
export default function getMediaflowImage(node) {
const mediaflow = getMediaflowContentNode(node);
if(!mediaflow) return undefined;
const image = getImage(mediaflow);
return image && {
uri: getScaledImageUri(image) || image.URI,
alt: image.alt,
};
}