/// <summary> /// Lưu các thiết lập của Module /// </summary> /// <param name="sender"></param> /// <param name="args"></param> protected void OnSave(object sender, EventArgs args) { try { if (Page.IsValid) { // Nạp cấu trúc Portal PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = pd.GetTab(CurrentTabReference); // Truy xuất đến cấu trúc Module hiện thời PortalDefinition.Module m = t.GetModule(CurrentReference); // Thay đổi các thông số tương ứng m.reference = txtReference.Text; m.title = HttpUtility.HtmlEncode(txtTitle.Text); m.type = cboPath.SelectedValue + "/" + cbType.SelectedItem.Value; m.roles = RolesCtrl.GetData(); m.CacheTime = Convert.ToInt32(txtCacheTime.Text); // Lưu các thông số và cấu trúc pd.Save(); // Lưu các thông số khi thực thi của module m.LoadModuleSettings(); m.LoadRuntimeProperties(); for (int _intPropertyCount = 0; _intPropertyCount < rptRuntimeProperties.Items.Count; _intPropertyCount++) { HtmlInputHidden _hihPropertyName = rptRuntimeProperties.Items[_intPropertyCount].FindControl("lblPropertyName") as HtmlInputHidden; TextBox _txtPropertyValue = rptRuntimeProperties.Items[_intPropertyCount].FindControl("txtPropertyValue") as TextBox; DropDownList _drdAvaiableValues = rptRuntimeProperties.Items[_intPropertyCount].FindControl("drdAvaiableValues") as DropDownList; if (_hihPropertyName != null && _txtPropertyValue != null) { string _strPropertyValue = _txtPropertyValue.Visible ? _txtPropertyValue.Text : _drdAvaiableValues.SelectedValue; m.moduleRuntimeSettings.SetRuntimePropertyValue(true, _hihPropertyName.Value, _strPropertyValue); } } m.SaveRuntimeSettings(); CurrentReference = m.reference; // Phát sinh sự kiện lưu thông tin thành công if (Save != null) { Save(this, new EventArgs()); } } } catch (Exception e) { lbError.Text = e.Message; } }
protected void OnDelete(object sender, EventArgs args) { PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = pd.GetTab(CurrentReference); PortalDefinition.DeleteTab(CurrentReference); if (Delete != null) { Delete(this, t); } }
/// <summary> /// Thủ tục cập nhật lại mã tham chiếu của thẻ tương ứng với đề mục đã sửa /// Thủ tục này được gọi khi người sử dụng thay đổi đường dẫn hiển thị trên URL của một đề mục nào đó. /// </summary> /// <param name="_strOldTabRef">Mã tham chiếu cũ, dùng để tìm ra thẻ hiện thời ứng với đề mục cần sửa</param> /// <param name="_strNewTabRef">Mã</param> /// <param name="_strNewTabTitle"></param> private void SyncCategoryTab(string _strOldTabRef, string _strNewTabRef, string _strNewTabTitle) { PortalDefinition _objPortal = PortalDefinition.Load(); PortalDefinition.Tab _objCurrentCategoryTab = _objPortal.GetTab(_strOldTabRef); if (_objCurrentCategoryTab != null) { _objCurrentCategoryTab.title = _strNewTabTitle; _objCurrentCategoryTab.reference = _strNewTabRef; _objPortal.Save(); } }
protected void OnCancel(object sender, EventArgs args) { PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = pd.GetTab(CurrentReference); if (Cancel != null) { Cancel(this, t); } LoadData(CurrentReference); ShowModulesList(); }
public void LoadData(string tabRef, string moduleRef) { CurrentTabReference = tabRef; CurrentReference = moduleRef; PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = pd.GetTab(CurrentTabReference); _module = t.GetModule(CurrentReference); // Load Module Common Properties txtTitle.Text = HttpUtility.HtmlDecode(_module.title); txtReference.Text = _module.reference; txtCacheTime.Text = _module.CacheTime.ToString(); cboPath.ClearSelection(); cbType.ClearSelection(); //lay ve duong dan den file module tinh tu RootModule string strModule = _module.type, strPth = ""; string[] strModulePath = strModule.Split("/".ToCharArray()); if (strModulePath.Length == 2) { strPth = strModulePath[0]; strModule = strModulePath[1]; } ListItem pli = cboPath.Items.FindByValue(strPth); if (pli != null) { pli.Selected = true; } //goi load du lieu cho type LoadModuleTypes(strPth); ListItem li = cbType.Items.FindByValue(strModule); if (li != null) { li.Selected = true; } // Load Roles List RolesCtrl.LoadData(_module.roles); RolesCtrl.ShowRoleType = false; // Load Module's Runtime Properties _module.LoadModuleSettings(); _module.LoadRuntimeProperties(); rptRuntimeProperties.DataSource = _module.GetRuntimePropertiesSource(true); rptRuntimeProperties.DataBind(); }
protected void OnDeleteTab(object sender, EventArgs args) { PortalDefinition.Tab t = PortalDefinition.GetCurrentTab(); PortalDefinition.DeleteTab(t.reference); if (t.parent == null) { Response.Redirect(Helper.GetTabLink("")); } else { Response.Redirect(Helper.GetTabLink(t.parent.reference)); } }
override public void LoadData(PortalDefinition.Tab t) { CurrentTab = t; txtTitle.Text = HttpUtility.HtmlDecode(t.title); txtReference.Text = CurrentTab.reference; txtImagePathI.Text = HttpUtility.HtmlDecode(t.imgPathInactive); txtImagePathA.Text = HttpUtility.HtmlDecode(t.imgPathActive); RolesCtrl.LoadData(t.roles); ModuleListCtrl_Left.LoadData(t.left); ModuleListCtrl_Middle.LoadData(t.middle); ModuleListCtrl_Right.LoadData(t.right); }
protected void OnDelete(object sender, EventArgs args) { if (Parent is Tab) { PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = pd.GetTab(CurrentTabReference); PortalDefinition.Column _objColumnBeingDeleted = pd.GetColumn(CurrentColumnReference); if (_objColumnBeingDeleted != null) { t.DeleteColumn(CurrentColumnReference); pd.Save(); if (Delete != null) { Delete(CurrentColumnReference, _objColumnBeingDeleted.ColumnParent == null ? Guid.NewGuid().ToString() : _objColumnBeingDeleted.ColumnReference); } } } else if (Parent is Template) { TemplateDefinition td = TemplateDefinition.Load(); TemplateDefinition.Template t = td.GetTemplate(CurrentTabReference); PortalDefinition.Column _objColumnBeingDeleted = td.GetColumn(CurrentColumnReference); if (_objColumnBeingDeleted != null) { t.DeleteColumn(CurrentColumnReference); td.Save(); if (Delete != null) { Delete(CurrentColumnReference, _objColumnBeingDeleted.ColumnParent == null ? Guid.NewGuid().ToString() : _objColumnBeingDeleted.ColumnReference); } } } // Hopefully we where redirected here! }
public void LoadData(string tabRef) { CurrentReference = tabRef; PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = pd.GetTab(CurrentReference); txtTitle.Text = t.title; txtReference.Text = CurrentReference; RolesCtrl.LoadData(t.roles); ModuleListCtrl_Left.LoadData(t.left); ModuleListCtrl_Middle.LoadData(t.middle); ModuleListCtrl_Right.LoadData(t.right); }
/// <summary> /// Thủ tục áp nội dung thẻ mẫu vào nội dung thẻ đã chọn /// </summary> /// <param name="_strTabRef"></param> private void ApplyCustomTab(string _strTabRef) { PortalDefinition _objPortal = PortalDefinition.Load(); PortalDefinition.Tab _objSelectedTab = _objPortal.GetTab(_strTabRef); ArrayList _arrTemplateContent = _objPortal.CloneToTemplateTab(_objPortal.TemplateColumns) as ArrayList; if (_objSelectedTab != null && _objSelectedTab.reference != _objPortal.TemplateReference && _arrTemplateContent != null) { ReGenModuleID(ref _arrTemplateContent); _objSelectedTab.Columns = _arrTemplateContent; _objPortal.Save(); } }
protected void OnDelete(object sender, EventArgs args) { PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = pd.GetTab(CurrentTabReference); t.DeleteModule(CurrentReference); pd.Save(); if (Delete != null) { Delete(this, new EventArgs()); } // Hopefully we where redirected here! }
private void UpdateTabs(TemplateApplyingMode _objGenerateMode) { PortalDefinition _objPortal = PortalDefinition.Load(); EditionTypeRow[] _arrAllEditionTypes = null; using (MainDB _objDB = new MainDB()) { _arrAllEditionTypes = _objDB.EditionTypeCollection.GetAll(); } if (_arrAllEditionTypes != null) { foreach (EditionTypeRow _objEdition in _arrAllEditionTypes) { PortalDefinition.Tab _objCurrentEdition = _objPortal.GetTab(_objEdition.EditionDisplayURL); ArrayList _arrTemplateColumns = _objPortal.CloneToTemplateTab(_objPortal.TemplateColumns) as ArrayList; ReGenModuleID(ref _arrTemplateColumns); if (_objCurrentEdition != null) { // Nếu cho phép cập nhật chuyên san thì cần xét thêm chuyên san phải khác với chuyên san mẫu if (_objGenerateMode.EditionType && _objCurrentEdition.reference != _objPortal.TemplateReference) { _objCurrentEdition.Columns = _arrTemplateColumns; _objCurrentEdition.title = _objEdition.EditionName; } AddCategoryTab(_objPortal, _objCurrentEdition.tabs, _objEdition.EditionType_ID.ToString(), null, _objEdition.EditionDisplayURL, _objGenerateMode); } else { PortalDefinition.Tab _objNewEditionTab = PortalDefinition.Tab.Create(_objEdition.EditionDisplayURL); PortalDefinition.ViewRole _objViewRole = new PortalDefinition.ViewRole(); _objViewRole.name = Config.EveryoneRoles; _objNewEditionTab.roles.Add(_objViewRole); _objNewEditionTab.Columns = _arrTemplateColumns; _objPortal.tabs.Add(_objNewEditionTab); AddCategoryTab(_objPortal, _objNewEditionTab.tabs, _objEdition.EditionType_ID.ToString(), null, _objEdition.EditionDisplayURL, _objGenerateMode); } } } _objPortal.Save(); Response.Redirect(Request.Url.PathAndQuery); }
protected void OnSave(object sender, EventArgs args) { try { if (!Page.IsValid) { return; } PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = pd.GetTab(CurrentReference); t.title = HttpUtility.HtmlEncode(txtTitle.Text); t.reference = txtReference.Text; t.SkinName = ddrSkins.SelectedValue; t.IsHidden = chkIsHidden.Checked; t.roles = RolesCtrl.GetData(); if (!string.Empty.Equals(ddrTemplateList.SelectedValue)) { //get information about selected template TemplateDefinition td = TemplateDefinition.Load(); TemplateDefinition.Template template = td.GetTemplate(ddrTemplateList.SelectedValue); //apply template to tab by replace columns's tab by columns'template t.Columns = (ArrayList)template.Columns.Clone(); } pd.Save(); CurrentReference = t.reference; if (Save != null) { Save(this, t); } ShowModulesList(); LoadData(CurrentReference); } catch (Exception e) { lbError.Text = e.Message; } }
/// <summary> /// Thủ tục cập nhật lại mã tham chiếu của thẻ tương ứng với đề mục đã sửa /// Thủ tục này được gọi khi người sử dụng thay đổi đường dẫn hiển thị trên URL của một đề mục nào đó. /// </summary> /// <param name="_strOldTabRef">Mã tham chiếu cũ, dùng để tìm ra thẻ hiện thời ứng với đề mục cần sửa</param> /// <param name="_strNewTabRef">Mã</param> /// <param name="_strNewTabTitle"></param> public void SyncCategoryTab(string _strOldTabRef, string _strNewTabRef, string _strNewTabTitle, string _EditionRef, string _ParentRef, string _NewRef, string _NewTabTitle) { PortalDefinition _objPortal = PortalDefinition.Load(); PortalDefinition.Tab _objCurrentCategoryTab = _objPortal.GetTab(_strOldTabRef); if (_objCurrentCategoryTab != null) { _objCurrentCategoryTab.title = _strNewTabTitle; _objCurrentCategoryTab.reference = _strNewTabRef; _objPortal.Save(); } else { //neu truong hop khong ton tai tab thi tao tab do ra AddCategoryTab(_EditionRef, _ParentRef, _NewRef, _NewTabTitle); } }
protected void btnSaveLayout_Click(object sender, EventArgs e) { string tab = (string)ViewState["TabReference"]; string html = "<tables>" + HiddenField1.Value + "</tables>"; // hotfix html = html.Replace("<br style=\"clear: both;\">", string.Empty); html = html.Replace("<BR style=\"CLEAR: both\">", string.Empty); XmlDocument layout = convertHTMLtoXML(html); if (layout != null) { PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = pd.GetTab(tab); // remove all old column while (t.Columns.Count > 0) { t.DeleteColumn(((PortalDefinition.Column)t.Columns[0]).ColumnReference); } // add new column XmlNodeList htmlTables = layout.SelectNodes("tables/table"); if (htmlTables.Count == 0) { htmlTables = layout.SelectNodes("tables/TABLE"); // fix ie: UPPERCASE all tag } PortalDefinition.Column newColumn; int countTable = 0; foreach (XmlNode htmlTable in htmlTables) { newColumn = PortalDefinition.Column.Create(t); saveTable(ref newColumn, htmlTable, countTable++); t.Columns.Add(newColumn); } pd.Save(); RenderTables(t.Columns, workarea); } }
/// <summary> /// Ermittelt die Definition des Modules des angegebenene Tabs. /// </summary> /// <param name="szTab"></param> /// <param name="szCtrl"></param> /// <returns></returns> private PortalDefinition.Module GetModule(string szTab, string szCtrl) { PortalDefinition.Module SelectedModule = null; if ((szTab != null) && (szCtrl != null)) { PortalDefinition PortDef = PortalDefinition.Load(); PortalDefinition.Tab NewsTab = PortDef.GetTab(szTab); if (UserManagement.HasViewRights(Page.User, NewsTab.roles)) { PortalDefinition.Module Md = NewsTab.GetModule(szCtrl); if (UserManagement.HasViewRights(Page.User, Md.roles)) { SelectedModule = Md; } } } return(SelectedModule); }
public void SelectTab(string reference) { PortalDefinition pd = PortalDefinition.Load(); CurrentReference = reference; if (reference == "") // Root Node { CurrentParentReference = ""; TabCtrl.Visible = false; TabListCtrl.LoadData(pd); } else { PortalDefinition.Tab t = pd.GetTab(reference); CurrentParentReference = t.parent != null ? t.parent.reference : ""; TabListCtrl.LoadData(t); TabCtrl.Visible = true; TabCtrl.LoadData(reference); } }
protected void OnAddColumn(object sender, CommandEventArgs e) { if (Parent is Tab) { PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = pd.GetTab(e.CommandArgument.ToString()); if (t != null) { PortalDefinition.Column _objNewColumn = PortalDefinition.Column.Create(t); t.Columns.Add(_objNewColumn); pd.Save(); if (AddColumn != null) { AddColumn(this, _objNewColumn); } } } else if (Parent is Template) { TemplateDefinition td = TemplateDefinition.Load(); TemplateDefinition.Template t = td.GetTemplate(e.CommandArgument.ToString()); if (t != null) { PortalDefinition.Column _objNewColumn = PortalDefinition.Column.Create(t); t.Columns.Add(_objNewColumn); td.Save(); if (AddColumn != null) { AddColumn(this, _objNewColumn); } } } }
public void AddTab() { PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = new PortalDefinition.Tab(); t.reference = Guid.NewGuid().ToString(); if(CurrentReference == "") // Root Node { pd.tabs.Add(t); } else { PortalDefinition.Tab pt = pd.GetTab(CurrentReference); pt.tabs.Add(t); } pd.Save(); BuildTree(); SelectTab(t.reference); }
public void AddTab() { PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = PortalDefinition.Tab.Create(); if (CurrentReference == "") // Root Node { pd.tabs.Add(t); } else { PortalDefinition.Tab pt = pd.GetTab(CurrentReference); pt.tabs.Add(t); } pd.Save(); BuildTree(); SelectTab(t.reference); }
protected void OnSave(object sender, EventArgs args) { PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = pd.GetTab(CurrentReference); t.title = txtTitle.Text; t.reference = txtReference.Text; t.roles = RolesCtrl.GetData(); CurrentReference = t.reference; pd.Save(); if (Save != null) { Save(this, new EventArgs()); } ShowModulesList(); }
protected void OnSave(object sender, EventArgs args) { if (Page.IsValid) { // Save PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = pd.GetTab(CurrentTabReference); PortalDefinition.Module m = t.GetModule(CurrentReference); m.reference = txtReference.Text; m.title = txtTitle.Text; m.type = cbType.SelectedItem.Value; m.roles = RolesCtrl.GetData(); pd.Save(); if (Save != null) { Save(this, new EventArgs()); } } }
public void LoadData(string tabRef, string moduleRef) { CurrentTabReference = tabRef; CurrentReference = moduleRef; PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = pd.GetTab(CurrentTabReference); PortalDefinition.Module m = t.GetModule(CurrentReference); txtTitle.Text = m.title; txtReference.Text = m.reference; cbType.ClearSelection(); ListItem li = cbType.Items.FindByValue(m.type); if (li != null) { li.Selected = true; } RolesCtrl.LoadData(m.roles); }
/// <summary> /// Add new tab to Portal.config [bacth, 10:11 AM 5/26/2008] /// </summary> /// <param name="tabRef">new tab reference</param> /// <param name="parentTabRef">parent tab reference</param> /// <param name="title">new tab title</param> /// <param name="cloneTabRef">layout tab copied</param> /// <returns></returns> public static bool AddNewTab(string tabRef, string parentTabRef, string title, string cloneTabRef) { //string config1 = HttpContext.Current.Server.MapPath("~/settings/Portal.config"); // current application //string config2 = @"D:\shared\Portal.config"; // synchronous other file PortalDefinition portal = PortalDefinition.Load(); PortalDefinition.Tab newTab = portal.GetTab(tabRef); PortalDefinition.Tab parentTab = portal.GetTab(parentTabRef); if (newTab == null) { // add new tab newTab = PortalDefinition.Tab.Create(); newTab.reference = tabRef; newTab.title = title; parentTab.tabs.Add(newTab); // tab roles PortalDefinition.ViewRole role = new PortalDefinition.ViewRole(); role.name = Portal.API.Config.EveryoneRoles; newTab.roles.Add(role); // tab layout if (!string.IsNullOrEmpty(cloneTabRef)) { PortalDefinition.Tab cloneTab = portal.GetTab(cloneTabRef); if (cloneTab != null) { newTab.Columns = cloneTab.CloneColumns(); foreach (PortalDefinition.Column c in newTab.Columns) { getNewRef(c); } } } } portal.Save(); return(true); }
/// <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"); } }
protected void Page_Load(object sender, System.EventArgs e) { PortalDefinition.Tab currentTab = PortalDefinition.CurrentTab; if (currentTab == null || currentTab.tabs == null) { return; } ArrayList tabList = new ArrayList(); foreach (PortalDefinition.Tab t in currentTab.tabs) { if (UserManagement.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> /// Thủ tục tạo và sắp xếp các cột của một Tab /// </summary> /// <param name="_objCurrentTab">Đối tượng chứa thông tin về Tab hiện thời</param> /// <param name="_arrColumns">Mảng chứa danh sách cột xuất phát</param> /// <param name="_htcContainer">Điều khiển sẽ chứa các cột trong danh sách cột xuất phát</param> private void RenderColumns(PortalDefinition.Tab _objCurrentTab, ArrayList _arrColumns, HtmlTableCell _htcContainer) { // Nếu không có cột nào trong danh sách xuất phát thì kết thúc thủ tục if (_arrColumns == null || _arrColumns.Count == 0) { return; } // Khai báo mảng chứa các bảng dùng để chứa cột ArrayList _arrTableIndexes = new ArrayList(); PortalDefinition.Column _objColumn; SortableHtmlTable _objTable; HtmlTableRow _objTableRow; HtmlTableCell _objCellContainer; // Duyệt danh sách các cột xuất phát for (int _intColumnCount = 0; _intColumnCount < _arrColumns.Count; _intColumnCount++) { // Lấy thông tin về cột đang xét _objColumn = _arrColumns[_intColumnCount] as PortalDefinition.Column; _objTable = null; _objTableRow = null; // Duyệt danh sách các bảng đã tạo // Các cột có cùng cấp độ sẽ nằm cùng một bảng foreach (SortableHtmlTable _tblContainer in _arrTableIndexes) { // Kiểm tra cấp độ của cột đang xét if (_tblContainer.Attributes["level"] == _objColumn.ColumnLevel.ToString()) { // Nếu bảng đang xét có cùng cấp độ với cột đang xét // thì lấy tham chiếu đến bảng và dòng đầu tiên của bảng _objTable = _tblContainer; //_objTableHeaderRow = _tblContainer.Rows[0]; _objTableRow = _tblContainer.Rows[0]; break; } } // Nếu bảng chưa có tham chiếu (cấp độ hiện thời của cột là cấp độ mới (chưa được xét) if (_objTable == null) { // Khởi tạo bảng _objTable = new SortableHtmlTable(); _objTable.CellPadding = 0; _objTable.CellSpacing = 0; _objTable.Border = 0; // Lưu trữ cấp độ của bảng (chứa các cột có cùng cấp độ) _objTable.Attributes.Add("level", _objColumn.ColumnLevel.ToString()); // Tạo dòng chứa tiêu đề các cột //_objTableHeaderRow = new HtmlTableRow(); //_objTable.Rows.Add(_objTableHeaderRow); // Tạo dòng chứa các cột _objTableRow = new HtmlTableRow(); _objTable.Rows.Add(_objTableRow); // Lưu lại bảng đại diện cho cột vào mảng các bảng _arrTableIndexes.Add(_objTable); } // Khởi tạo điều khiển đại diện cho 1 cột _objCellContainer = new HtmlTableCell(); _objCellContainer.VAlign = "top"; _objCellContainer.Attributes.Add("id", "Cell" + _objColumn.ColumnReference.Replace('-', '_')); _objCellContainer.Attributes.Add("class", IsAdmin ? "Portal_Column" : "Portal_NormalColumn"); if (_objColumn.ColumnCustomStyle != null && _objColumn.ColumnCustomStyle != "") { _objCellContainer.Attributes.Add("style", _objColumn.ColumnCustomStyle); } // Kiểm tra xem độ rộng cột có được thiết lập hay không if (_objColumn.ColumnWidth != "") { // Nếu được thiết lập thì xác định thông số width của cột _objCellContainer.Attributes.Add("width", _objColumn.ColumnWidth.ToString()); // Nếu thiết lập là 100%, có nghĩa là chỉ có 1 cột --> bảng chứa cột này cần được để lên 100% if (_objColumn.ColumnWidth == "100%") { _objTable.Attributes.Add("width", "100%"); } } // Thêm TD vừa tạo vào TR của bảng trong danh sách _objTableRow.Cells.Add(_objCellContainer); // Sắp xếp các Module đã được thiết lập cho cột (TD) đang xét RenderModules(_objCellContainer, _objCurrentTab, _objColumn.ModuleList); // Thực hiện sinh mã cho các cột con RenderColumns(_objCurrentTab, _objColumn.Columns, _objCellContainer); } // Thêm danh sách bảng có được vào vùng chứa hiện thời if (_arrTableIndexes != null && _arrTableIndexes.Count > 0) { //try //{ // Sắp xếp lại các cột theo đúng thứ tự Level đã định _arrTableIndexes.Sort(); // Duyệt danh sách các bảng đã tạo ra foreach (HtmlTable _objIndexedTable in _arrTableIndexes) { // Tính lại độ rộng của các cột trong bảng ReCalculateCellsWidth(_objIndexedTable); // Kiểm tra cấp độ của bảng if (Convert.ToInt32(_objIndexedTable.Attributes["level"]) == -1) { // Nếu là cấp độ mặc định (-1) // tức là bảng nằm ở cuối danh sách các điều khiển của cột _htcContainer.Controls.Add(_objIndexedTable); } else { int _intColumnLevel = Convert.ToInt32(_objIndexedTable.Attributes["level"]); // Chèn khung hiển thị vào cột cha đang xét // Kiểm tra vị trí chèn có hợp lệ không (phải chèn vào trong danh sách, không được chèn ra ngoài) if (_htcContainer.Controls.Count > _intColumnLevel) { // Đặt khung vào vị trí đã định _htcContainer.Controls.AddAt(_intColumnLevel, _objIndexedTable); } else { // Nếu vị trí chèn nằm ngoài danh sách thì sử dụng lệnh thêm vào cuối danh sách thay vì chèn _htcContainer.Controls.Add(_objIndexedTable); } } } //} //catch (Exception ex) //{ // Console.WriteLine(ex.Message); // // Nếu có lỗi thì kết thúc thủ tục // return; //} } }
protected override void LoadViewState(object bag) { base.LoadViewState(bag); CurrentTab = Helper.GetEditTab((string)ViewState["CurrentTab"]); }
protected void OnSave(object sender, EventArgs args) { try { if(!Page.IsValid) return; PortalDefinition pd = PortalDefinition.Load(); PortalDefinition.Tab t = CurrentTab; t.title = HttpUtility.HtmlEncode(txtTitle.Text); t.reference = txtReference.Text; t.imgPathInactive = HttpUtility.HtmlEncode(txtImagePathI.Text); t.imgPathActive = HttpUtility.HtmlEncode(txtImagePathA.Text); t.roles = RolesCtrl.GetData(); pd.Save(); CurrentTab = t; if(Save != null) { Save(this, t); } ShowModulesList(); } catch(Exception e) { lbError.Text = e.Message; } }
/// <summary> /// Hàm đưa module vào TD theo ID của TD /// </summary> /// <param name="tdDisplay">Table tổng chứa các TD có các ID cần đưa</param> /// <param name="td_id_module">Các module tương úng với các TD</param> /// <param name="tab">Tab hiện thời</param> private void GenerateModuleToColumn(HtmlTableCell tdDisplay, Dictionary <string, ArrayList> td_id_module, PortalDefinition.Tab tab) { HtmlTableCell td; ArrayList modules; //duyệt qua mảng các ID của TD cần đưa module vào foreach (KeyValuePair <string, ArrayList> td_id in td_id_module) { //tìm ra các TD cần đưa module vào td = tdDisplay.FindControl(td_id.Key) as HtmlTableCell; //lấy ra module tương ứng với ID của TD đó modules = td_id.Value; if (td != null) { //nếu TD đó có chứ module , tức là không phải để chứa cột khác , thì đưa module vào if (modules != null && modules.Count > 0) { RenderModules(td, tab, modules); } } } }
/// <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") //{ // 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 PortalDefinition.Module _objModuleDefinition; ChannelUsers objUser = new ChannelUsers(); // Khởi tạo Module Module _objModuleControl; CachedModule _objCachedModuleControl; for (int _intModuleCount = 0; _intModuleCount < modules.Count; _intModuleCount++) { _objModuleDefinition = modules[_intModuleCount] as PortalDefinition.Module; //DuongNA tạm thời bỏ Kiểm tra người dùng có quyền hiển thị Module hay không //if (objUser.HasViewRights(Page.User, _objModuleDefinition.roles)) { _objModuleControl = null; _objCachedModuleControl = null; // Nạp các thông số về Module _objModuleDefinition.LoadModuleSettings(); //DuongNA tạm thời bỏ trycatch //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) { 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; } //DuongNA tạm thời bỏ Kiểm tra xem Module có được phép hiển thị hay không //if((_objModuleControl != null && _objModuleControl.IsVisible() || (_objCachedModuleControl != null && _objCachedModuleControl.IsVisible()))) { // 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 (_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"); _objCellContainer.VAlign = "top"; 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:0px;"); td.Controls.Add(_objSimpleModuleContainer); } //} } } //catch (Exception e) //{ // Console.WriteLine(e.Message + e.StackTrace); //} } } }
public void LoadData(PortalDefinition.Tab tab) { LoadData(tab.tabs); }
/// <summary> /// Hàm trợ giúp lấy mã của Category trong Tab hiện thời khi người sử dụng chọn xem một Category /// </summary> /// <returns>Mã tham chiếu đến Category hiện thời</returns> public static string GetCurrentCategoryID() { Cache cache = new Cache(HttpContext.Current.Application); // Biến lưu trữ mã của chuyên san hiện thời int _intCurrentCategoryID = 0, _intCurrParent = 0; string _strCurrentTabRef = HttpContext.Current.Request.QueryString["TabRef"]; if (HttpContext.Current.Request.QueryString["RealRef"] != null) { _strCurrentTabRef = HttpContext.Current.Request.QueryString["RealRef"]; } string mrs = Config.GetPortalUniqueCacheKey() + "CurrentCategoryID_" + (_strCurrentTabRef == null ? "" : _strCurrentTabRef); string nrs = Config.GetPortalUniqueCacheKey() + "CurrentParentID_" + (_strCurrentTabRef == null ? "" : _strCurrentTabRef); // Tìm kiếm trong Cache if (cache[mrs] != null && cache[nrs] != null) { _intCurrentCategoryID = (int)cache[mrs]; _intCurrParent = (int)cache[nrs]; } if (_intCurrentCategoryID > 0) { return(_intCurrParent + "," + _intCurrentCategoryID); } // Lấy thông tin về Tab hiện thời PortalDefinition.Tab _objCurrentTab = PortalDefinition.getTabByRef(_strCurrentTabRef);//PortalDefinition.GetCurrentTab(); if (_objCurrentTab != null) { // Lấy mã tham chiếu của Tab string _strTabRef = _objCurrentTab.reference; string _strCategoryRef = "", _strParentRef = ""; // Tìm vị trí dấu chấm cuối int _intLastDotPos = _strTabRef.LastIndexOf('.'); if (_intLastDotPos > 0) { // Cắt lấy phần tên đại diện trên URL của Category _strCategoryRef = _objCurrentTab.reference.Substring(_intLastDotPos + 1); _strParentRef = _objCurrentTab.reference.Substring(0, _intLastDotPos); // Lấy thông tin về Category đã chọn CategoryRow _objCurrentCategory = null; using (MainDB _objDB = new MainDB()) { _objCurrentCategory = _objDB.CategoryCollection.GetRow("Cat_DisplayURL = '" + _strCategoryRef + "'"); } if (_objCurrentCategory != null) { _intCurrentCategoryID = _objCurrentCategory.Cat_ID; _intCurrParent = _objCurrentCategory.Cat_ParentID; } else { _intLastDotPos = _strParentRef.LastIndexOf('.'); _strParentRef = _strParentRef.Substring(_intLastDotPos + 1); using (MainDB _objDB = new MainDB()) { _objCurrentCategory = _objDB.CategoryCollection.GetRow("Cat_DisplayURL = '" + _strParentRef + "'"); } if (_objCurrentCategory != null) { _intCurrentCategoryID = _objCurrentCategory.Cat_ID; _intCurrParent = _objCurrentCategory.Cat_ParentID; } } } } // Lưu mã của chuyên san hiện thời vào Cache cache[mrs] = _intCurrentCategoryID; cache[nrs] = _intCurrParent; // Trả về 0 nếu không tìm thấy Category return(_intCurrParent + "," + _intCurrentCategoryID);//0 }