OpenGraph-snippet

Her er et kodeeksempel på en snippet som kan benyttes for å legge inn automatisk OpenGraph-funksjonalitet på en nettside.

<%@ Control Language="C#" Inherits="eR2UserControl" %>
<%@ Import Namespace="eR2" %>

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            SetTags();
    }

    private void SetTags()
    {
        AddHeaderMetaTagToHeader("og:title", CurrentItem.Title);
        AddHeaderMetaTagToHeader("og:description", CurrentItem.Teaser);

        if (!string.IsNullOrEmpty(CurrentItem.Thumbnail))
            AddHeaderMetaTagToHeader("og:image", "http://" + HttpContext.Current.Request.ServerVariables["SERVER_NAME"] + CurrentItem.Thumbnail);
        else if (CurrentItem.ShopProducts.Any() && !string.IsNullOrEmpty(CurrentItem.ShopProducts.FirstOrDefault().ImageUrl1))
            AddHeaderMetaTagToHeader("og:image", "http://" + HttpContext.Current.Request.ServerVariables["SERVER_NAME"] + CurrentItem.ShopProducts.FirstOrDefault().ImageUrl1);

        AddHeaderMetaTagToHeader("og:site_name", Util.GetSetting("sidetittel"));
        AddHeaderMetaTagToHeader("og:url", "http://" + HttpContext.Current.Request.ServerVariables["SERVER_NAME"] + CurrentItem.GetValue("link"));
    }

    /// <summary>
    /// Legger inn metatag i header dersom det er angitt en verdi.
    /// </summary>
    /// <param name="Name"></param>
    /// <param name="Content">Dersom denne er tom legges ikke metataggen inn.</param>
    private void AddHeaderMetaTagToHeader(string Name, string Content)
    {
        if (!string.IsNullOrEmpty(Content))
        {
            var metaTag = new HtmlGenericSelfClosingControl("meta");
            metaTag.Attributes.Add("property", Name);
            metaTag.Attributes.Add("content", Content.Trim());
            this.Page.Header.Controls.Add(metaTag);
        }
    }
</script>