protected void Page_Load(object sender, System.EventArgs e) { PortalDefinition.Tab currentTab = PortalDefinition.GetCurrentTab(); if (currentTab == null || currentTab.tabs == null) { return; } ArrayList tabList = new ArrayList(); foreach (PortalDefinition.Tab t in currentTab.tabs) { ChannelUsers objUser = new ChannelUsers(); if (objUser.HasViewRights(Page.User, t.roles)) { DisplayTabItem dt = new DisplayTabItem(); tabList.Add(dt); dt.m_Text = t.title; dt.m_URL = "../../" + Portal.API.Config.GetTabURL(t.reference); } } Tabs.DataSource = tabList; Tabs.DataBind(); }
/// <summary> /// Nạp chồng Thủ tục khởi tạo các điều khiển con /// </summary> override protected void CreateChildControls() { // Lấy thông tin Tab hiện thời PortalDefinition.Tab tab = PortalDefinition.GetCurrentTab(); if (tab == null) { return; } // Kiểm tra quyền của người sử dụng ChannelUsers objuser = new ChannelUsers(); // Edit by Tqdat // Xu ly viec khong de Session Timeout la BienTapvien out ra khoi fan Admin // - Neu bi Session TimeOut thi kiem tra xem Cookie co ton tai User va Pass hay ko // + Neu Co thi Login lai de lay lai session // + Neu Khong thi Redirect ra trang login.aspx //bool isHasViewRights = objuser.HasViewRights(Page.User, tab.roles); /*if (isHasViewRights == false) * { * // Kiem tra xem co Cookie hay ko * HttpCookie cookie = Request.Cookies["PortalUser"]; * if (cookie != null) * { * objuser.Login(cookie.Values["AC"].Trim(), cookie.Values["PW"].Trim()); * isHasViewRights = true; * } * }*/ if (objuser.HasViewRights(Page.User, tab.roles)) { RenderColumns(tab, tab.Columns, DisplayRegion); if (IsAdmin) { // Hiển thị vùng trắng của các cột rỗng foreach (HtmlTableCell _objEmptyColumn in _arrAllEmptyColumn) { LiteralControl _ltrSpace = new LiteralControl(); _ltrSpace.Text = " "; _objEmptyColumn.Controls.Add(_ltrSpace); } } } else { Cache cache = new Cache(HttpContext.Current.Application); string path = HttpContext.Current.Request.Url.AbsolutePath.ToLower(); string _strCacheKey = Config.GetPortalUniqueCacheKey() + path + "_" + HttpContext.Current.User.Identity.Name; string _strCacheRawKey = Config.GetPortalUniqueCacheKey() + "_Raw" + HttpContext.Current.Request.RawUrl + "_" + HttpContext.Current.User.Identity.Name; cache[_strCacheKey] = null; cache[_strCacheRawKey] = null; Session["NotPermission"] = "True"; Session["lastPath"] = HttpContext.Current.Request.RawUrl; Response.Redirect("/login.aspx"); } }
/// <summary> /// Nạp chồng Thủ tục khởi tạo các điều khiển con /// </summary> override protected void CreateChildControls() { // Lấy thông tin Tab hiện thời PortalDefinition.Tab tab = PortalDefinition.GetCurrentTab(); if (tab == null) { return; } // Kiểm tra quyền của người sử dụng ChannelUsers objuser = new ChannelUsers(); if (objuser.HasViewRights(Page.User, tab.roles)) { // Tiến hành sinh mã cho các cột của Tab // Vùng bắt đầu là DisplayRegion. RenderColumns(tab, tab.Columns, DisplayRegion); } else { // Add by tqdat Cache cache = new Cache(HttpContext.Current.Application); string path = HttpContext.Current.Request.Url.AbsolutePath.ToLower(); string _strCacheKey = Config.GetPortalUniqueCacheKey() + path + "_" + HttpContext.Current.User.Identity.Name; string _strCacheRawKey = Config.GetPortalUniqueCacheKey() + "_Raw" + HttpContext.Current.Request.RawUrl + "_" + HttpContext.Current.User.Identity.Name; cache[_strCacheKey] = null; cache[_strCacheRawKey] = null; Session["lastPath"] = HttpContext.Current.Request.RawUrl; // Neu khong duoc fep access vao hoac Mat Session thi redirect ve trang Login Response.Redirect("/login.aspx"); } }
/// <summary> /// Thủ tục khởi tạo Module và chèn Module vào cột đã định. /// </summary> /// <param name="td">Ô (hay cột) chứa Module</param> /// <param name="tab">Tab chứa Module (cần để lấy thêm thông tin về Tab)</param> /// <param name="modules">Danh sách Module đã được định nghĩa thuộc cột này</param> private void RenderModules(HtmlTableCell td, PortalDefinition.Tab tab, ArrayList modules) { //if (Request.HttpMethod == "GET") //{ #region Khi phuong thuc lay la get // Kiểm tra nếu không có Module nào trong cột thì chèn khoảng trắng để lưu vị trí cột if (modules.Count == 0) { _arrAllEmptyColumn.Add(td); } // Duyệt danh sách Module for (int _intModuleCount = 0; _intModuleCount < modules.Count; _intModuleCount++) { PortalDefinition.Module _objModuleDefinition = modules[_intModuleCount] as PortalDefinition.Module; ChannelUsers objUser = new ChannelUsers(); // Kiểm tra người dùng có quyền hiển thị Module hay không if (objUser.HasViewRights(Page.User, _objModuleDefinition.roles)) { // Nạp các thông số về Module _objModuleDefinition.LoadModuleSettings(); // Khởi tạo Module Module _objModuleControl = null; CachedModule _objCachedModuleControl = null; //try //{ // Kiểm tra xem có thông số nào được xác lập không // Xây dựng chuỗi đường dẫn đến tệp ASCX string _strModuleSrc = Config.GetModuleVirtualPath(_objModuleDefinition.type); if (_objModuleDefinition.moduleSettings == null) { //_objModuleDefinition.LoadRuntimeProperties(); //string strAjax=_objModuleDefinition.moduleRuntimeSettings.GetRuntimePropertyValue(true, "isAjax"); ////Xu ly truong hop co ajax request den ca trang. Neu Module k co Ajax thi k load //if ((strAjax == "false" || strAjax =="")&& Request.HttpMethod =="POST") // continue; string[] strModulePath = _objModuleDefinition.type.Split("/".ToCharArray()); string strModule; if (strModulePath.Length == 2) { strModule = strModulePath[1]; } else { strModule = strModulePath[0]; } _strModuleSrc += strModule + ".ascx"; } else { _strModuleSrc += _objModuleDefinition.moduleSettings.ctrl; } #region phan bo di // Kiểm tra xem Module có được phép hiển thị hay không //if((_objModuleControl != null && _objModuleControl.IsVisible() || (_objCachedModuleControl != null && _objCachedModuleControl.IsVisible()))) { #endregion // Kiểm tra xem trang hiện thời có nằm trong trạng thái cho phép kéo thả hay không // Nếu ở trạng thái hỗ trợ kéo thả thì tạo các khung chứa (Snap) để chứa nội dung của các Module // (nội dung này sẽ được nạp sử dụng Ajax khi người sử dụng mở rộng khung hoặc chế độ tự động mở rộng khung dc bật) if (IsAdmin) { #region Xu ly voi cac module quan tri // Khởi tạo phần tiêu đề của khung chứa Module (Khởi tạo 2 Control để tránh trùng lặp ID) // Header khi chưa thu gọn ModuleHeader _objModuleHeaderExpanded = (ModuleHeader)LoadControl("ModuleHeader.ascx"); _objModuleHeaderExpanded.SetModuleConfig(_objModuleDefinition); // Header khi đã thu gọn ModuleHeader _objModuleHeaderCollapsed = (ModuleHeader)LoadControl("ModuleHeader.ascx"); _objModuleHeaderCollapsed.SetModuleConfig(_objModuleDefinition); // Sử dụng Snap Component để chứa Module và hỗ trợ khả năng kéo thả // Khởi tạo Khung hiển thị của Module (Make Snap Instance) Snap _objSnap = new Snap(); _objSnap.ClientSideCookieEnabled = false; // Không lưu trữ Cookie khi thay đổi Snap _objSnap.DraggingStyle = SnapDraggingStyleType.TransparentRectangle; // Kiểu kéo khung, hiển thị 1 hình chữ nhật xám khi kéo khung _objSnap.DockingStyle = SnapDockingStyleType.TransparentRectangle; // Kiểu thả khung, hiển thị 1 hình chữ nhật xám tại nơi sẽ đặt _objSnap.ResizingMode = SnapResizingType.Horizontal; // Thay đổi kích thước tùy vào vùng đặt khung (đổi theo chiều ngang) _objSnap.MustBeDocked = true; // Khung chứa Module phải được gắn vào 1 vị trí cụ thể _objSnap.ID = _objModuleDefinition.reference.Replace('-', '_'); // Thiết lập mã tham chiếu cho khung (cần đổi - thành _) _objSnap.CurrentDockingIndex = _intModuleCount; // Thứ tự đặt khung hiển thị _objSnap.CollapseDuration = 0; _objSnap.CollapseSlide = SlideType.None; _objSnap.CollapseTransition = TransitionType.None; _objSnap.ExpandDuration = 0; _objSnap.ExpandSlide = SlideType.None; _objSnap.ExpandTransition = TransitionType.None; _objSnap.IsCollapsed = true; _objSnap.Width = Unit.Percentage(100); // Khai báo mã tham chiếu của các vùng có thể đặt Module _objSnap.DockingContainers = _strContainerList; // Xác lập mã tham thiếu của vùng đặt hiện thời _objSnap.CurrentDockingContainer = td.Attributes["ID"].ToString(); string _strNewsRef = Request.QueryString["NewsRef"] == null ? "" : Request.QueryString["NewsRef"]; // Khai báo mẫu sử dụng của khung chứa Module // Mẫu phần trên của khung ModuleContainerTemplate _objHeaderTemplate = new ModuleContainerTemplate(ListItemType.Header, tab.reference, _objModuleDefinition.reference, _strNewsRef); _objHeaderTemplate.HeaderContent = _objModuleDefinition.title; _objHeaderTemplate.EditModuleControl = _objModuleHeaderExpanded; // Lưu tham chiếu đến điều khiển chứa mã tham chiếu của Khung tại máy trạm _arrAllSnapHeaderDrag.Add(_objHeaderTemplate._renderClientIDOfControlForDrag); _arrAllSnapHeaderExpand.Add(_objHeaderTemplate._renderClientIDOfControlForExpand); // Mẫu chứa phần trên của khung khi thu gọn ModuleContainerTemplate _objCollapsedHeaderTemplate = new ModuleContainerTemplate(ListItemType.EditItem, tab.reference, _objModuleDefinition.reference, _strNewsRef); _objCollapsedHeaderTemplate.HeaderContent = _objModuleDefinition.title; _objCollapsedHeaderTemplate.EditModuleControl = _objModuleHeaderCollapsed; // Lưu tham chiếu đến điều khiển chứa mã tham chiếu của Khung tại máy trạm _arrAllSnapHeaderCollapsedDrag.Add(_objCollapsedHeaderTemplate._renderClientIDOfCollapsedControlForDrag); _arrAllSnapHeaderCollapsedExpand.Add(_objCollapsedHeaderTemplate._renderClientIDOfCollapsedControlForExpand); // Mẫu của phần giữa khung ModuleContainerTemplate _objContentTemplate = new ModuleContainerTemplate(ListItemType.Item, tab.reference, _objModuleDefinition.reference, _strNewsRef); Literal lh = new Literal(); lh.Text = ""; lh.EnableViewState = false; _objContentTemplate.ChildControl = lh; // Mẫu phần dưới của khung ModuleContainerTemplate _objFooterTemplate = new ModuleContainerTemplate(ListItemType.Footer); // Đặt mẫu vào các vị trí tương ứng của khung _objSnap.HeaderTemplate = _objHeaderTemplate; _objSnap.CollapsedHeaderTemplate = _objCollapsedHeaderTemplate; _objSnap.ContentTemplate = _objContentTemplate; _objSnap.FooterTemplate = _objFooterTemplate; // Display Module td.Controls.Add(_objSnap); // Lưu tham chiếu đến khung để lấy mã tham chiếu tại máy trạm _arrAllSnap.Add(_objSnap); #endregion } else { if (_objModuleDefinition.CacheTime <= 0) { // Nếu Module không sử dụng Cache _objModuleControl = (Module)LoadModule(_strModuleSrc); // Khởi tạo nội dung Module _objModuleControl.InitModule(tab.reference, _objModuleDefinition.reference, _objModuleDefinition.type, Config.GetModuleVirtualPath(_objModuleDefinition.type), true); } else { // Nếu Module có sử dụng Cache _objCachedModuleControl = new CachedModule(); _objCachedModuleControl.ModuleCacheTime = _objModuleDefinition.CacheTime; // Khởi tạo nội dung Module _objCachedModuleControl.InitModule(tab.reference, _objModuleDefinition.reference, _objModuleDefinition.type, Config.GetModuleVirtualPath(_objModuleDefinition.type), true, _strModuleSrc); } if ((_objModuleControl != null && _objModuleControl.IsVisible() || (_objCachedModuleControl != null && _objCachedModuleControl.IsVisible()))) { // Hiển thị nội dung Module theo cách trình bày bình thường không hỗ trợ kéo thả HtmlTable _objSimpleModuleContainer = new HtmlTable(); _objSimpleModuleContainer.Width = "100%"; _objSimpleModuleContainer.CellPadding = 0; _objSimpleModuleContainer.CellSpacing = 0; _objSimpleModuleContainer.Rows.Add(new HtmlTableRow()); // Nạp dữ liệu của Module vào ô chứa Module HtmlTableCell _objCellContainer = new HtmlTableCell(); _objSimpleModuleContainer.Rows[0].Cells.Add(_objCellContainer); // _objCellContainer.Attributes.Add("class", "Module_Simple_Block"); if (_objModuleControl != null) { _objCellContainer.Controls.Add(_objModuleControl); } else { _objCellContainer.Controls.Add(_objCachedModuleControl); } //cách giữa header và body _objCellContainer.Attributes.Add("style", "padding-bottom:3px;"); td.Controls.Add(_objSimpleModuleContainer); } } } } } #endregion #endregion }