private static RenderingDefinition CreateRenderingNode(RenderingSettings setting)
        {
            RenderingDefinition definition = new RenderingDefinition();

             definition.ItemID = setting.ID;
             definition.UniqueId = ID.NewID.ToString();
             definition.Placeholder = setting.PlaceholderName;

             StringBuilder parametrs = new StringBuilder();

             string settingsName;
             if (mappingNameParamerts.TryGetValue(setting.ID, out settingsName) &&
             setting.ViewItemPath != null && setting.ViewItemPath != string.Empty)
             {
            parametrs.Append(settingsName).Append("=");
            parametrs.Append(setting.ViewItemPath);
            parametrs.Append("&");
             }

             parametrs.Append(siteSettingsPathName).Append("=");
             parametrs.Append(setting.SiteSettingsPath);
             parametrs.ToString();

             definition.Parameters = parametrs.ToString();
             return definition;
        }
        private void AddRendering(string databaseName, RenderingSettings settings)
        {
            if (StaticSettings.IsStarterKit && settings.ID == HtmlHeaderRenderingID)
             {
            return;
             }

             if (settings.ViewItemPath == null || settings.ViewItemPath == string.Empty ||
             StaticSettings.MasterDatabase.GetItem(settings.ViewItemPath) == null)
             {
            string value;
            if (mappingRenderings.TryGetValue(settings.ID, out value))
            {
               settings.ViewItemPath = value;
            }
             }

             if (settings.SiteSettingsPath == null || settings.SiteSettingsPath == string.Empty ||
             StaticSettings.MasterDatabase.GetItem(settings.SiteSettingsPath) == null)
             {
            settings.SiteSettingsPath = ModuleSettingsRoot;
             }

             ListItem child = new ListItem();

             child.ID = Control.GetUniqueID("I");
             ListRenderings.Controls.Add(child);

             Item item = Factory.GetDatabase(databaseName).Items[settings.ID];

             child.Value = child.ID + "|" + settings.ID;
             child.Header = item.DisplayName;

             mappingSettings.Add(child.Value, settings);
        }
        private void LoadRenderingsNode()
        {
            Item item = SelectedItem;

                 if (item.Fields[FieldIDs.LayoutField] != null)
             {
                     LayoutDefinition layout =
                                 ExistMethodInLayoutField("GetFieldValue") ?
                                 LayoutDefinition.Parse(InvokeGetFieldValueMethod(item.Fields[FieldIDs.LayoutField]).ToString()) :
                                 LayoutDefinition.Parse(item.Fields[FieldIDs.LayoutField].Value);

                     DeviceDefinition device = layout.GetDevice(StaticSettings.DefaultDeviceID.ToString());

            if (device != null)
            {
               foreach (RenderingDefinition node in device.Renderings)
               {
                  if (!(StaticSettings.IsStarterKit && node.ItemID == HtmlHeaderRenderingID))
                  {
                                        if (ContainRenderingsID(node.ItemID))
                     {
                        string settingsName;
                        if (!mappingNameParamerts.TryGetValue(node.ItemID, out settingsName))
                        {
                           settingsName = viewSettingsPathName;
                        }

                        NameValueCollection values = node.Parameters != null
                                                        ? WebUtil.ParseUrlParameters(node.Parameters, '&')
                                                        : null;
                        var setting =
                           new RenderingSettings(node.ItemID,
                                                 values == null ? string.Empty : values[settingsName],
                                                 node.Placeholder,
                                                 values == null ? string.Empty : values[siteSettingsPathName]);
                        AddRendering(WebUtil.GetQueryString("db"), setting);
                     }
                  }
               }
            }
             }
        }