Skip to content

Instantly share code, notes, and snippets.

@sreekrishnan1993
Created September 21, 2019 07:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sreekrishnan1993/07349616ee0ac3e2d159897cece5569f to your computer and use it in GitHub Desktop.
Save sreekrishnan1993/07349616ee0ac3e2d159897cece5569f to your computer and use it in GitHub Desktop.
Sitecore Forms Hidden Field Binding
public class GatedAssetBindingHandler : IBindingHandler
{
public IBindingHandlerResult GetBindingValue()
{
var mediaID = HttpContext.Current.Request.QueryString["mediaid"];
if (!string.IsNullOrEmpty(mediaID))
{
var mediaItem = Sitecore.Context.Database.GetItem(mediaID);
if (mediaItem != null && mediaItem.Paths.IsMediaItem)
{
var theURL = Sitecore.Resources.Media.MediaManager.GetMediaUrl(mediaItem);
var mediaUrl = Sitecore.Resources.Media.HashingUtils.ProtectAssetUrl(theURL);
if (string.IsNullOrEmpty(mediaUrl))
{
return new NoBindingValueFoundResult();
}
return new BindingValueFoundResult(mediaUrl);
}
else
{
return new NoBindingValueFoundResult();
}
}
else
{
return new NoBindingValueFoundResult();
}
}
public void StoreBindingValue(object newValue)
{
if (newValue is string mediaUrl)
{
newValue = mediaUrl;
}
}
}
public class GatedAssetBindingHandlerLoader : MvcPipelineProcessor<LoadFieldBindingHandlersArgs>
{
public override void Process(LoadFieldBindingHandlersArgs args)
{
var tokenKey = new FieldBindingTokenKey("Gated Asset Binding Handler", "GatedAssetDownloadForm",
"Gated Asset Binding Handler");
args.FieldBindingHandlers.Add(tokenKey, new GatedAssetBindingHandler());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment