static void RegisterTemplate(string siteId, string templateName) { BXTemplateConditionCollection conditions = BXTemplateCondition.GetList( new BXFilter(new BXFilterItem(BXTemplateCondition.Fields.SiteId, BXSqlFilterOperators.Equal, siteId)), new BXOrderBy(new BXOrderByPair(BXTemplateCondition.Fields.Sort, BXOrderByDirection.Asc)) ); if (conditions.Count > 0 && conditions[0].ConditionType == 0) { conditions[0].Template = templateName; conditions[0].Save(); } else { BXTemplateCondition c = new BXTemplateCondition(); c.Template = templateName; c.SiteId = siteId; c.ConditionType = 0; c.Condition = ""; c.Sort = 10; c.Save(); int i = 10; foreach(BXTemplateCondition t in conditions) { c.Sort = (i += 10); c.Save(); } } }
private void CreateConditionCell(int rowIndex, BXTemplateCondition condition, HtmlTableCell cell) { string strCondition = string.IsNullOrEmpty(condition.Condition) ? "" : condition.Condition; //FileOrFolder bool controlExist = false; TextBox txt = new TextBox(); Control group = LoadControl("~/bitrix/admin/controls/Main/rolelist.ascx"); Control url = LoadControl("~/bitrix/controls/Main/urlparameter.ascx"); Control time = LoadControl("~/bitrix/controls/Main/TimeInterval.ascx"); if (cell.Controls.Count == 4) { controlExist = true; txt = cell.Controls[0] as TextBox; group = cell.Controls[1]; url = cell.Controls[2]; time = cell.Controls[3]; } txt.Width = new Unit("100%"); txt.ID = string.Format("row_{0}_textbox", rowIndex); txt.Visible = (condition.ConditionType == (int)ConditionType.FileOrFolder); if (txt.Visible) txt.Text = strCondition; //Group group.ID = string.Format("row_{0}_rolelist", rowIndex); group.Visible = (condition.ConditionType == (int)ConditionType.Group); if (condition.ConditionType == (int)ConditionType.Group) { IRoleList rl = group as IRoleList; rl.SelectedRoles = BXStringUtility.StringToList(strCondition); } //Url url.ID = string.Format("row_{0}_urlparameter", rowIndex); url.Visible = (condition.ConditionType == (int)ConditionType.Url); if (url.Visible) { IUrlParameter up = url as IUrlParameter; up.ParameterName = BXStringUtility.StringToParam(strCondition)[0]; up.ParameterValue = BXStringUtility.StringToParam(strCondition)[1]; } //Time time.ID = string.Format("row_{0}_TimeInterval", rowIndex); time.Visible = (condition.ConditionType == (int)ConditionType.Time); if (time.Visible) { ITimeInterval ti = time as ITimeInterval; ti.StartDate = BXStringUtility.StringToTimeInterval(strCondition)[0]; ti.EndDate = BXStringUtility.StringToTimeInterval(strCondition)[1]; } if (!controlExist) { cell.Controls.Add(txt); cell.Controls.Add(group); cell.Controls.Add(url); cell.Controls.Add(time); } }