/// <summary> /// Generates SiteEdit tag for given page. /// </summary> /// <param name="page">Page the tag belongs to.</param> /// <returns>string representing the JSON SiteEdit tag.</returns> public static string GenerateSiteEditPageTag(IPage page) { if (!SiteEditSettings.Enabled) { return(string.Empty); } if (SiteEditSettings.Style == SiteEditStyle.SiteEdit2012) { string result = string.Format(Ui2012PageSeFormat, page.Id, string.Format("{0:s}", page.RevisionDate), page.PageTemplate.Id, string.Format("{0:s}", page.PageTemplate.RevisionDate)); result += string.Format(Ui2012BootStrap, SiteEditSettings.TridionHostUrl); return(result); } string pubIdWithoutTcm = Convert.ToString(new TcmUri(page.Id).PublicationId); if (SiteEditSettings.ContainsKey(pubIdWithoutTcm)) { SiteEditSetting setting = SiteEditSettings[pubIdWithoutTcm]; string usePageContext = string.IsNullOrEmpty(setting.PagePublication) ? page.OwningPublication.Id : setting.PagePublication; TcmUri pageContextUri = new TcmUri(usePageContext); if (setting.Enabled) { return(string.Format(PageSeFormat, page.Id, Convert.ToString(page.Version), pageContextUri.ItemId, setting.ComponentPublication, setting.PublishPublication)); } } return(string.Empty); }
/// <summary> /// Generates a SiteEdit tag for a componentpresentation. It also needs to know which region it's in (for component /// swapping) and the order of the page (for a true unique ID). /// </summary> /// <param name="cp">The componentpresentation to mark.</param> /// <param name="queryBased">indicates whether the component presentation is the result of a query (true), or if it is really part of the page (false)</param> /// <param name="region">The region the componentpresentation is to be shown in.</param> /// <returns>string representing the JSON SiteEdit tag.</returns> public static string GenerateSiteEditComponentTag(IComponentPresentation cp, bool queryBased, string region) { if (!SiteEditSettings.Enabled) { return(string.Empty); } if (SiteEditSettings.Style == SiteEditStyle.SiteEdit2012) { // is query based tells us if the dcp was the result of a broker query and the component presentation is not embedded on the page string isQueryBased = queryBased ? ", \"IsQueryBased\" : true" : string.Empty; return(string.Format(Ui2012ComponentSeFormat, cp.Component.Id, string.Format("{0:s}", cp.Component.RevisionDate), cp.ComponentTemplate.Id, string.Format("{0:s}", cp.ComponentTemplate.RevisionDate), cp.IsDynamic.ToString().ToLower(), isQueryBased)); } string pubIdWithoutTcm = Convert.ToString(new TcmUri(cp.Component.Id).PublicationId); if (SiteEditSettings.ContainsKey(pubIdWithoutTcm)) { SiteEditSetting setting = SiteEditSettings[pubIdWithoutTcm]; if (setting.Enabled) { int cpId; if (queryBased) { // for query based CPs, we are responsible for making the ID unique cpId = GetUniqueCpId(); } else { cpId = cp.OrderOnPage; } return(string.Format(ComponentSeFormat, cpId, cp.Component.Id, cp.ComponentTemplate.Id, cp.Component.Version, Convert.ToString(queryBased).ToLower(), region)); } } return(string.Empty); }