private void editModule(string recordId) { var obj = new PigeonCms.ModuleType(); LblOk.Text = ""; LblErr.Text = ""; clearForm(); base.CurrentKey = recordId; obj = new ModuleTypeManager().GetByFullName(base.CurrentKey); obj2form(obj); MultiView1.ActiveViewIndex = (int)ViewIndex.EditModule; }
/// <summary> /// loads the right params list for current module /// </summary> /// <param name="moduleId"></param> public void LoadParams(Module currentModule) { PigeonCms.ModuleType modType = null; PigeonCms.ModuleType viewType = null; try { modType = currentModule.ModuleType; } catch (Exception ex) { Tracer.Log("LoadParams(): error loading module params", TracerItemType.Error, ex); } TxtCssFile.Text = currentModule.CssFile; TxtCssClass.Text = currentModule.CssClass; TxtSystemMessagesTo.Text = currentModule.SystemMessagesTo; Utility.SetDropByValue(DropUseCache, ((int)currentModule.UseCache).ToString()); Utility.SetDropByValue(DropUseLog, ((int)currentModule.UseLog).ToString()); ChkDirectEditMode.Checked = currentModule.DirectEditMode; ChkDirectEditMode.Enabled = true; if (!modType.AllowDirectEditMode) { ChkDirectEditMode.Enabled = false; } List<ResLabel> labelsList; //localized labels for module params labelsList = LabelsProvider.GetLabelsByResourceSet(currentModule.ModuleFullName); if (!string.IsNullOrEmpty(currentModule.CurrView)) { //loads current view specific params viewType = new ModuleTypeManager().GetByFullName( currentModule.ModuleFullName, currentModule.CurrView.Replace(".ascx", ".xml")); } //clear previous params list while (PanelParams.Controls.Count > 0) { PanelParams.Controls.RemoveAt(0); } FormBuilder.RenderParamsOnPanel(PanelParams, currentModule.Params, modType.Params, labelsList); if (viewType != null) FormBuilder.RenderParamsOnPanel(PanelParams, currentModule.Params, viewType.Params, labelsList); }
private void loadDropsModuleTypes() { try { DropModuleTypesFilter.Items.Clear(); DropModuleTypesFilter.Items.Add(new ListItem(Utility.GetLabel("LblSelectModule", "Select module"), "")); ModuleTypeFilter filter = new ModuleTypeFilter(); List<ModuleType> recordList = new ModuleTypeManager(true).GetByFilter(filter, "FullName"); foreach (ModuleType record1 in recordList) { DropModuleTypesFilter.Items.Add( new ListItem(record1.FullName, record1.FullName)); } } catch (Exception ex) { LblErr.Text = ex.ToString(); } }
/// <summary> /// install additional components (modules, themes, etc) /// </summary> /// <param name="sourceFolder"> /// absolute path of source folder ex:c:\..\..\..\installation\tmp\modulename /// with unpacked installation files and folders /// </param> public static void Install(string sourceFolder) { DbProviderFactory myProv = Database.ProviderFactory; DbTransaction myTrans = null; DbConnection myConn = myProv.CreateConnection(); DbDataReader myRd = null; DbCommand myCmd = myConn.CreateCommand(); string sqlQuery = ""; ; ModuleType moduleType = new ModuleType(); try { moduleType = new ModuleTypeManager().GetByPath(sourceFolder, "install.xml"); //execute sql install if (moduleType.InstallQueries.Count > 0) { try { myConn.ConnectionString = Database.ConnString; myConn.Open(); myCmd.Connection = myConn; myTrans = myConn.BeginTransaction(); myCmd.Transaction = myTrans; foreach (string query in moduleType.InstallQueries) { sqlQuery += Database.ParseSql(query); } Database.ExecuteQuery(myRd, myCmd, sqlQuery); } catch (Exception ex) { myTrans.Rollback(); throw ex; } finally { myTrans.Dispose(); myConn.Dispose(); } } string currFolder; string destFolder; //code folder currFolder = Path.Combine(sourceFolder, "_install\\code"); destFolder = HttpContext.Current.Request.MapPath("~/App_Code/modules/"+ moduleType.FullName); if (Directory.Exists(currFolder)) Utility.CopyFolder(currFolder, destFolder); //admin folder currFolder = Path.Combine(sourceFolder, "_install\\admin"); destFolder = HttpContext.Current.Request.MapPath("~/Admin/" + moduleType.FullName); if (Directory.Exists(currFolder)) Utility.CopyFolder(currFolder, destFolder); //module folders currFolder = Path.Combine(sourceFolder, ""); destFolder = HttpContext.Current.Request.MapPath("~/Modules/" + moduleType.FullName); if (Directory.Exists(currFolder)) Utility.CopyFolder(currFolder, destFolder); } catch (Exception e) { PigeonCms.Tracer.Log("Error installing " + sourceFolder + ": " + e.ToString(), TracerItemType.Error); throw e; } finally { } }
private void loadDropsModuleTypes() { try { DropNewItem.Items.Clear(); DropNewItem.Items.Add(new ListItem( PigeonCms.Utility.GetLabel("LblCreateNew", "Create new"), "")); DropModuleTypes.Items.Clear(); DropModuleTypesFilter.Items.Clear(); DropModuleTypesFilter.Items.Add(new ListItem(Utility.GetLabel("LblSelectModule", "Select module"), "")); //add all content type except .Module foreach (string item in Enum.GetNames(typeof(PigeonCms.MenuContentType))) { int value = (int)Enum.Parse(typeof(PigeonCms.MenuContentType), item); if (value != (int)PigeonCms.MenuContentType.Module) { DropNewItem.Items.Add( new ListItem(item, value.ToString())); DropModuleTypes.Items.Add( new ListItem(item, value.ToString())); } } //add all installed modules in list //ModuleTypeFilter filter = new ModuleTypeFilter(); //List<ModuleType> recordList = new ModuleTypeManager().GetByFilter(filter, "FullName"); Dictionary<string, string> recordList = new ModuleTypeManager(true).GetList(); foreach (var record1 in recordList) { DropNewItem.Items.Add( new ListItem(record1.Key, record1.Value)); DropModuleTypes.Items.Add( new ListItem(record1.Key, record1.Value)); DropModuleTypesFilter.Items.Add( new ListItem(record1.Key, record1.Value)); //new ListItem(record1.FullName, record1.FullName) } } catch (Exception ex) { LitErr.Text = RenderError(ex.ToString()); } }
private bool form2module(PigeonCms.Menu menu, Module currModule) { bool res = true; int dropValue = -1; if (int.TryParse(DropModuleTypes.SelectedValue, out dropValue)) { res = false; } else { currModule.ModuleNamespace = DropModuleTypes.SelectedItem.Text.Split('.')[0]; currModule.ModuleName = DropModuleTypes.SelectedItem.Text.Split('.')[1]; currModule.ModuleParams = FormBuilder.GetParamsString(currModule.ModuleType.Params, ModuleParams1); if (!string.IsNullOrEmpty(currModule.CurrView)) { //loads current view specific params PigeonCms.ModuleType viewType = null; viewType = new ModuleTypeManager().GetByFullName( currModule.ModuleFullName, currModule.CurrView.Replace(".ascx", ".xml")); if (viewType != null) currModule.ModuleParams += "|" + FormBuilder.GetParamsString(viewType.Params, ModuleParams1); } currModule.TitleTranslations = menu.TitleTranslations; currModule.ShowTitle = ChkShowModuleTitle.Checked; currModule.TemplateBlockName = ModuleHelper.ContentTemplateBlock; currModule.MenuSelection = ModulesMenuSelection.MenuContent; currModule.CurrView = DropViews.SelectedValue; currModule.CssFile = ModuleParams1.CssFile; currModule.CssClass = ModuleParams1.CssClass; currModule.UseCache = ModuleParams1.UseCache; currModule.UseLog = ModuleParams1.UseLog; currModule.DirectEditMode = ModuleParams1.DirectEditMode; currModule.SystemMessagesTo = ModuleParams1.SystemMessagesTo; } return res; }
private void form2obj(Module obj) { obj.Id = base.CurrentId; obj.Content = TxtContent.Text; obj.Published = ChkPublished.Checked; obj.ShowTitle = ChkShowTitle.Checked; obj.IsCore = ChkIsCore.Checked; obj.TemplateBlockName = DropTemplateBlockName.SelectedValue; obj.MenuSelection = ModulesMenuSelection.NoPages; //default obj.ModulesMenu.Clear(); obj.ModulesMenuTypes.Clear(); if (base.CurrentId == 0) { obj.ModuleNamespace = LitModuleType.Text.Split('.')[0]; obj.ModuleName = LitModuleType.Text.Split('.')[1]; } if (RadioMenuAll.Checked) obj.MenuSelection = ModulesMenuSelection.AllPages; else if (RadioMenuNone.Checked) obj.MenuSelection = ModulesMenuSelection.NoPages; else { obj.MenuSelection = ModulesMenuSelection.List; foreach (ListItem item in ListMenu.Items) { if (item.Selected) { int menuId = 0; if (int.TryParse(item.Value, out menuId)) obj.ModulesMenu.Add(menuId); else obj.ModulesMenuTypes.Add(item.Value); } } } obj.TitleTranslations.Clear(); foreach (KeyValuePair<string, string> item in Config.CultureList) { TextBox t1 = new TextBox(); t1 = (TextBox)PanelTitle.FindControl("TxtTitle" + item.Value); obj.TitleTranslations.Add(item.Key, t1.Text); } int ordering = 0; int.TryParse(DropOrdering.SelectedValue, out ordering); obj.Ordering = ordering; obj.CurrView = DropViews.SelectedValue; obj.CssFile = ModuleParams1.CssFile; obj.CssClass = ModuleParams1.CssClass; obj.UseCache = ModuleParams1.UseCache; obj.UseLog = ModuleParams1.UseLog; obj.DirectEditMode = ModuleParams1.DirectEditMode; obj.SystemMessagesTo = ModuleParams1.SystemMessagesTo; obj.ModuleParams = FormBuilder.GetParamsString(obj.ModuleType.Params, ModuleParams1); if (!string.IsNullOrEmpty(obj.CurrView)) { //loads current view specific params PigeonCms.ModuleType viewType = null; viewType = new ModuleTypeManager().GetByFullName( obj.ModuleFullName, obj.CurrView.Replace(".ascx", ".xml")); if (viewType != null) obj.ModuleParams += "|" + FormBuilder.GetParamsString(viewType.Params, ModuleParams1); } PermissionsControl1.Form2obj(obj); }