Alt text is retrieved for images imported from CMP-DAM in Optimizely CMS 12.
Introduction
Although image alt text is stored as metadata in CMP/DAM, it is not automatically rendered in browser HTML. This document outlines the solution implemented in Optimizely CMS to retrieve and render this metadata correctly.
Steps :
1) Create image file class and inherit with ImageData.
public class ImageFile : ImageData
{
[Display(Name = "Alt text", Order = 10)]
public virtual string AltText { get; set; }
}
2) Create image file view model
public class ImageFileViewModel
{
public string AltText { get; set; }
}
public class ImageFileRequest : IRequest<ImageFileViewModel>
{
public ImageFileRequest(DAMAssetIdentity damAsset, CultureInfo culture)
{
Culture = culture;
ImageFileReference = damAsset;
}
public DAMAssetIdentity ImageFileReference { get; set; }
public CultureInfo Culture { get; }
}
public async Task<ImageFileViewModel> Handle(ImageFileRequest request, CancellationToken cancellationToken)
{
if (request?.ImageFileReference != null)
{
temp.AltText = request?.ImageFileReference?.Metadata?.DAMAssetInfo?.AltText;
}
return temp;
}
if (temp.Metadata?.DAMAssetInfo == null)
{
var temp2 = ServiceProviderExtensions.GetInstance<IDAMAssetMetadataService>(ServiceLocator.Current).GetAssetMetadata(ExtractAssetGuid(temp).Value).Result;
altText = temp2?.AltText;
}
}
Above i have added only neccesary code other can add according to requirements.
Below references added for CMP-DAM configuration and assets sync.
Important Links
Comments