protected override void OnLoad(EventArgs e) { base.OnLoad(e); string templateName = "list"; string action = string.Empty; if (EnableSef) { BXParamsBag<string> sefTemplates = new BXParamsBag<string>(); sefTemplates.Add("list$page", SefTemplatePageIndex); sefTemplates.Add("list$all", SefTemplateShowAll); sefTemplates.Add("form$new", SefTemplateCreateElement); sefTemplates.Add("form$edit", SefTemplateModifyElement); string code = MapVariable(SefFolder, sefTemplates, ComponentCache, "list"); int position = code.IndexOf('$'); if (position > 0) { templateName = code.Substring(0, position); action = code.Substring(position + 1); } else { templateName = code; action = string.Empty; } if (string.Equals(templateName, "form", StringComparison.InvariantCultureIgnoreCase)) { if ((string.Equals(action, "edit", StringComparison.InvariantCultureIgnoreCase) && !InternalBehaviour.IsElementModificationAllowed()) || (string.Equals(action, "new", StringComparison.InvariantCultureIgnoreCase) && !InternalBehaviour.IsElementCreationAllowed()) ) { templateName = "list"; action = string.Empty; } } if (string.Equals(templateName, "list", StringComparison.InvariantCultureIgnoreCase)) { BXParamsBag<object> replaceItems = new BXParamsBag<object>(ComponentCache); replaceItems.Remove("PageID"); replaceItems["IblockId"] = replaceItems["IBLOCK_ID"] = IBlockId.ToString(); ComponentCache["PagingIndexTemplate"] = CombineLink(SefFolder, string.Empty); ComponentCache["PagingPageTemplate"] = CombineLink(SefFolder, MakeLink(SefTemplatePageIndex, replaceItems)); ComponentCache["PagingShowAllTemplate"] = CombineLink(SefFolder, MakeLink(SefTemplateShowAll, replaceItems)); ComponentCache["ShowAll"] = string.Equals(code, "list$all", StringComparison.Ordinal) ? "y" : "n"; ComponentCache["ElementCreationUrl"] = CombineLink(SefFolder, MakeLink(SefTemplateCreateElement, replaceItems)); ComponentCache["ElementModificationUrl"] = CombineLink(SefFolder, MakeLink(SefTemplateModifyElement, replaceItems)); } else if (string.Equals(templateName, "form", StringComparison.InvariantCultureIgnoreCase)) Parameters["RedirectPageUrl"] = CombineLink(SefFolder, string.Empty); } else { bool aboutCreateEl = false, aboutModifyEl = false; string createElParName = RequestParamNameCreateElement, modifyElParName = RequestParamNameModifyElement; if (!string.IsNullOrEmpty(modifyElParName)) { string elementID = Request.QueryString.Get(modifyElParName); if (!string.IsNullOrEmpty(elementID)) { aboutModifyEl = true; ComponentCache["ElementID"] = elementID; } } if (!aboutModifyEl && !string.IsNullOrEmpty(createElParName)) { int keyCount = Request.QueryString.Count; for (int i = 0; i < keyCount; i++) { if (!string.Equals(Request.QueryString[i], createElParName, StringComparison.InvariantCultureIgnoreCase)) continue; aboutCreateEl = true; ComponentCache["ElementID"] = "0"; break; } } if ((aboutModifyEl && InternalBehaviour.IsElementModificationAllowed()) || (aboutCreateEl && InternalBehaviour.IsElementCreationAllowed())) { templateName = "form"; Parameters["RedirectPageUrl"] = BXSefUrlManager.CurrentUrl.AbsolutePath; } else { BXParamsBag<string> requestParamAliases = new BXParamsBag<string>(); requestParamAliases["PageID"] = RequestParamNamePageIndex; requestParamAliases["ShowAll"] = RequestParamNameShowAll; BXComponentManager.MapVariable(requestParamAliases, ComponentCache, true); if (ComponentCache.ContainsKey("ShowAll") && string.IsNullOrEmpty(ComponentCache.GetString("ShowAll", null))) ComponentCache["ShowAll"] = "y"; string filePath = BXSefUrlManager.CurrentUrl.AbsolutePath; ComponentCache["PagingIndexTemplate"] = filePath; ComponentCache["PagingPageTemplate"] = String.Format("{0}?{1}=#PageId#", filePath, RequestParamNamePageIndex); ComponentCache["PagingShowAllTemplate"] = String.Format("{0}?{1}", filePath, RequestParamNameShowAll); ComponentCache["ElementCreationUrl"] = !string.IsNullOrEmpty(createElParName) ? string.Concat("?", createElParName) : string.Empty; ComponentCache["ElementModificationUrl"] = !string.IsNullOrEmpty(modifyElParName) ? string.Concat("?", modifyElParName, "=#ElementID#") : string.Empty; } } IncludeComponentTemplate(templateName); }