예제 #1
0
        public Page(IPageMetadata metadata, string html)
        {
            Guard.VerifyArgumentNotNull(metadata, nameof(metadata));
            Guard.VerifyArgumentNotNull(html, nameof(html));

            Metadata = metadata;
            HTML     = html;
        }
 protected PageViewModel GetPageViewModel(
     IPageMetadata pageMetadata,
     string?message          = default,
     bool displayMessage     = true,
     bool displayAsRaw       = default,
     MessageType messageType = MessageType.Info)
 =>
 PageViewModel.GetPageViewModel(
     pageMetadata,
     message,
     displayMessage,
     displayAsRaw,
     messageType);
예제 #3
0
 public SocialSharingMetadata(IPageMetadata site, IPageMetadata page)
 {
     Title       = page.MetadataOgTitle.Cascade(page.MetadataMetaTitle).Cascade(page.Title);
     Url         = page.Url;
     TwitterCard = page.MetadataTwitterCard.FirstOrDefault()?.Codename ?? "summary_large_image";
     Description = page.MetadataOgDescription
                   .Cascade(page.MetadataMetaDescription);
     Image       = page.MetadataOgImage.FirstOrDefault() ?? site?.MetadataOgImage.FirstOrDefault();
     TwitterSite = page.MetadataTwitterSite
                   .Cascade(site?.MetadataTwitterSite);
     TwitterCreator = page.MetadataTwitterCreator
                      .Cascade(site?.MetadataTwitterCreator);
     TwitterImage = page.MetadataTwitterImage.FirstOrDefault() ?? Image;
 }
 public static PageViewModel GetPageViewModel(
     IPageMetadata pageMetadata,
     string?message          = default,
     bool displayMessage     = true,
     bool displayAsRaw       = default,
     MessageType messageType = MessageType.Info) =>
 new PageViewModel()
 {
     Metadata    = pageMetadata,
     UserMessage = new UserMessage
     {
         Message      = message,
         MessageType  = messageType,
         DisplayAsRaw = displayAsRaw,
         Display      = displayMessage
     }
 };
예제 #5
0
        public string GetMetatags()
        {
            StringBuilder metaTags = new StringBuilder();

            string ogTitle         = String.Empty;
            string metaDescription = String.Empty;

            IPageMetadata metadata = _currentContext.GetCurrentItem <IPageMetadata>();

            if (metadata != null)
            {
                if (metadata.NoIndex)
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaName, SiteConstants.Metadata.Robots, SiteConstants.Metadata.NoIndex);
                }

                if (metadata.NoODP)
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaName, SiteConstants.Metadata.Robots, SiteConstants.Metadata.NoODP);
                }

                if (metadata.NoYdir)
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaName, SiteConstants.Metadata.Robots, SiteConstants.Metadata.NoYdir);
                }

                string metaTitle = String.Empty;
                if (!string.IsNullOrEmpty(metadata.BrowserTitle))
                {
                    metaTitle = metadata.BrowserTitle;
                    ogTitle   = metadata.BrowserTitle;
                }
                else
                {
                    metaTitle = metadata.Title;
                    ogTitle   = metadata.Title;
                }

                metaDescription = metadata.MetaDescription;

                UrlString url = new UrlString(metadata.Url);
                url.HostName = _sitecoreSiteLogic.TargetHostName;

                metaTags.AppendFormat(SiteConstants.Metadata.MetaTitleTag, metaTitle);

                if (!string.IsNullOrEmpty(metadata.MetaKeywords))
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaName, SiteConstants.Metadata.Keywords, metadata.MetaKeywords);
                }

                if (!string.IsNullOrEmpty(metadata.MetaDescription))
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaName, SiteConstants.Metadata.Description, metadata.MetaDescription);
                }

                //Facebook Global
                if (_sitecoreSiteLogic.SocialSettings != null)
                {
                    if (!string.IsNullOrEmpty(_sitecoreSiteLogic.SocialSettings.OGSiteName))
                    {
                        metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.OGSiteName, _sitecoreSiteLogic.SocialSettings.OGSiteName);
                    }

                    if (!string.IsNullOrEmpty(_sitecoreSiteLogic.SocialSettings.FBAdmins))
                    {
                        metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.FBAdmins, _sitecoreSiteLogic.SocialSettings.FBAdmins);
                    }
                }

                if (metadata.OGImage != null)
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.OGImage, metadata.OGImage.Src);
                }

                if (!string.IsNullOrEmpty(metadata.OGType))
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.OGType, metadata.OGType);
                }


                //Facebook
                if (!string.IsNullOrEmpty(metadata.OGTitle))
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.OGTitle, metadata.OGTitle);
                }
                else if (!String.IsNullOrEmpty(ogTitle))
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.OGTitle, ogTitle);
                }

                if (!string.IsNullOrEmpty(metadata.OGDescription))
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.OGDescription, metadata.OGDescription);
                }
                else if (!String.IsNullOrEmpty(metaDescription))
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.OGDescription, metaDescription);
                }

                metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.OGUrl, url.ToString());

                //twitter
                if (_sitecoreSiteLogic.SocialSettings != null)
                {
                    if (!string.IsNullOrEmpty(_sitecoreSiteLogic.SocialSettings.TwitterSite))
                    {
                        metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.TwitterSite, _sitecoreSiteLogic.SocialSettings.TwitterSite);
                    }
                }

                if (metadata.TwitterImage != null)
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.TwitterImage, metadata.TwitterImage.Src);
                }

                if (!string.IsNullOrEmpty(metadata.TwitterCard))
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.TwitterCard, metadata.TwitterCard);
                }

                if (!string.IsNullOrEmpty(metadata.TwitterTitle))
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.TwitterTitle, metadata.TwitterTitle);
                }
                else if (!String.IsNullOrEmpty(ogTitle))
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.TwitterTitle, ogTitle);
                }

                if (!string.IsNullOrEmpty(metadata.TwitterDescription))
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.TwitterDescription, metadata.TwitterDescription);
                }
                else if (!String.IsNullOrEmpty(metaDescription))
                {
                    metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.TwitterDescription, metaDescription);
                }

                metaTags.AppendFormat(SiteConstants.Metadata.MetaProperty, SiteConstants.Metadata.TwitterUrl, url.ToString());
            }

            return(metaTags.ToString());
        }
예제 #6
0
 public PageModel()
 {
     Metadata = new PageMetadata();
 }
예제 #7
0
파일: Marcus.cs 프로젝트: 925coder/ravendb
			public PageModel()
			{
				Metadata = new PageMetadata();
			}
예제 #8
0
 public static bool TableOfContents(this IPageMetadata page)
 {
     return(page.Settings?.Any(opt => opt.Codename == "toc") ?? false);
 }
예제 #9
0
 public static bool Comments(this IPageMetadata page)
 {
     return(page.Settings?.Any(opt => opt.Codename == "comments") ?? false);
 }
예제 #10
0
 public static bool ImageShadow(this IPageMetadata page)
 {
     return(page.Settings?.Any(opt => opt.Codename == "imageshadow") ?? false);
 }