public XmlNode GetMacro(int Id, string Login, string Password)
		{
		    if (ValidateCredentials(Login, Password)
                && UserHasAppAccess(DefaultApps.developer.ToString(), Login)) 
			{
				var xmlDoc = new XmlDocument();
				var macro = xmlDoc.CreateElement("macro");
				var m = new cms.businesslogic.macro.Macro(Id);
                macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "id", m.Id.ToString()));
                macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "refreshRate", m.RefreshRate.ToString()));
                macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "useInEditor", m.UseInEditor.ToString()));
                macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "alias", m.Alias));
                macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "name", m.Name));
                macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "assembly", m.Assembly));
                macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "type", m.Type));
                macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "xslt", m.Xslt));
				var properties = xmlDoc.CreateElement("properties");
				foreach (var mp in m.Properties) 
				{
					var pXml = xmlDoc.CreateElement("property");
                    pXml.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "alias", mp.Alias));
                    pXml.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "name", mp.Name));
                    pXml.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "public", mp.Public.ToString()));
					properties.AppendChild(pXml);
				}
				macro.AppendChild(properties);
				return macro;
			}
		    return null;
		}
Exemple #2
0
		public XmlNode GetMacro(int Id, string Login, string Password) 
		{
			if (BusinessLogic.User.validateCredentials(Login, Password)) 
			{
				XmlDocument xmlDoc = new XmlDocument();
				XmlElement macro = xmlDoc.CreateElement("macro");
				cms.businesslogic.macro.Macro m = new cms.businesslogic.macro.Macro(Id);
				macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "id", m.Id.ToString()));
				macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "refreshRate", m.RefreshRate.ToString()));
				macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "useInEditor", m.UseInEditor.ToString()));
				macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "alias", m.Alias));
				macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "name", m.Name));
				macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "assembly", m.Assembly));
				macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "type", m.Type));
				macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "xslt", m.Xslt));
				XmlElement Properties = xmlDoc.CreateElement("properties");
				foreach (cms.businesslogic.macro.MacroProperty mp in m.Properties) 
				{
					XmlElement pXml = xmlDoc.CreateElement("property");
					pXml.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "alias", mp.Alias));
					pXml.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "name", mp.Name));
					pXml.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "public", mp.Public.ToString()));
					Properties.AppendChild(pXml);
				}
				macro.AppendChild(Properties);
				return macro;
			} else
				return null;
		}
Exemple #3
0
 public XmlNode GetMacro(int Id, string Login, string Password)
 {
     if (ValidateCredentials(Login, Password) &&
         UserHasAppAccess(DefaultApps.developer.ToString(), Login))
     {
         var xmlDoc = new XmlDocument();
         var macro  = xmlDoc.CreateElement("macro");
         var m      = new cms.businesslogic.macro.Macro(Id);
         macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "id", m.Id.ToString()));
         macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "refreshRate", m.RefreshRate.ToString()));
         macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "useInEditor", m.UseInEditor.ToString()));
         macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "alias", m.Alias));
         macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "name", m.Name));
         macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "assembly", m.Assembly));
         macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "type", m.Type));
         macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "xslt", m.Xslt));
         var properties = xmlDoc.CreateElement("properties");
         foreach (var mp in m.Properties)
         {
             var pXml = xmlDoc.CreateElement("property");
             pXml.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "alias", mp.Alias));
             pXml.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "name", mp.Name));
             pXml.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "public", mp.Public.ToString()));
             properties.AppendChild(pXml);
         }
         macro.AppendChild(properties);
         return(macro);
     }
     return(null);
 }
