private static Guid GetTemplateWidgetId(PageManager pageManager, Controller controller, string controlId) { // check if action is after save or cancel in template if (controller.HttpContext.Items[FormControlId] != null) { return((Guid)controller.HttpContext.Items[FormControlId]); } var templateId = GetTemplateIdKey(controller.ControllerContext.HttpContext); var versionId = GetVersionNumberKey(controller.ControllerContext.HttpContext); if (templateId != null && versionId != null) { var template = pageManager.GetTemplate(new Guid(templateId)); if (template != null) { var versionManager = Telerik.Sitefinity.Versioning.VersionManager.GetManager(); TemplateDraft draft = new TemplateDraft(); versionManager.GetSpecificVersionByChangeId(draft, new Guid(versionId)); var control = GetControl(draft.Controls, controlId); if (control != null) { return(control.OriginalControlId); } } } // check if loaded in template var templateData = controller.HttpContext.Items[TemplateDraftProxy] as TemplateDraftProxy; if (templateData != null) { var template = pageManager.GetTemplate(templateData.ParentItemId); if (template != null) { if (SystemManager.IsDesignMode || SystemManager.IsPreviewMode) { var control = GetControl(template.Drafts.FirstOrDefault(p => p.IsTempDraft).Controls, controlId); if (control != null) { return(control.Id); } } else { var control = GetControl(template.Controls, controlId); if (control != null) { return(control.Id); } } } } return(Guid.Empty); }
/// <summary> /// Generates Id for template based on the controls count. /// </summary> /// <param name="template">The template.</param> /// <returns>The generated Id.</returns> public string GenerateUniqueControlIdForTemplate(TemplateDraft template) { int controlsCount = 0; if (template != null) { controlsCount = template.Controls.Count; } return(string.Format(CultureInfo.InvariantCulture, "T" + controlsCount.ToString(CultureInfo.InvariantCulture).PadLeft(3, '0'))); }
private Guid GetLastControlInPlaceHolderInTemplateId(TemplateDraft template, string placeHolder) { var id = Guid.Empty; TemplateDraftControl control; var controls = new List <TemplateDraftControl>(template.Controls.Where(c => c.PlaceHolder == placeHolder)); while (controls.Count > 0) { control = controls.Where(c => c.SiblingId == id).SingleOrDefault(); if (control != null) { id = control.Id; controls.Remove(control); } } return(id); }
private static TemplateDraftControl GetLayoutControl(PageManager manager, string @class, TemplateDraft draftTemplate) { var layoutControls = draftTemplate.Controls; foreach (var control in layoutControls) { var ctrlData = manager.GetControl <TemplateDraftControl>(control.Id); var layProp = ctrlData.PropertiesLang.Single(p => p.Name == "Layout"); var layout = layProp.Value; if (!layout.StartsWith("~/") && !layout.EndsWith(".ascx", StringComparison.OrdinalIgnoreCase)) { var found = TryFindControl(ctrlData, layout, @class); if (found) { return(ctrlData); } } else { layout = GetDefaultLayoutControlsHtml(ctrlData, layout); var found = TryFindControl(ctrlData, layout, @class); if (found) { return(ctrlData); } } } return(new TemplateDraftControl()); }
public static Guid GetWidgetId(Controller controller) { var pageManager = PageManager.GetManager(); var viewBagControlId = controller.ViewData[ControllerKey]; if (viewBagControlId == null) { return(Guid.Empty); } string controlId = (string)viewBagControlId; // templates if (controller.HttpContext.Items[IsTemplate] != null && (bool)controller.HttpContext.Items[IsTemplate] == true) { // check if action is after save or cancel in template if (controller.HttpContext.Items[FormControlId] != null) { return((Guid)controller.HttpContext.Items[FormControlId]); } var templateId = GetTemplateIdKey(controller.ControllerContext.HttpContext); var versionId = GetVersionNumberKey(controller.ControllerContext.HttpContext); if (templateId != null && versionId != null) { var template = pageManager.GetTemplate(new Guid(templateId)); if (template != null) { var versionManager = Telerik.Sitefinity.Versioning.VersionManager.GetManager(); TemplateDraft draft = new TemplateDraft(); versionManager.GetSpecificVersionByChangeId(draft, new Guid(versionId)); var control = GetControl(draft.Controls, controlId); if (control != null) { return(control.OriginalControlId); } } } // check if loaded in template var templateData = controller.HttpContext.Items[TemplateDraftProxy] as Telerik.Sitefinity.Modules.Pages.TemplateDraftProxy; if (templateData != null) { var template = pageManager.GetTemplate(templateData.ParentItemId); if (template != null) { if (SystemManager.IsDesignMode || SystemManager.IsPreviewMode) { var control = GetControl(template.Drafts.FirstOrDefault(p => p.IsTempDraft).Controls, controlId); if (control != null) { return(control.Id); } } else { var control = GetControl(template.Controls, controlId); if (control != null) { return(control.Id); } } } } } else { // pages var pageId = SiteMapBase.GetCurrentNode().PageId; var page = pageManager.GetPageData(pageId); if (page.Template != null) { var templateControl = GetControl(page.Template.Controls, controlId); if (templateControl != null) { return(templateControl.Id); } } if (SystemManager.IsDesignMode || SystemManager.IsPreviewMode) { var pageDraft = page.Drafts.FirstOrDefault(p => p.IsTempDraft); // Draft, if page is created page template is null, only draft is avalaible if (page.Template == null && pageDraft.TemplateId != Guid.Empty) { var template = pageManager.GetTemplate(pageDraft.TemplateId); if (template != null) { var templateControl = GetControl(template.Controls, controlId); if (templateControl != null) { return(templateControl.Id); } } } var control = GetControl(pageDraft.Controls, controlId); if (control != null) { return(control.Id); } } else { var control = GetControl(page.Controls, controlId); if (control != null) { return(control.Id); } } } return(Guid.Empty); }
private Guid GetLastControlInPlaceHolderInTemplateId(TemplateDraft template, string placeHolder) { var id = Guid.Empty; TemplateDraftControl control; var controls = new List<TemplateDraftControl>(template.Controls.Where(c => c.PlaceHolder == placeHolder)); while (controls.Count > 0) { control = controls.Where(c => c.SiblingId == id).SingleOrDefault(); if (control != null) { id = control.Id; controls.Remove(control); } } return id; }
/// <summary> /// Generates Id for template based on the controls count. /// </summary> /// <param name="template">The template.</param> /// <returns>The generated Id.</returns> public string GenerateUniqueControlIdForTemplate(TemplateDraft template) { int controlsCount = 0; if (template != null) { controlsCount = template.Controls.Count; } return string.Format(CultureInfo.InvariantCulture, "T" + controlsCount.ToString(CultureInfo.InvariantCulture).PadLeft(3, '0')); }