/// <summary> /// Deletes page template scope. Called when the "Delete scope" button is pressed. /// Expects the CreatePageTemplateScope method to be run first. /// </summary> private bool DeletePageTemplateScope() { string columns = ""; string where = ""; // Get template object PageTemplateInfo template = PageTemplateInfoProvider.GetPageTemplateInfo("MyNewTemplate"); // If template exists if (template != null) { where = "PageTemplateScopeTemplateID = " + template.PageTemplateId; } DataSet scopes = PageTemplateScopeInfoProvider.GetTemplateScopes(columns, where, null, 0); if (!DataHelper.DataSourceIsEmpty(scopes)) { // Get the page template scope PageTemplateScopeInfo deleteScope = new PageTemplateScopeInfo(scopes.Tables[0].Rows[0]); // Delete the page template scope PageTemplateScopeInfoProvider.DeletePageTemplateScopeInfo(deleteScope); return(true); } return(false); }
/// <summary> /// Creates page template scope. Called when the "Create scope" button is pressed. /// </summary> private bool CreatePageTemplateScope() { // Get template object PageTemplateInfo template = PageTemplateInfoProvider.GetPageTemplateInfo("MyNewTemplate"); // If template exists if (template != null) { // Page template isn't from all pages template.PageTemplateForAllPages = false; // Create new template scope PageTemplateScopeInfo newScope = new PageTemplateScopeInfo(); // Set some properties newScope.PageTemplateScopeTemplateID = template.PageTemplateId; newScope.PageTemplateScopeSiteID = CMSContext.CurrentSiteID; newScope.PageTemplateScopePath = "/"; newScope.PageTemplateScopeLevels = "/{0}/{1}"; // Save scope to database PageTemplateScopeInfoProvider.SetPageTemplateScopeInfo(newScope); // Update page template PageTemplateInfoProvider.SetPageTemplateInfo(template); return(true); } return(false); }
/// <summary> /// Unigrid on action. /// </summary> /// <param name="actionName">Action name</param> /// <param name="actionArgument">Argument</param> private void unigridScopes_OnAction(string actionName, object actionArgument) { switch (actionName.ToLowerCSafe()) { case "edit": URLHelper.Redirect(UrlResolver.ResolveUrl("PageTemplateScope_Edit.aspx?scopeid=" + ValidationHelper.GetString(actionArgument, "0") + "&templateid=" + PageTemplateID + "&siteID=" + siteID)); break; case "delete": PageTemplateScopeInfoProvider.DeletePageTemplateScopeInfo(ValidationHelper.GetInteger(actionArgument, 0)); break; } }
/// <summary> /// Initializes the category provider /// </summary> private void InitCategoryProvider() { // Create and set category provider UniTreeProvider categoryProvider = new UniTreeProvider(); categoryProvider.DisplayNameColumn = "DisplayName"; categoryProvider.IDColumn = "ObjectID"; categoryProvider.LevelColumn = "ObjectLevel"; categoryProvider.OrderColumn = "CategoryOrder"; categoryProvider.ParentIDColumn = "ParentID"; categoryProvider.PathColumn = "ObjectPath"; categoryProvider.ValueColumn = "ObjectID"; categoryProvider.ChildCountColumn = "CompleteChildCount"; categoryProvider.QueryName = "cms.pagetemplatecategory.selectallview"; categoryProvider.ObjectTypeColumn = "ObjectType"; categoryProvider.Columns = "DisplayName, CodeName, ObjectID, ObjectLevel, CategoryOrder, ParentID, ObjectPath, CompleteChildCount, ObjectType, CategoryChildCount, CategoryImagePath, Parameter"; categoryProvider.ImageColumn = "CategoryImagePath"; categoryProvider.ParameterColumn = "Parameter"; if (!SelectPageTemplates) { categoryProvider.WhereCondition = "ObjectType = 'pagetemplatecategory'"; categoryProvider.ChildCountColumn = "CategoryChildCount"; categoryProvider.ObjectTypeColumn = ""; } else { categoryProvider.OrderBy = "ObjectType DESC, DisplayName ASC"; } // Do not show AdHoc category if (!ShowAdHocCategory) { categoryProvider.WhereCondition = SqlHelper.AddWhereCondition(categoryProvider.WhereCondition, "CodeName <> 'AdHoc' AND CodeName <> 'AdHocUI'"); } // Do not show empty categories if (!ShowEmptyCategories) { categoryProvider.WhereCondition = SqlHelper.AddWhereCondition(categoryProvider.WhereCondition, "CategoryTemplateChildCount > 0 OR CategoryChildCount > 0"); TreeProvider tp = new TreeProvider(MembershipContext.AuthenticatedUser); CMS.DocumentEngine.TreeNode node = DocumentHelper.GetDocument(DocumentID, tp); string culture = LocalizationContext.PreferredCultureCode; int level = 0; string path = string.Empty; string className = String.Empty; if (node != null) { level = node.NodeLevel; path = node.NodeAliasPath; if (IsNewPage) { level++; path = path + "/%"; } else { culture = node.DocumentCulture; } className = node.NodeClassName; // Check if class id is in query string - then use it's value instead of document class name int classID = QueryHelper.GetInteger("classid", 0); if (classID != 0) { DataClassInfo dci = DataClassInfoProvider.GetDataClassInfo(classID); if (dci != null) { className = dci.ClassName; } } } // Add where condition for scopes categoryProvider.WhereCondition += " AND (ObjectLevel = 0 OR (SELECT TOP 1 ObjectID FROM View_CMS_PageTemplateCategoryPageTemplate_Joined AS X WHERE X.ObjectType = 'pagetemplate' "; categoryProvider.WhereCondition += " AND (X.PageTemplateType IS NULL OR X.PageTemplateType <> N'" + PageTemplateInfoProvider.GetPageTemplateTypeCode(PageTemplateTypeEnum.Dashboard) + "')"; if (ShowOnlySiteTemplates) { categoryProvider.WhereCondition += " AND X.ObjectID IN (SELECT PageTemplateID FROM CMS_PageTemplateSite WHERE SiteID = " + SiteContext.CurrentSiteID + ") "; } if (node != null) { categoryProvider.WhereCondition += " AND (" + PageTemplateScopeInfoProvider.GetScopeWhereCondition(path, culture, className, level, SiteContext.CurrentSiteName, "X", "ObjectID") + ") "; } categoryProvider.WhereCondition += " AND (X.ObjectPath LIKE View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectPath + '/%')) IS NOT NULL)"; // Add column count column - minimal number of children categoryProvider.Columns += @", (SELECT TOP 1 Count(*) FROM View_CMS_PageTemplateCategoryPageTemplate_Joined AS Y WHERE (Y.ObjectID = View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectID AND Y.ObjectLevel = 0) OR ( View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectType = 'PageTemplateCategory' AND View_CMS_PageTemplateCategoryPageTemplate_Joined.CategoryChildCount > 0 AND Y.ObjectType = 'PageTemplate' AND Y.ObjectLevel > View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectLevel + 1 "; if (ShowOnlySiteTemplates) { categoryProvider.Columns += "AND Y.ObjectID IN (SELECT PageTemplateID FROM CMS_PageTemplateSite WHERE SiteID = " + SiteContext.CurrentSiteID + ") "; } if (node != null) { categoryProvider.Columns += " AND ( " + PageTemplateScopeInfoProvider.GetScopeWhereCondition(path, culture, className, level, SiteContext.CurrentSiteName, "Y", "ObjectID") + " ) "; } categoryProvider.Columns += " AND Y.ObjectPath LIKE View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectPath + '/%')) AS MinNumberOfChilds"; categoryProvider.ChildCountColumn = "MinNumberOfChilds"; } // Handle the root path if (!String.IsNullOrEmpty(RootPath)) { categoryProvider.RootLevelOffset = RootPath.Trim('/').Split('/').Length - 1; categoryProvider.WhereCondition = SqlHelper.AddWhereCondition(categoryProvider.WhereCondition, String.Format("((ObjectPath = '{0}' OR ObjectPath LIKE '{0}/%'))", RootPath.Trim('/'))); } treeElem.ProviderObject = categoryProvider; }
/// <summary> /// Initializes the category provider /// </summary> private void InitCategoryProvider() { // Create and set category provider UniTreeProvider categoryProvider = new UniTreeProvider(); categoryProvider.DisplayNameColumn = "DisplayName"; categoryProvider.IDColumn = "ObjectID"; categoryProvider.LevelColumn = "ObjectLevel"; categoryProvider.OrderColumn = "CategoryOrder"; categoryProvider.ParentIDColumn = "ParentID"; categoryProvider.PathColumn = "ObjectPath"; categoryProvider.ValueColumn = "ObjectID"; categoryProvider.ChildCountColumn = "CompleteChildCount"; categoryProvider.QueryName = "cms.pagetemplatecategory.selectallview"; categoryProvider.ObjectTypeColumn = "ObjectType"; categoryProvider.Columns = "DisplayName, CodeName, ObjectID, ObjectLevel, CategoryOrder, ParentID, ObjectPath, CompleteChildCount, ObjectType, CategoryChildCount, CategoryImagePath, Parameter"; categoryProvider.ImageColumn = "CategoryImagePath"; categoryProvider.ParameterColumn = "Parameter"; if (!SelectPageTemplates) { categoryProvider.WhereCondition = "ObjectType = 'pagetemplatecategory'"; categoryProvider.ChildCountColumn = "CategoryChildCount"; categoryProvider.ObjectTypeColumn = ""; treeElem.DefaultImagePath = GetImageUrl("Objects/CMS_PageTemplateCategory/list.png"); } else { categoryProvider.OrderBy = "ObjectType DESC, DisplayName ASC"; treeElem.OnGetImage += new CMSAdminControls_UI_Trees_UniTree.GetImageEventHandler(treeElem_OnGetImage); } // Do not show AdHoc category if (!ShowAdHocCategory) { categoryProvider.WhereCondition = SqlHelperClass.AddWhereCondition(categoryProvider.WhereCondition, "CodeName <> 'AdHoc'"); } // Do not show empty categories if (!ShowEmptyCategories) { categoryProvider.WhereCondition = SqlHelperClass.AddWhereCondition(categoryProvider.WhereCondition, "CategoryTemplateChildCount > 0 OR CategoryChildCount > 0"); TreeProvider tp = new TreeProvider(CMSContext.CurrentUser); CMS.DocumentEngine.TreeNode node = DocumentHelper.GetDocument(DocumentID, tp); string culture = CMSContext.PreferredCultureCode; int level = 0; string path = string.Empty; if (node != null) { level = node.NodeLevel; path = node.NodeAliasPath; if (IsNewPage) { level++; path = path + "/%"; } else { culture = node.DocumentCulture; } } // Add where condition for scopes categoryProvider.WhereCondition += " AND (ObjectLevel = 0 OR (SELECT TOP 1 ObjectID FROM View_CMS_PageTemplateCategoryPageTemplate_Joined AS X WHERE X.ObjectType = 'pagetemplate' "; categoryProvider.WhereCondition += " AND (X.PageTemplateType IS NULL OR X.PageTemplateType <> N'" + PageTemplateInfoProvider.GetPageTemplateTypeCode(PageTemplateTypeEnum.Dashboard) + "')"; if (ShowOnlySiteTemplates) { categoryProvider.WhereCondition += " AND X.ObjectID IN (SELECT PageTemplateID FROM CMS_PageTemplateSite WHERE SiteID = " + CMSContext.CurrentSiteID + ") "; } if (node != null) { categoryProvider.WhereCondition += " AND (" + PageTemplateScopeInfoProvider.GetScopeWhereCondition(path, culture, node.NodeClassName, level, CMSContext.CurrentSiteName, "X", "ObjectID") + ") "; } categoryProvider.WhereCondition += " AND (X.ObjectPath LIKE View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectPath + '/%')) IS NOT NULL)"; // Add column count column - minimal number of children categoryProvider.Columns += @", (SELECT TOP 1 Count(*) FROM View_CMS_PageTemplateCategoryPageTemplate_Joined AS Y WHERE (Y.ObjectID = View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectID AND Y.ObjectLevel = 0) OR ( View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectType = 'PageTemplateCategory' AND View_CMS_PageTemplateCategoryPageTemplate_Joined.CategoryChildCount > 0 AND Y.ObjectType = 'PageTemplate' AND Y.ObjectLevel > View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectLevel + 1 "; if (ShowOnlySiteTemplates) { categoryProvider.Columns += "AND Y.ObjectID IN (SELECT PageTemplateID FROM CMS_PageTemplateSite WHERE SiteID = " + CMSContext.CurrentSiteID + ") "; } if (node != null) { categoryProvider.Columns += " AND ( " + PageTemplateScopeInfoProvider.GetScopeWhereCondition(path, culture, node.NodeClassName, level, CMSContext.CurrentSiteName, "Y", "ObjectID") + " ) "; } categoryProvider.Columns += " AND Y.ObjectPath LIKE View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectPath + '/%')) AS MinNumberOfChilds"; categoryProvider.ChildCountColumn = "MinNumberOfChilds"; } // Handle the root path if (!String.IsNullOrEmpty(RootPath) && (RootPath != "/")) { categoryProvider.RootLevelOffset = RootPath.Split('/').Length - 1; categoryProvider.WhereCondition = SqlHelperClass.AddWhereCondition(categoryProvider.WhereCondition, String.Format("((ObjectPath = '{0}' OR ObjectPath LIKE '{0}/%'))", RootPath)); } treeElem.ProviderObject = categoryProvider; }
/// <summary> /// Page load event. /// </summary> /// <param name="sender">Sender</param> /// <param name="e">Arguments</param> protected void Page_Load(object sender, EventArgs e) { if (!CMSContext.CurrentUser.UserSiteManagerAdmin) { RedirectToAccessDenied(GetString("template.scopes.denied")); } // Show changes saved message if (QueryHelper.GetInteger("saved", 0) == 1) { lblInfo.Visible = true; lblInfo.Text = GetString("general.changessaved"); } // Get template id, scope id and site id scopeID = QueryHelper.GetInteger("scopeid", 0); templateID = QueryHelper.GetInteger("templateid", 0); siteID = QueryHelper.GetInteger("siteid", 0); // Get sitename string siteName = string.Empty; if (siteID > 0) { SiteInfo site = SiteInfoProvider.GetSiteInfo(siteID); if (site != null) { siteName = " (" + site.DisplayName + ")"; } } // Breakcrumbs initialization string[,] pageTitleTabs = new string[2, 3]; pageTitleTabs[0, 0] = GetString("template.scopes"); pageTitleTabs[0, 1] = "~/CMSModules/PortalEngine/UI/PageTemplates/Scopes/PageTemplateScopes_List.aspx?siteid=" + siteID + "&templateid=" + templateID; pageTitleTabs[0, 2] = ""; pageTitleTabs[1, 0] = GetString("template.scopes.new") + siteName; pageTitleTabs[1, 1] = ""; pageTitleTabs[1, 2] = ""; // Help topic this.CurrentMaster.Title.HelpTopicName = "page_templates_scopes_edit"; // Set up controls cultureElem.CurrentSelector.AllowEmpty = false; cultureElem.CurrentSelector.SelectionMode = SelectionModeEnum.SingleDropDownList; cultureElem.ReturnColumnName = "CultureID"; cultureElem.DisplayAllValue = true; cultureElem.SiteID = -1; classElem.DisplayAllValue = true; if (scopeID > 0) { // Get scope info PageTemplateScopeInfo ptsi = PageTemplateScopeInfoProvider.GetPageTemplateScopeInfo(scopeID); if (ptsi != null) { cultureId = ptsi.PageTemplateScopeCultureID; classId = ptsi.PageTemplateScopeClassID; pageTitleTabs[1, 0] = ptsi.PageTemplateScopePath + siteName; // Load fields if (!RequestHelper.IsPostBack()) { pathElem.Value = ptsi.PageTemplateScopePath; classElem.Value = ptsi.PageTemplateScopeClassID; cultureElem.Value = ptsi.PageTemplateScopeCultureID; levelElem.Value = ptsi.PageTemplateScopeLevels; } } } else if (!RequestHelper.IsPostBack()) { pathElem.Value = "/"; } // Select for site scope only available cultures if (siteID > 0) { cultureElem.CurrentSelector.WhereCondition = "CultureID IN (SELECT CultureID FROM CMS_SiteCulture WHERE SiteID = " + siteID + ") OR CultureID = " + cultureId; classElem.WhereCondition = "(ClassID IN (SELECT ClassID FROM CMS_ClassSite WHERE SiteID = " + siteID + ") OR ClassID = " + classId + ")"; } // Breadcrumbs CurrentMaster.Title.Breadcrumbs = pageTitleTabs; }
/// <summary> /// Button OK click event. /// </summary> /// <param name="sender">Sender</param> /// <param name="e">Arguments</param> protected void btnOk_Click(object sender, EventArgs e) { // Validation string path = ValidationHelper.GetString(pathElem.Value, ""); if (string.IsNullOrEmpty(path)) { lblError.Visible = true; lblError.ResourceString = "template.scopes.emptypath"; return; } // Get scope if needed if (scopeID > 0) { if (ptsi == null) { ptsi = PageTemplateScopeInfoProvider.GetPageTemplateScopeInfo(scopeID); } } // Create info if needed if (ptsi == null) { ptsi = new PageTemplateScopeInfo(); } // Update database // Class int classID = ValidationHelper.GetInteger(classElem.Value, 0); // No class selected or selected '(all)' if (classID <= 0) { ptsi.SetValue("PageTemplateScopeClassID", null); } else { ptsi.PageTemplateScopeClassID = classID; } // Culture int cultureID = ValidationHelper.GetInteger(cultureElem.Value, 0); if (cultureID == 0) { ptsi.SetValue("PageTemplateScopeCultureID", null); } else { ptsi.PageTemplateScopeCultureID = cultureID; } // Levels string levels = ValidationHelper.GetString(levelElem.Value, ""); if (string.IsNullOrEmpty(levels)) { ptsi.SetValue("PageTemplateScopeLevels", null); } else { ptsi.PageTemplateScopeLevels = levels; } // Other columns ptsi.PageTemplateScopePath = ValidationHelper.GetString(pathElem.Value, ""); ptsi.PageTemplateScopeTemplateID = templateID; if (ptsi.PageTemplateScopeID == 0) { // Site if (siteID != 0) { ptsi.PageTemplateScopeSiteID = siteID; } } // Insert or update PageTemplateScopeInfoProvider.SetPageTemplateScopeInfo(ptsi); // Redirect string url = URLHelper.CurrentURL; url = URLHelper.UpdateParameterInUrl(url, "scopeid", ptsi.PageTemplateScopeID.ToString()); url = URLHelper.AddParameterToUrl(url, "saved", "1"); URLHelper.Redirect(ResolveUrl(url)); }
/// <summary> /// Page_Load event. /// </summary> protected void Page_Load(object sender, EventArgs e) { if (this.StopProcessing) { return; } // Create and set category provider UniTreeProvider categoryProvider = new UniTreeProvider(); categoryProvider.DisplayNameColumn = "DisplayName"; categoryProvider.IDColumn = "ObjectID"; categoryProvider.LevelColumn = "ObjectLevel"; categoryProvider.OrderColumn = "CategoryOrder"; categoryProvider.ParentIDColumn = "ParentID"; categoryProvider.PathColumn = "ObjectPath"; categoryProvider.ValueColumn = "ObjectID"; categoryProvider.ChildCountColumn = "CompleteChildCount"; categoryProvider.QueryName = "cms.pagetemplatecategory.selectallview"; categoryProvider.ObjectTypeColumn = "ObjectType"; categoryProvider.Columns = "DisplayName, CodeName, ObjectID, ObjectLevel, CategoryOrder, ParentID, ObjectPath, CompleteChildCount, ObjectType, CategoryChildCount, CategoryImagePath, Parameter"; categoryProvider.ImageColumn = "CategoryImagePath"; categoryProvider.ParameterColumn = "Parameter"; if (!SelectPageTemplates) { categoryProvider.WhereCondition = "ObjectType = 'pagetemplatecategory'"; categoryProvider.ChildCountColumn = "CategoryChildCount"; categoryProvider.ObjectTypeColumn = ""; treeElem.DefaultImagePath = GetImageUrl("Objects/CMS_PageTemplateCategory/list.png"); } else { categoryProvider.OrderBy = "ObjectType DESC, DisplayName ASC"; treeElem.OnGetImage += new CMSAdminControls_UI_Trees_UniTree.GetImageEventHandler(treeElem_OnGetImage); } // Do not show AdHoc category if (!this.ShowAdHocCategory) { categoryProvider.WhereCondition = SqlHelperClass.AddWhereCondition(categoryProvider.WhereCondition, "CodeName <> 'AdHoc'"); } // Do not show empty categories if (!this.ShowEmptyCategories) { categoryProvider.WhereCondition = SqlHelperClass.AddWhereCondition(categoryProvider.WhereCondition, "CategoryTemplateChildCount > 0 OR CategoryChildCount > 0"); TreeProvider tp = new TreeProvider(CMSContext.CurrentUser); TreeNode node = DocumentHelper.GetDocument(DocumentID, tp); string culture = CMSContext.PreferredCultureCode; int level = 0; string path = string.Empty; if (node != null) { level = node.NodeLevel; path = node.NodeAliasPath; if (IsNewPage) { level++; path = path + "/%"; } else { culture = node.DocumentCulture; } } // Add where condition for scopes categoryProvider.WhereCondition += " AND (ObjectLevel = 0 OR (SELECT TOP 1 ObjectID FROM View_CMS_PageTemplateCategoryPageTemplate_Joined AS X WHERE X.ObjectType = 'pagetemplate' "; categoryProvider.WhereCondition += " AND (X.PageTemplateType IS NULL OR X.PageTemplateType <> N'" + PageTemplateInfoProvider.GetPageTemplateTypeCode(PageTemplateTypeEnum.Dashboard) + "')"; if (ShowOnlySiteTemplates) { categoryProvider.WhereCondition += " AND X.ObjectID IN (SELECT PageTemplateID FROM CMS_PageTemplateSite WHERE SiteID = " + CMSContext.CurrentSiteID + ") "; } if (node != null) { categoryProvider.WhereCondition += " AND (" + PageTemplateScopeInfoProvider.GetScopeWhereCondition(path, culture, node.NodeClassName, level, CMSContext.CurrentSiteName, "X", "ObjectID") + ") "; } categoryProvider.WhereCondition += " AND (X.ObjectPath LIKE View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectPath + '/%')) IS NOT NULL)"; // Add column count column - minimal number of childs categoryProvider.Columns += @", (SELECT TOP 1 Count(*) FROM View_CMS_PageTemplateCategoryPageTemplate_Joined AS Y WHERE (Y.ObjectID = View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectID AND Y.ObjectLevel = 0) OR ( View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectType = 'PageTemplateCategory' AND View_CMS_PageTemplateCategoryPageTemplate_Joined.CategoryChildCount > 0 AND Y.ObjectType = 'PageTemplate' AND Y.ObjectLevel > View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectLevel + 1 "; if (ShowOnlySiteTemplates) { categoryProvider.Columns += "AND Y.ObjectID IN (SELECT PageTemplateID FROM CMS_PageTemplateSite WHERE SiteID = " + CMSContext.CurrentSiteID + ") "; } if (node != null) { categoryProvider.Columns += " AND ( " + PageTemplateScopeInfoProvider.GetScopeWhereCondition(path, culture, node.NodeClassName, level, CMSContext.CurrentSiteName, "Y", "ObjectID") + " ) "; } categoryProvider.Columns += " AND Y.ObjectPath LIKE View_CMS_PageTemplateCategoryPageTemplate_Joined.ObjectPath + '/%')) AS MinNumberOfChilds"; categoryProvider.ChildCountColumn = "MinNumberOfChilds"; } // Set up tree treeElem.ProviderObject = categoryProvider; if (SelectPageTemplates) { treeElem.NodeTemplate = "<span id=\"##OBJECTTYPE##_##NODEID##\" onclick=\"SelectNode(##NODEID##,'##OBJECTTYPE##', ##PARENTNODEID##, '##PARAMETER##');\" name=\"treeNode\" class=\"ContentTreeItem\">##ICON## <span class=\"Name\">##NODENAME##</span></span>"; treeElem.SelectedNodeTemplate = "<span id=\"##OBJECTTYPE##_##NODEID##\" onclick=\"SelectNode(##NODEID##,'##OBJECTTYPE##', ##PARENTNODEID##, '##PARAMETER##');\" name=\"treeNode\" class=\"ContentTreeItem ContentTreeSelectedItem\">##ICON## <span class=\"Name\">##NODENAME##</span></span>"; } else { treeElem.NodeTemplate = "<span onclick=\"SelectNode(##NODEID##, this);\" class=\"ContentTreeItem\">##ICON## <span class=\"Name\">##NODENAME##</span></span>"; treeElem.DefaultItemTemplate = "<span onclick=\"SelectNode('recentlyused', this);\" class=\"ContentTreeItem\">##ICON##<span class=\"Name\">##NODENAME##</span></span><div style=\"clear:both\"></div>"; treeElem.SelectedDefaultItemTemplate = "<span onclick=\"SelectNode('recentlyused', this);\" class=\"ContentTreeItem ContentTreeSelectedItem\">##ICON##<span class=\"Name\">##NODENAME##</span></span><div style=\"clear:both\"></div>"; treeElem.SelectedNodeTemplate = "<span onclick=\"SelectNode(##NODEID##, this);\" class=\"ContentTreeItem ContentTreeSelectedItem\">##ICON## <span class=\"Name\">##NODENAME##</span></span>"; // Register jquery ScriptHelper.RegisterJQuery(this.Page); string js = "function SelectNode(nodeid, sender){ " + "var selectedItem = $j('.ContentTreeSelectedItem'); " + "selectedItem.removeClass('ContentTreeSelectedItem'); " + "selectedItem.addClass('ContentTreeItem');" + "selectedItem = $j(sender);" + "selectedItem.removeClass('ContentTreeItem'); " + "selectedItem.addClass('ContentTreeSelectedItem'); " + "document.getElementById('" + this.treeElem.SelectedItemFieldId + "').value = nodeid;" + treeElem.GetOnSelectedItemBackEventReference() + "}"; ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "SelectTreeNode", ScriptHelper.GetScript(js)); } // Setup event handler treeElem.OnItemSelected += new CMSAdminControls_UI_Trees_UniTree.ItemSelectedEventHandler(treeElem_OnItemSelected); treeElem.OnNodeCreated += new CMSAdminControls_UI_Trees_UniTree.NodeCreatedEventHandler(treeElem_OnNodeCreated); }
/// <summary> /// Page load event. /// </summary> /// <param name="sender">Sender</param> /// <param name="e">Arguments</param> protected void Page_Load(object sender, EventArgs e) { if (!MembershipContext.AuthenticatedUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.GlobalAdmin)) { RedirectToAccessDenied(GetString("template.scopes.denied")); } // Show changes saved message if (QueryHelper.GetInteger("saved", 0) == 1 && !URLHelper.IsPostback()) { ShowChangesSaved(); } // Get template id, scope id and site id scopeID = QueryHelper.GetInteger("scopeid", 0); siteID = QueryHelper.GetInteger("siteid", 0); // Get sitename string siteName = string.Empty; if (siteID > 0) { SiteInfo site = SiteInfoProvider.GetSiteInfo(siteID); if (site != null) { siteName = " (" + site.DisplayName + ")"; } } // Breakcrumbs initialization PageBreadcrumbs.Items.Add(new BreadcrumbItem { Text = GetString("template.scopes"), RedirectUrl = "~/CMSModules/PortalEngine/UI/PageTemplates/Scopes/PageTemplateScopes_List.aspx?siteid=" + siteID + "&templateid=" + PageTemplateID, }); PageBreadcrumbs.Items.Add(new BreadcrumbItem { Text = GetString("template.scopes.new") + siteName, }); // Set up controls cultureElem.CurrentSelector.AllowEmpty = false; cultureElem.CurrentSelector.SelectionMode = SelectionModeEnum.SingleDropDownList; cultureElem.ReturnColumnName = "CultureID"; cultureElem.DisplayAllValue = true; cultureElem.SiteID = -1; classElem.DisplayAllValue = true; // Get scope info ptsi = (scopeID > 0) ? PageTemplateScopeInfoProvider.GetPageTemplateScopeInfo(scopeID) : new PageTemplateScopeInfo(); // Set edited object EditedObject = ptsi; if (scopeID > 0) { if (ptsi != null) { cultureId = ptsi.PageTemplateScopeCultureID; classId = ptsi.PageTemplateScopeClassID; PageBreadcrumbs.Items[1].Text = ptsi.PageTemplateScopePath + siteName; // Load fields if (!RequestHelper.IsPostBack()) { pathElem.Value = ptsi.PageTemplateScopePath; classElem.Value = ptsi.PageTemplateScopeClassID; cultureElem.Value = ptsi.PageTemplateScopeCultureID; levelElem.Value = ptsi.PageTemplateScopeLevels; } } } else if (!RequestHelper.IsPostBack()) { pathElem.Value = "/"; } // Select for site scope only available cultures if (siteID > 0) { pathElem.SiteID = siteID; cultureElem.CurrentSelector.WhereCondition = "CultureID IN (SELECT CultureID FROM CMS_SiteCulture WHERE SiteID = " + siteID + ") OR CultureID = " + cultureId; classElem.WhereCondition = "(ClassID IN (SELECT ClassID FROM CMS_ClassSite WHERE SiteID = " + siteID + ") OR ClassID = " + classId + ")"; } }
/// <summary> /// On PreRender. /// </summary> protected override void OnPreRender(EventArgs e) { if (StopProcessing) { return; } string where = flatElem.WhereCondition; // Show only reusable templates if (ShowOnlyReusable) { where = SqlHelperClass.AddWhereCondition(where, "PageTemplateIsReusable = 1"); } if (ShowOnlyProductSectionTemplates) { where = SqlHelperClass.AddWhereCondition(where, "PageTemplateIsAllowedForProductSection = 1"); } // Show only templates of this site if (SiteId > 0) { where = SqlHelperClass.AddWhereCondition(where, "PageTemplateID IN (SELECT PageTemplateID FROM CMS_PageTemplateSite WHERE SiteID = " + SiteId + ")"); } // Node GUID condition if (NodeGUID != Guid.Empty) { where = SqlHelperClass.AddWhereCondition(where, "PageTemplateNodeGUID = '" + NodeGUID + "' AND PageTemplateSiteID = " + SiteId, "OR"); } // Do not display dashboard items where = SqlHelperClass.AddWhereCondition(where, "PageTemplateType IS NULL OR PageTemplateType <> N'" + PageTemplateInfoProvider.GetPageTemplateTypeCode(PageTemplateTypeEnum.Dashboard) + "'"); // Restrict to items in selected category (if not root) if ((SelectedCategory != null) && (SelectedCategory.ParentId > 0)) { where = SqlHelperClass.AddWhereCondition(where, "PageTemplateCategoryID = " + SelectedCategory.CategoryId + " OR PageTemplateCategoryID IN (SELECT CategoryID FROM CMS_PageTemplateCategory WHERE CategoryPath LIKE N'" + SqlHelperClass.GetSafeQueryString(SelectedCategory.CategoryPath, false) + "/%')"); } // Add extra where condition where = SqlHelperClass.AddWhereCondition(where, WhereCondition); TreeProvider tp = new TreeProvider(CMSContext.CurrentUser); TreeNode node = DocumentHelper.GetDocument(DocumentID, tp); string culture = CMSContext.PreferredCultureCode; if (node != null) { int level = node.NodeLevel; string path = node.NodeAliasPath; if (IsNewPage) { level++; path = path + "/%"; } else { culture = node.DocumentCulture; } string className = node.NodeClassName; // Check if class id is in query string - then use it's value instead of document class name int classID = QueryHelper.GetInteger("classid", 0); if (classID != 0) { DataClassInfo dci = DataClassInfoProvider.GetDataClass(classID); if (dci != null) { className = dci.ClassName; } } // Add scopes condition string scopeWhere = PageTemplateScopeInfoProvider.GetScopeWhereCondition(path, culture, className, level, CMSContext.CurrentSiteName, "View_CMS_PageTemplateMetafile_Joined", "PageTemplateID"); where = SqlHelperClass.AddWhereCondition(where, scopeWhere); } flatElem.WhereCondition = where; // Description area litCategory.Text = ShowInDescriptionArea(SelectedItem); base.OnPreRender(e); }
/// <summary> /// On PreRender. /// </summary> protected override void OnPreRender(EventArgs e) { if (StopProcessing) { return; } string where = flatElem.WhereCondition; // Show only reusable templates if (ShowOnlyReusable) { where = SqlHelper.AddWhereCondition(where, "PageTemplateIsReusable = 1"); } if (ShowOnlyProductSectionTemplates) { where = SqlHelper.AddWhereCondition(where, "PageTemplateIsAllowedForProductSection = 1"); } // Show only templates of this site if (SiteId > 0) { where = SqlHelper.AddWhereCondition(where, "PageTemplateID IN (SELECT PageTemplateID FROM CMS_PageTemplateSite WHERE SiteID = " + SiteId + ")"); } // Node GUID condition if (NodeGUID != Guid.Empty) { where = SqlHelper.AddWhereCondition(where, "PageTemplateNodeGUID = '" + NodeGUID + "' AND PageTemplateSiteID = " + SiteId, "OR"); } // Do not display dashboard items where = SqlHelper.AddWhereCondition(where, "PageTemplateType IS NULL OR PageTemplateType <> N'" + PageTemplateInfoProvider.GetPageTemplateTypeCode(PageTemplateTypeEnum.Dashboard) + "'"); // Restrict to items in selected category (if not root) - For multiple roots filter items for every root if ((SelectedCategory != null) && ((SelectedCategory.ParentId > 0) || MultipleRoots)) { string cat = SqlHelper.EscapeLikeText(SqlHelper.EscapeQuotes(SelectedCategory.CategoryPath)); if (!cat.EndsWith("/", StringComparison.Ordinal)) { cat += "/"; } cat += "%"; where = SqlHelper.AddWhereCondition(where, "PageTemplateCategoryID = " + SelectedCategory.CategoryId + " OR PageTemplateCategoryID IN (SELECT CategoryID FROM CMS_PageTemplateCategory WHERE CategoryPath LIKE N'" + cat + "')"); } // Add extra where condition where = SqlHelper.AddWhereCondition(where, WhereCondition); TreeProvider tp = new TreeProvider(MembershipContext.AuthenticatedUser); TreeNode node = DocumentHelper.GetDocument(DocumentID, tp); string culture = LocalizationContext.PreferredCultureCode; if (node != null) { int level = node.NodeLevel; string path = node.NodeAliasPath; if (IsNewPage) { level++; path = path + "/%"; } else { culture = node.DocumentCulture; } string className = node.NodeClassName; // Check if class id is in query string - then use it's value instead of document class name int classID = QueryHelper.GetInteger("classid", 0); if (classID != 0) { DataClassInfo dci = DataClassInfoProvider.GetDataClassInfo(classID); if (dci != null) { className = dci.ClassName; } } // Add scopes condition string scopeWhere = PageTemplateScopeInfoProvider.GetScopeWhereCondition(path, culture, className, level, SiteContext.CurrentSiteName, "PageTemplateID"); where = SqlHelper.AddWhereCondition(where, scopeWhere); } flatElem.WhereCondition = where; // Description area ltrDescription.Text = ShowInDescriptionArea(SelectedItem); base.OnPreRender(e); }