Exemple #4
0
 public XmlNode GetMacro(int Id, string Login, string Password)
 {
     if (BusinessLogic.User.validateCredentials(Login, Password))
     {
         XmlDocument xmlDoc = new XmlDocument();
         XmlElement  macro  = xmlDoc.CreateElement("macro");
         cms.businesslogic.macro.Macro m = new cms.businesslogic.macro.Macro(Id);
         macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "id", m.Id.ToString()));
         macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "refreshRate", m.RefreshRate.ToString()));
         macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "useInEditor", m.UseInEditor.ToString()));
         macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "alias", m.Alias));
         macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "name", m.Name));
         macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "assembly", m.Assembly));
         macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "type", m.Type));
         macro.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "xslt", m.Xslt));
         XmlElement Properties = xmlDoc.CreateElement("properties");
         foreach (cms.businesslogic.macro.MacroProperty mp in m.Properties)
         {
             XmlElement pXml = xmlDoc.CreateElement("property");
             pXml.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "alias", mp.Alias));
             pXml.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "name", mp.Name));
             pXml.Attributes.Append(xmlHelper.addAttribute(xmlDoc, "public", mp.Public.ToString()));
             Properties.AppendChild(pXml);
         }
         macro.AppendChild(Properties);
         return(macro);
     }
     else
     {
         return(null);
     }
 }
Exemple #5
0
        public static string GetModuleAlias(string Name)
        {
            XmlDocument installed = new XmlDocument();

            installed.Load(IO.IOHelper.MapPath(SystemDirectories.Packages) + "/installed/installedPackages.config");

            XmlNode packageNode = installed.SelectSingleNode(
                string.Format("//package [@name = '{0}']", Name));

            XmlNode macroNode = packageNode.SelectSingleNode(".//macros");

            cms.businesslogic.macro.Macro m = new cms.businesslogic.macro.Macro(Convert.ToInt32(macroNode.InnerText.Split(',')[0]));

            return(m.Alias);
        }
Exemple #6
0
 private void setup()
 {
     using (IRecordsReader dr = SqlHelper.ExecuteReader("select macro, macroPropertyHidden, macroPropertyType, macroPropertySortOrder, macroPropertyAlias, macroPropertyName from cmsMacroProperty where id = @id", SqlHelper.CreateParameter("@id", _id)))
     {
         if (dr.Read())
         {
             m_macro    = new Macro(dr.GetInt("macro"));
             _public    = dr.GetBoolean("macroPropertyHidden");
             _sortOrder = (int)dr.GetByte("macroPropertySortOrder");
             _alias     = dr.GetString("macroPropertyAlias");
             _name      = dr.GetString("macroPropertyName");
             _type      = new MacroPropertyType(dr.GetShort("macroPropertyType"));
         }
         else
         {
             throw new ArgumentException("No macro property found for the id specified");
         }
     }
 }
