示例#1
0
        public static object[] AddNewModule(string type, string pageid, string containername, int sortorder)
        {
            string Url = HttpContext.Current.Request.UrlReferrer.ToString();

            BaseService.CheckLoginAndLicense();
            //volgende waardes terug geven:
            //1. De inhoud gewrapt met module toolbar,
            //2: de specifieke javascripts
            //3: de moduleID
            object[]   returnValue = new object[3];
            BaseModule module      = null;

            type          = type.Replace("bitModule", "");
            containername = containername.Replace("bitContainer", "");

            module = ModuleLoader.Load(type);
            if (module != null)
            {
                module.Name = type;
                module.Site = SessionObject.CurrentSite;
                //module.Page = new CmsPage();
                //module.Page.ID = new Guid(pageid);
                if (Url.ToLower().Contains("/newsletters"))
                {
                    module.Newsletter    = new Newsletter();
                    module.Newsletter.ID = new Guid(pageid);
                }
                else
                {
                    module.Page    = new CmsPage();
                    module.Page.ID = new Guid(pageid);
                }
                module.ContainerName  = containername;
                module.OrderingNumber = sortorder;
                module.Content        = module.FirstContentSample;
                module.Settings.Add("UseCkeditor", true);
                //WORK ARROUND SETTINGS WILLEN NIET OPSLAAN.
                module.SettingsJsonString = module.Settings.ToJsonString();
                module.Save();


                //SetUnpublishedItem(module);

                returnValue[1] = module.IncludeScripts;
                returnValue[2] = module.ID.ToString();
                //moet naar container
                //updateOrderingNumber
                //alleen degene ophalen met een groter nummer dan sortorder
                string where = String.Format("FK_PAGE = '{0}' And ContainerName='{1}' AND OrderingNumber > {2}", pageid, containername, sortorder);
                BaseCollection <BaseModule> modules = BaseCollection <BaseModule> .Get(where);

                foreach (BaseModule mod in modules)
                {
                    mod.OrderingNumber++;
                    mod.Save();
                }
            }
            module.ForceReloadTags(); //De tags zijn al gegenereerd, maar dit is gebeurd voor het opslaan van de module. Hierdoor hebben de tags geen geldig control ID. Forceer hergeneratie van de tags. Dit is alleen bij nieuwe modules nodig.
            PublishModule(module);
            //Na toevoegen nieuwe ook pagina updaten
            PublishDependentPages(module);

            returnValue[0] = new ModuleService().GetUserControlContent(module);

            return(returnValue);
        }