Exemple #7
0
        protected void renderProperties()
        {
            if (!string.IsNullOrEmpty(Request["macroAlias"]))
            {
                m = cms.businesslogic.macro.Macro.GetByAlias(Request["macroAlias"]);

                String macroAssembly = "";
                String macroType     = "";

                _macroAlias = m.Alias;


                //If no properties, we will exit now...
                if (m.Properties.Length == 0)
                {
                    Literal noProps = new Literal();
                    noProps.Text = "<script type='text/javascript'>updateMacro()</script>";
                    macroProperties.Controls.Add(noProps);
                }
                else
                {
                    //if we have properties, we'll render the controls for them...
                    foreach (cms.businesslogic.macro.MacroProperty mp in m.Properties)
                    {
                        macroAssembly = mp.Type.Assembly;
                        macroType     = mp.Type.Type;
                        try
                        {
                            Assembly assembly = Assembly.LoadFrom(IOHelper.MapPath(SystemDirectories.Bin + "/" + macroAssembly + ".dll"));

                            Type type = assembly.GetType(macroAssembly + "." + macroType);
                            interfaces.IMacroGuiRendering typeInstance = Activator.CreateInstance(type) as interfaces.IMacroGuiRendering;
                            if (typeInstance != null)
                            {
                                Control control = Activator.CreateInstance(type) as Control;
                                control.ID = mp.Alias;

                                if (!IsPostBack)
                                {
                                    if (Request["umb_" + mp.Alias] != null)
                                    {
                                        if (Request["umb_" + mp.Alias] != "")
                                        {
                                            type.GetProperty("Value").SetValue(control, Convert.ChangeType(Request["umb_" + mp.Alias], type.GetProperty("Value").PropertyType), null);
                                        }
                                    }
                                }

                                // register alias
                                uicontrols.PropertyPanel pp = new uicontrols.PropertyPanel();
                                pp.Text = mp.Name;
                                pp.Controls.Add(control);
                                macroProperties.Controls.Add(pp);

                                pp.Controls.Add(new LiteralControl("<script type=\"text/javascript\"> registerAlias('" + control.ClientID + "','" + mp.Alias + "'); </script>\n"));
                            }
                            else
                            {
                                Trace.Warn("umbEditContent", "Type doesn't exist or is not umbraco.interfaces.DataFieldI ('" + macroAssembly + "." + macroType + "')");
                            }
                        }
                        catch (Exception fieldException)
                        {
                            Trace.Warn("umbEditContent", "Error creating type '" + macroAssembly + "." + macroType + "'", fieldException);
                        }
                    }
                }
            }
            else
            {
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            pane_edit.Text   = ui.Text("general", "edit", this.getUser()) + " " + ui.Text("general", "macro", this.getUser());
            pane_insert.Text = ui.Text("general", "insert", this.getUser()) + " " + ui.Text("general", "macro", this.getUser());

            if (Request["macroID"] != null || Request["macroAlias"] != null)
            {
                // Put user code to initialize the page here
                cms.businesslogic.macro.Macro m;
                if (helper.Request("macroID") != "")
                {
                    m = new cms.businesslogic.macro.Macro(int.Parse(helper.Request("macroID")));
                }
                else
                {
                    m = cms.businesslogic.macro.Macro.GetByAlias(helper.Request("macroAlias"));
                }

                foreach (var mp in m.Properties)
                {
                    var macroAssembly = mp.Type.Assembly;
                    var macroType     = mp.Type.Type;
                    try
                    {
                        var assembly = Assembly.LoadFrom(IOHelper.MapPath(SystemDirectories.Bin + "/" + macroAssembly + ".dll"));

                        Type type         = assembly.GetType(macroAssembly + "." + macroType);
                        var  typeInstance = Activator.CreateInstance(type) as interfaces.IMacroGuiRendering;
                        if (typeInstance != null)
                        {
                            var control = Activator.CreateInstance(type) as Control;
                            control.ID = mp.Alias;
                            if (Request[mp.Alias] != null)
                            {
                                if (Request[mp.Alias] != "")
                                {
                                    type.GetProperty("Value").SetValue(control, Convert.ChangeType(Request[mp.Alias], type.GetProperty("Value").PropertyType), null);
                                }
                            }

                            // register alias
                            var pp = new uicontrols.PropertyPanel();
                            pp.Text = mp.Name;
                            pp.Controls.Add(control);

                            macroProperties.Controls.Add(pp);

                            /*
                             *                          macroProperties.Controls.Add(new LiteralControl("<script>\nregisterAlias('" + control.ID + "');\n</script>"));
                             *                          macroProperties.Controls.Add(new LiteralControl("<tr><td class=\"propertyHeader\">" + mp.Name + "</td><td class=\"propertyContent\">"));
                             *                          macroProperties.Controls.Add(control);
                             *                          macroProperties.Controls.Add(new LiteralControl("</td></tr>"));
                             */
                        }
                        else
                        {
                            Trace.Warn("umbEditContent", "Type doesn't exist or is not umbraco.interfaces.DataFieldI ('" + macroAssembly + "." + macroType + "')");
                        }
                    }
                    catch (Exception fieldException)
                    {
                        Trace.Warn("umbEditContent", "Error creating type '" + macroAssembly + "." + macroType + "'", fieldException);
                    }
                }
            }
            else
            {
                IRecordsReader macroRenderings;
                if (helper.Request("editor") != "")
                {
                    const string query = "select macroAlias, macroName from cmsMacro where macroUseInEditor = 1 order by macroName";
                    using (var sqlHelper = BusinessLogic.Application.SqlHelper)
                        using (var renderings = sqlHelper.ExecuteReader(query))
                            macroRenderings = renderings;
                }
                else
                {
                    const string query = "select macroAlias, macroName from cmsMacro order by macroName";
                    using (var sqlHelper = BusinessLogic.Application.SqlHelper)
                        using (var renderings = sqlHelper.ExecuteReader(query))
                            macroRenderings = renderings;
                }

                macroAlias.DataSource     = macroRenderings;
                macroAlias.DataValueField = "macroAlias";
                macroAlias.DataTextField  = "macroName";
                macroAlias.DataBind();
                macroRenderings.Close();
            }
        }
Exemple #9
0
 private void setup()
 {
     using (IRecordsReader dr = SqlHelper.ExecuteReader("select macro, macroPropertyHidden, macroPropertyType, macroPropertySortOrder, macroPropertyAlias, macroPropertyName from cmsMacroProperty where id = @id", SqlHelper.CreateParameter("@id", _id)))
     {
         if (dr.Read())
         {
             m_macro = new Macro(dr.GetInt("macro"));
             _public = dr.GetBoolean("macroPropertyHidden");
             _sortOrder = (int)dr.GetByte("macroPropertySortOrder");
             _alias = dr.GetString("macroPropertyAlias");
             _name = dr.GetString("macroPropertyName");
             _type = new MacroPropertyType(dr.GetShort("macroPropertyType"));
         }
         else
         {
             throw new ArgumentException("No macro property found for the id specified");
         }
     }
 }
		protected void Page_Load(object sender, EventArgs e)
		{
            pane_edit.Text = ui.Text("general", "edit",this.getUser()) + " " + ui.Text("general", "macro",this.getUser());
            pane_insert.Text = ui.Text("general", "insert",this.getUser()) + " " + ui.Text("general", "macro",this.getUser());

			if (Request["macroID"] != null || Request["macroAlias"] != null) 
			{
				// Put user code to initialize the page here
				cms.businesslogic.macro.Macro m;
				if (helper.Request("macroID") != "")
					m = new cms.businesslogic.macro.Macro(int.Parse(helper.Request("macroID")));
				else
					m = cms.businesslogic.macro.Macro.GetByAlias(helper.Request("macroAlias"));

			    foreach (var mp in m.Properties) {
		
					var macroAssembly = mp.Type.Assembly;
					var macroType = mp.Type.Type;
					try 
					{

                        var assembly = Assembly.LoadFrom( IOHelper.MapPath(SystemDirectories.Bin + "/" + macroAssembly + ".dll"));

						Type type = assembly.GetType(macroAssembly+"."+macroType);
						var typeInstance = Activator.CreateInstance(type) as interfaces.IMacroGuiRendering;
						if (typeInstance != null) 
						{
							var control = Activator.CreateInstance(type) as Control;	
							control.ID = mp.Alias;
							if (Request[mp.Alias] != null) 
							{
								if (Request[mp.Alias] != "") 
								{
									type.GetProperty("Value").SetValue(control, Convert.ChangeType(Request[mp.Alias], type.GetProperty("Value").PropertyType), null);
								}
							}

							// register alias
                            var pp = new uicontrols.PropertyPanel();
                            pp.Text = mp.Name;
                            pp.Controls.Add(control);

                            macroProperties.Controls.Add(pp);

                            /*
							macroProperties.Controls.Add(new LiteralControl("<script>\nregisterAlias('" + control.ID + "');\n</script>"));
							macroProperties.Controls.Add(new LiteralControl("<tr><td class=\"propertyHeader\">" + mp.Name + "</td><td class=\"propertyContent\">"));
							macroProperties.Controls.Add(control);
							macroProperties.Controls.Add(new LiteralControl("</td></tr>"));
                            */
						} 
						else 
						{						
							Trace.Warn("umbEditContent", "Type doesn't exist or is not umbraco.interfaces.DataFieldI ('" + macroAssembly + "." + macroType + "')");
						}

					} 
					catch (Exception fieldException)
					{
						Trace.Warn("umbEditContent", "Error creating type '" + macroAssembly + "." + macroType + "'", fieldException);
					}
				}
			} 
			else 
			{
				IRecordsReader macroRenderings;
				if (helper.Request("editor") != "")
					macroRenderings = SqlHelper.ExecuteReader("select macroAlias, macroName from cmsMacro where macroUseInEditor = 1 order by macroName");
				else
					macroRenderings = SqlHelper.ExecuteReader("select macroAlias, macroName from cmsMacro order by macroName");
				
				macroAlias.DataSource = macroRenderings;
				macroAlias.DataValueField = "macroAlias";
				macroAlias.DataTextField = "macroName";
				macroAlias.DataBind();
				macroRenderings.Close();

			}

		}
        protected void renderProperties()
        {
            if (!string.IsNullOrEmpty(Request["macroAlias"]))
            {

                m = cms.businesslogic.macro.Macro.GetByAlias(Request["macroAlias"]);

                String macroAssembly = "";
                String macroType = "";

                _macroAlias = m.Alias;

                //If no properties, we will exit now...
                if (m.Properties.Length == 0)
                {
                    Literal noProps = new Literal();
                    noProps.Text = "<script type='text/javascript'>updateMacro()</script>";
                    macroProperties.Controls.Add(noProps);
                }
                else
                {
                    //if we have properties, we'll render the controls for them...
                    foreach (cms.businesslogic.macro.MacroProperty mp in m.Properties)
                    {
                        macroAssembly = mp.Type.Assembly;
                        macroType = mp.Type.Type;
                        try
                        {

                            Assembly assembly = Assembly.LoadFrom(IOHelper.MapPath(SystemDirectories.Bin + "/" + macroAssembly + ".dll"));

                            Type type = assembly.GetType(macroAssembly + "." + macroType);
                            interfaces.IMacroGuiRendering typeInstance = Activator.CreateInstance(type) as interfaces.IMacroGuiRendering;
                            if (typeInstance != null)
                            {
                                Control control = Activator.CreateInstance(type) as Control;
                                control.ID = mp.Alias;

                                if (!IsPostBack)
                                {
                                    if (Request["umb_" + mp.Alias] != null)
                                    {
                                        if (Request["umb_" + mp.Alias] != "")
                                        {
                                            type.GetProperty("Value").SetValue(control, Convert.ChangeType(Request["umb_" + mp.Alias], type.GetProperty("Value").PropertyType), null);
                                        }
                                    }
                                }

                                // register alias
                                uicontrols.PropertyPanel pp = new uicontrols.PropertyPanel();
                                pp.Text = mp.Name;
                                pp.Controls.Add(control);
                                macroProperties.Controls.Add(pp);

                                pp.Controls.Add(new LiteralControl("<script type=\"text/javascript\"> registerAlias('" + control.ClientID + "','" + mp.Alias + "'); </script>\n"));

                            }
                            else
                            {
                                Trace.Warn("umbEditContent", "Type doesn't exist or is not umbraco.interfaces.DataFieldI ('" + macroAssembly + "." + macroType + "')");
                            }

                        }
                        catch (Exception fieldException)
                        {
                            Trace.Warn("umbEditContent", "Error creating type '" + macroAssembly + "." + macroType + "'", fieldException);
                        }
                    }
                }
            }
            else
            {

            }
        }
Exemple #12
0
        private void AskForProperties(string alias)
        {
            pl_edit.Visible   = true;
            pl_insert.Visible = false;

            MacroObject = cms.businesslogic.macro.Macro.GetByAlias(alias);

            _macroAlias = MacroObject.Alias;


            //If no properties, we will exit now...
            if (MacroObject.Properties.Length == 0)
            {
                //var noProps = new Literal();
                //noProps.Text = "<script type='text/javascript'>Umbraco.Dialogs.EditMacro.getInstance().updateMacro()</script>";
                //macroProperties.Controls.Add(noProps);
            }
            else
            {
                //if we have properties, we'll render the controls for them...
                foreach (cms.businesslogic.macro.MacroProperty mp in MacroObject.Properties)
                {
                    var macroAssembly = mp.Type.Assembly;
                    var macroType     = mp.Type.Type;
                    try
                    {
                        Assembly assembly = Assembly.LoadFrom(IOHelper.MapPath(SystemDirectories.Bin + "/" + macroAssembly + ".dll"));

                        Type type         = assembly.GetType(macroAssembly + "." + macroType);
                        var  typeInstance = Activator.CreateInstance(type) as interfaces.IMacroGuiRendering;
                        if (typeInstance != null)
                        {
                            var control = Activator.CreateInstance(type) as Control;
                            control.ID = mp.Alias;

                            if (!IsPostBack)
                            {
                                if (Request["umb_" + mp.Alias] != null)
                                {
                                    if (Request["umb_" + mp.Alias] != "")
                                    {
                                        type.GetProperty("Value").SetValue(control, Convert.ChangeType(Request["umb_" + mp.Alias], type.GetProperty("Value").PropertyType), null);
                                    }
                                }
                            }

                            // register alias
                            var pp = new umbraco.uicontrols.PropertyPanel();
                            pp.Text = mp.Name;
                            pp.Controls.Add(control);
                            macroProperties.Controls.Add(pp);

                            pp.Controls.Add(new LiteralControl("<script type=\"text/javascript\">Umbraco.Dialogs.EditMacro.getInstance().registerAlias('" + control.ClientID + "','" + mp.Alias + "'); </script>\n"));
                        }
                        else
                        {
                            Trace.Warn("umbEditContent", "Type doesn't exist or is not umbraco.interfaces.DataFieldI ('" + macroAssembly + "." + macroType + "')");
                        }
                    }
                    catch (Exception fieldException)
                    {
                        Trace.Warn("umbEditContent", "Error creating type '" + macroAssembly + "." + macroType + "'", fieldException);
                    }
                }
            }
        }
		private void AskForProperties(string alias)
		{
			pl_edit.Visible = true;
			pl_insert.Visible = false;

			MacroObject = cms.businesslogic.macro.Macro.GetByAlias(alias);

			_macroAlias = MacroObject.Alias;


			//If no properties, we will exit now...
			if (MacroObject.Properties.Length == 0)
			{
				//var noProps = new Literal();
				//noProps.Text = "<script type='text/javascript'>Umbraco.Dialogs.EditMacro.getInstance().updateMacro()</script>";
				//macroProperties.Controls.Add(noProps);
			}
			else
			{
				//if we have properties, we'll render the controls for them...
				foreach (cms.businesslogic.macro.MacroProperty mp in MacroObject.Properties)
				{
					var macroAssembly = mp.Type.Assembly;
					var macroType = mp.Type.Type;
					try
					{

						Assembly assembly = Assembly.LoadFrom(IOHelper.MapPath(SystemDirectories.Bin + "/" + macroAssembly + ".dll"));

						Type type = assembly.GetType(macroAssembly + "." + macroType);
						var typeInstance = Activator.CreateInstance(type) as interfaces.IMacroGuiRendering;
						if (typeInstance != null)
						{
							var control = Activator.CreateInstance(type) as Control;
							control.ID = mp.Alias;

							if (!IsPostBack)
							{
								if (Request["umb_" + mp.Alias] != null)
								{
									if (Request["umb_" + mp.Alias] != "")
									{
										type.GetProperty("Value").SetValue(control, Convert.ChangeType(Request["umb_" + mp.Alias], type.GetProperty("Value").PropertyType), null);
									}
								}
							}

							// register alias
							var pp = new umbraco.uicontrols.PropertyPanel();
							pp.Text = mp.Name;
							pp.Controls.Add(control);
							macroProperties.Controls.Add(pp);

							pp.Controls.Add(new LiteralControl("<script type=\"text/javascript\">Umbraco.Dialogs.EditMacro.getInstance().registerAlias('" + control.ClientID + "','" + mp.Alias + "'); </script>\n"));



						}
						else
						{
							Trace.Warn("umbEditContent", "Type doesn't exist or is not umbraco.interfaces.DataFieldI ('" + macroAssembly + "." + macroType + "')");
						}

					}
					catch (Exception fieldException)
					{
						Trace.Warn("umbEditContent", "Error creating type '" + macroAssembly + "." + macroType + "'", fieldException);
					}
				}
			}
		}
Exemple #14
0
        public static string GetModuleAlias(string Name)
        {
            XmlDocument installed = new XmlDocument();
            installed.Load(IO.IOHelper.MapPath(SystemDirectories.Packages) + "/installed/installedPackages.config");

            XmlNode packageNode = installed.SelectSingleNode(
                string.Format("//package [@name = '{0}']", Name));

            XmlNode macroNode = packageNode.SelectSingleNode(".//macros");

            cms.businesslogic.macro.Macro m = new cms.businesslogic.macro.Macro(Convert.ToInt32(macroNode.InnerText.Split(',')[0]));

            return m.Alias;
        }