public void InstallContent(Module module, string configInfo)
 {
     foreach (var node in mysettings)
     {
         ModuleSettings.UpdateModuleSetting(module.ModuleGuid, module.ModuleId, node.Key, node.Value);
     }
 }
예제 #2
0
        private void LoadSettings()
        {
            moduleSettings = ModuleSettings.GetModuleSettings(moduleId);
            config = new BlogConfiguration(moduleSettings);

            blogModule = GetModule(moduleId, Blog.FeatureGuid);

            postList.ModuleId = moduleId;
            postList.PageId = pageId;
            postList.DisplayMode = "ByMonth";
            postList.IsEditable = UserCanEditModule(moduleId, Blog.FeatureGuid);
            postList.Config = config;
            postList.SiteRoot = SiteRoot;
            postList.ImageSiteRoot = ImageSiteRoot;

            if (config.InstanceCssClass.Length > 0) { pnlOuterWrap.SetOrAppendCss(config.InstanceCssClass); }

            LoadSideContent(config.ShowLeftContent, config.ShowRightContent);
            LoadAltContent(BlogConfiguration.ShowTopContent, BlogConfiguration.ShowBottomContent);

            if ((CurrentPage != null) && (CurrentPage.BodyCssClass.Length > 0))
            {
                AddClassToBody(CurrentPage.BodyCssClass);
            }

            AddClassToBody("blogviewarchive");

            if (BlogConfiguration.UseNoIndexFollowMetaOnLists)
            {
                SiteUtils.AddNoIndexFollowMeta(Page);
            }
        }
        public void InstallContent(Module module, string configInfo)
        {
            if (string.IsNullOrEmpty(configInfo)) { return; }

            XmlDocument xml = new XmlDocument();

            using (StreamReader stream = File.OpenText(HostingEnvironment.MapPath(configInfo)))
            {
                xml.LoadXml(stream.ReadToEnd());
            }

            foreach (XmlNode node in xml.DocumentElement.ChildNodes)
            {
                if (node.Name == "moduleSetting")
                {
                    XmlAttributeCollection settingAttributes = node.Attributes;

                    if ((settingAttributes["settingKey"] != null) && (settingAttributes["settingKey"].Value.Length > 0))
                    {
                        string key = settingAttributes["settingKey"].Value;
                        string val = string.Empty;
                        if (settingAttributes["settingValue"] != null)
                        {
                            val = settingAttributes["settingValue"].Value;
                        }

                        ModuleSettings.UpdateModuleSetting(module.ModuleGuid, module.ModuleId, key, val);
                    }
                }
            }
        }
예제 #4
0
        private void AddModulePart()
        {
            String moduleIDString = Request.Params.Get("addmpart");
            Module module         = new Module(int.Parse(moduleIDString));

            //TODO: we could support filtering by module.ViewRoles
            if (module.AvailableForMyPage)
            {
                SiteModuleControl siteModule = Page.LoadControl("~/" + module.ControlSource) as SiteModuleControl;
                if (siteModule != null)
                {
                    siteModule.SiteId = siteSettings.SiteId;
                    siteModule.ID     = "module" + module.ModuleId.ToString();

                    siteModule.ModuleConfiguration = module;
                    siteModule.RenderInWebPartMode = true;

                    WebPart webPart = WebPartManager1.CreateWebPart(siteModule);

                    siteModule.ModuleId = module.ModuleId;
                    Module.UpdateCountOfUseOnMyPage(module.ModuleId, 1);

                    mojoWebPartManager mojoManager = (mojoWebPartManager)this.WebPartManager1;
                    mojoManager.AddWebPart(webPart, this.CenterWebPartZone, 0);
                    mojoManager.SetDirty();
                }
            }
        }
예제 #5
0
        protected void btnCreateNewContent_Click(object sender, EventArgs e)
        {
            Page.Validate("contentcatalog");
            if (!Page.IsValid) { return; }

            int moduleDefID = int.Parse(ddModuleType.SelectedItem.Value, CultureInfo.InvariantCulture);
            ModuleDefinition moduleDefinition = new ModuleDefinition(moduleDefID);

            Module module = new Module();
            module.ModuleTitle = this.txtModuleTitle.Text;
            module.ModuleDefId = moduleDefID;
            module.FeatureGuid = moduleDefinition.FeatureGuid;
            module.Icon = moduleDefinition.Icon;
            module.SiteId = siteSettings.SiteId;
            module.SiteGuid = siteSettings.SiteGuid;
            module.CreatedByUserId = SiteUtils.GetCurrentSiteUser().UserId;
            module.CacheTime = moduleDefinition.DefaultCacheTime;
            module.ShowTitle = WebConfigSettings.ShowModuleTitlesByDefault;
            module.HeadElement = WebConfigSettings.ModuleTitleTag;
            module.Save();
            WebUtils.SetupRedirect(this, SiteRoot
                + "/Admin/ContentManagerPreview.aspx?mid="
                + module.ModuleId.ToInvariantString()
                );
        }
예제 #6
0
        void btnSave_Click(object sender, EventArgs e)
        {
            Module m = new Module(moduleId);

            string newPath = basePath + txtFolderName.Text;
            try
            {
                if (!Directory.Exists(Server.MapPath(newPath)))
                {
                    lblError.Text = FolderGalleryResources.FolderGalleryFolderNotExistsMessage;
                    return;
                }
            }
            catch (HttpException)
            {
                //thrown at Server.MapPath if the path is not a valid virtual path
                txtFolderName.Text = string.Empty;
                lblError.Text = FolderGalleryResources.FolderGalleryFolderNotExistsMessage;
                return;

            }

            ModuleSettings.UpdateModuleSetting(
                m.ModuleGuid,
                m.ModuleId,
                "FolderGalleryRootFolder",
                newPath);

            WebUtils.SetupRedirect(this, SiteUtils.GetCurrentPageUrl());
        }
예제 #7
0
        private void LoadSettings()
        {
            moduleId = WebUtils.ParseInt32FromQueryString("mid", moduleId);
            pageId = WebUtils.ParseInt32FromQueryString("pageid", pageId);
            module = GetModule(moduleId, Forum.FeatureGuid);
            settings = ModuleSettings.GetModuleSettings(moduleId);
            config = new ForumConfiguration(settings);

            forumList.Config = config;
            forumList.ModuleId = moduleId;
            forumList.PageId = pageId;
            forumList.SiteRoot = SiteRoot;
            forumList.ImageSiteRoot = ImageSiteRoot;
            //forumList.IsEditable = IsEditable;

            forumListAlt.Config = config;
            forumListAlt.ModuleId = moduleId;
            forumListAlt.PageId = pageId;
            forumListAlt.SiteRoot = SiteRoot;
            forumListAlt.ImageSiteRoot = ImageSiteRoot;
            //forumListAlt.IsEditable = IsEditable;

            if (displaySettings.UseAltForumList)
            {
                forumList.Visible = false;
                forumListAlt.Visible = true;
            }

            AddClassToBody("editforumsubscriptions");
        }
        public override void DeleteContent(int moduleId, Guid moduleGuid)
        {
            if (GalleryConfiguration.DeleteImagesWhenModuleIsDeleted)
            {
                Module m = new Module(moduleId);
                DeleteImages(m.SiteId, moduleId);
            }

            Gallery.DeleteByModule(moduleId);
        }
예제 #9
0
        public override WebPart GetWebPart(WebPartDescription description)
        {
            SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings();

            if (siteSettings == null)
            {
                return(null);
            }

            WebPart webPart = null;

            if (description.ID.Length == 36)
            {
                Guid           webPartID      = new Guid(description.ID);
                WebPartContent webPartContent = new WebPartContent(webPartID);
                if (webPartContent.WebPartId != Guid.Empty)
                {
                    if (HttpContext.Current != null)
                    {
                        String path = HttpContext.Current.Server.MapPath("~/bin")
                                      + Path.DirectorySeparatorChar + webPartContent.AssemblyName + ".dll";
                        Assembly assembly = Assembly.LoadFrom(path);
                        Type     type     = assembly.GetType(webPartContent.ClassName, true, true);
                        object   obj      = Activator.CreateInstance(type);
                        if (obj != null)
                        {
                            webPart = (WebPart)obj;
                            WebPartContent.UpdateCountOfUseOnMyPage(webPartContent.WebPartId, 1);
                        }
                    }
                }
            }
            else
            {
                mojoPortal.Business.Module module = new mojoPortal.Business.Module(int.Parse(description.ID));

                SiteModuleControl siteModule = Page.LoadControl("~/" + module.ControlSource) as SiteModuleControl;
                if (siteModule != null)
                {
                    siteModule.SiteId = siteSettings.SiteId;
                    siteModule.ID     = "module" + module.ModuleId.ToString(CultureInfo.InvariantCulture);

                    siteModule.ModuleConfiguration = module;
                    siteModule.RenderInWebPartMode = true;

                    webPart = WebPartManager.CreateWebPart(siteModule);


                    siteModule.ModuleId = module.ModuleId;
                    mojoPortal.Business.Module.UpdateCountOfUseOnMyPage(module.ModuleId, 1);
                }
            }

            return(webPart);
        }
예제 #10
0
        private void LoadSettings()
        {
            pageId = WebUtils.ParseInt32FromQueryString("pageid", pageId);
            moduleId = WebUtils.ParseInt32FromQueryString("mid", moduleId);
            itemId = WebUtils.ParseInt32FromQueryString("ItemID", itemId);
            commentGuid = WebUtils.ParseGuidFromQueryString("c", commentGuid);
            if (commentGuid == Guid.Empty) { return; }

            blog = new Blog(itemId);
            module = GetModule(moduleId, Blog.FeatureGuid);
            commentRepository = new CommentRepository();

            if (blog.ModuleId != module.ModuleId)
            {
                blog = null;
                module = null;
                return;
            }

            comment = commentRepository.Fetch(commentGuid);
            if ((comment.ContentGuid != blog.BlogGuid)||(comment.ModuleGuid != module.ModuleGuid))
            {
                blog = null;
                module = null;
                return;
            }

            moduleSettings = ModuleSettings.GetModuleSettings(moduleId);

            config = new BlogConfiguration(moduleSettings);

            currentUser = SiteUtils.GetCurrentSiteUser();

            userCanEdit = UserCanEditComment();

            commentEditor.SiteGuid = CurrentSite.SiteGuid;
            commentEditor.SiteId = CurrentSite.SiteId;
            commentEditor.SiteRoot = SiteRoot;
            commentEditor.CommentsClosed = false;
            //commentEditor.CommentUrl = Request.RawUrl;
            commentEditor.ContentGuid = blog.BlogGuid;
            //commentEditor.DefaultCommentTitle = defaultCommentTitle;
            commentEditor.FeatureGuid = Blog.FeatureGuid;
            commentEditor.ModuleGuid = module.ModuleGuid;
            //commentEditor.NotificationAddresses = notificationAddresses;
            //commentEditor.NotificationTemplateName = notificationTemplateName;
            commentEditor.RequireCaptcha = false;
            commentEditor.UserCanModerate = userCanEdit;
            //commentEditor.Visible = !commentsClosed;
            commentEditor.CurrentUser = currentUser;
            commentEditor.UserComment = comment;
            commentEditor.ShowRememberMe = false;
            //commentEditor.IncludeIpAddressInNotification = includeIpAddressInNotification;
            //commentEditor.ContainerControl = this;
        }
        public void InstallContent(Module module, string configInfo)
        {
            if (string.IsNullOrEmpty(configInfo)) { return; }

            string basePath = "~/Data/Sites/" + module.SiteId.ToInvariantString() + "/media/FolderGalleries/";

            if(!Directory.Exists(HostingEnvironment.MapPath(basePath)))
            {
                Directory.CreateDirectory(HostingEnvironment.MapPath(basePath));
            }

            IOHelper.CopyFolderContents(HostingEnvironment.MapPath(configInfo), HostingEnvironment.MapPath(basePath));
        }
예제 #12
0
        private void LoadSettings()
        {
            module = GetModule(moduleId, Link.FeatureGuid);
            moduleSettings = ModuleSettings.GetModuleSettings(moduleId);
            config = new ListConfiguration(moduleSettings);

            theList.Config = config;
            theList.PageId = pageId;
            theList.ModuleId = moduleId;
            theList.IsEditable = UserCanEditModule(moduleId, Link.FeatureGuid);
            theList.SiteRoot = SiteRoot;
            theList.ImageSiteRoot = ImageSiteRoot;

            AddClassToBody("listviewlist");
        }
예제 #13
0
        private void LoadSettings()
        {
            timeOffset     = SiteUtils.GetUserTimeOffset();
            timeZone       = SiteUtils.GetUserTimeZone();
            pageId         = WebUtils.ParseInt32FromQueryString("pageid", pageId);
            moduleId       = WebUtils.ParseInt32FromQueryString("mid", moduleId);
            moduleSettings = ModuleSettings.GetModuleSettings(moduleId);

            if (moduleSettings.Contains("ResultBarColor"))
            {
                resultBarColor = moduleSettings["ResultBarColor"].ToString();
            }

            currentModule = GetModule(moduleId, Poll.FeatureGuid);
            currentPoll   = new Poll(moduleId);

            AddClassToBody("pollchoose");
        }
예제 #14
0
        private Module GetHtmlModule()
        {
            if (CurrentSite == null) { return null; }

            Module m = GetModule(moduleId, HtmlContent.FeatureGuid);
            if (m != null) { return m; }

            // these extra checks allow for editing an html instance from modulewrapper
            m = new Module(moduleId);
            if (
                (m.FeatureGuid != HtmlContent.FeatureGuid)
                || (m.SiteId != CurrentSite.SiteId)
                || (m.ModuleId == -1)
                || ((!WebUser.IsInRoles(m.AuthorizedEditRoles)) && (!UserIsAdmin) && (!UserIsContentAdmin) && (!UserIsSiteEditor))
                )
            { m = null; }

            return m;
        }
        public void InstallContent(Module module, string configInfo)
        {
            if (string.IsNullOrEmpty(configInfo)) { return; }

            string basePath = "~/Data/Sites/" + module.SiteId.ToInvariantString() + "/media/";

            if (!Directory.Exists(HostingEnvironment.MapPath(basePath)))
            {
                Directory.CreateDirectory(HostingEnvironment.MapPath(basePath));
            }

            basePath = "~/Data/Sites/" + module.SiteId.ToInvariantString() + "/media/GalleryImages/";

            if (!Directory.Exists(HostingEnvironment.MapPath(basePath)))
            {
                Directory.CreateDirectory(HostingEnvironment.MapPath(basePath));
            }

            basePath = "~/Data/Sites/" + module.SiteId.ToInvariantString() + "/media/GalleryImages/" + module.ModuleId.ToInvariantString() + "/";

            if (!Directory.Exists(HostingEnvironment.MapPath(basePath)))
            {
                Directory.CreateDirectory(HostingEnvironment.MapPath(basePath));
            }

            IOHelper.CopyFolderContents(HostingEnvironment.MapPath(configInfo), HostingEnvironment.MapPath(basePath));

            basePath = "~/Data/Sites/" + module.SiteId.ToInvariantString() + "/media/GalleryImages/" + module.ModuleId.ToInvariantString() + "/FullSizeImages/";

            string[] files = Directory.GetFiles(HostingEnvironment.MapPath(basePath));
            foreach (string file in files)
            {
                GalleryImage img = new GalleryImage();
                img.ModuleGuid = module.ModuleGuid;
                img.ModuleId = module.ModuleId;
                img.ImageFile = Path.GetFileName(file);
                img.ThumbnailFile = img.ImageFile;
                img.WebImageFile = img.ImageFile;
                img.Save();
            }
        }
예제 #16
0
        private void PopulateControls()
        {
            //Title = SiteUtils.FormatPageTitle(siteSettings, calendarEvent.Title);

            //if (!UserCanEditModule(moduleId, CalendarEvent.FeatureGuid))
            //{
            //    this.lnkNewEvent.Visible = false;

            //}

            if (moduleId > -1)
            {
                Module module = new Module(moduleId);
                //this.litDate.Text = module.ModuleTitle + " " + this.theDate.ToShortDateString();
                heading.Text = module.ModuleTitle + " " + this.theDate.ToShortDateString();

                Title = SiteUtils.FormatPageTitle(siteSettings, heading.Text);

                if (UserCanEditModule(moduleId, CalendarEvent.FeatureGuid))
                {
                    heading.LiteralExtraMarkup = "<a href='" + SiteRoot + "/EventCalendar/EditEvent.aspx?"
                        + "mid=" + moduleId.ToInvariantString()
                        + "&date=" + Server.UrlEncode(this.theDate.ToString("s"))
                        + "&pageid=" + CurrentPage.PageId.ToInvariantString() + "' class='ModuleEditLink'>" + EventCalResources.EventCalendarAddEventLabel + "</a>";
                }

                //lnkNewEvent.HRef = SiteRoot + "/EventCalendar/EditEvent.aspx?"
                //    + "mid=" + moduleId.ToInvariantString()
                //    + "&date=" + Server.UrlEncode(this.theDate.ToString("s"))
                //    + "&pageid=" + CurrentPage.PageId.ToInvariantString();

                //lnkNewEvent.InnerHtml = Resources.EventCalResources.EventCalendarAddEventLabel;

                DataSet ds = CalendarEvent.GetEvents(this.moduleId, theDate, theDate);
                //				DataView dv = ds.Tables[0].DefaultView;
                //				dv.Sort = "StartTime ASC ";
                this.rptEvents.DataSource = ds;
                this.rptEvents.DataBind();

            }
        }
예제 #17
0
        public void InstallContent(Module module, string configInfo)
        {
            HtmlContent htmlContent = new HtmlContent();
            htmlContent.ModuleId = module.ModuleId;
            if (configInfo.StartsWith("~/"))
            {
                if (File.Exists(HostingEnvironment.MapPath(configInfo)))
                {
                    htmlContent.Body = File.ReadAllText(HostingEnvironment.MapPath(configInfo), Encoding.UTF8);
                }
            }
            else
            {
                htmlContent.Body = ResourceHelper.GetMessageTemplate(CultureInfo.CurrentUICulture, configInfo);
            }

            htmlContent.ModuleGuid = module.ModuleGuid;

            SiteSettings siteSettings = new SiteSettings(module.SiteId);
            SiteUser adminUser = null;
            if (siteSettings.UseEmailForLogin)
            {
                adminUser = new SiteUser(siteSettings, "*****@*****.**");
                if (adminUser.UserId == -1) { adminUser = null; }
            }
            else
            {
                adminUser = new SiteUser(siteSettings, "admin");
                if (adminUser.UserId == -1) { adminUser = null; }
            }

            if (adminUser != null)
            {
                htmlContent.UserGuid = adminUser.UserGuid;
                htmlContent.LastModUserGuid = adminUser.UserGuid;
            }

            HtmlRepository repository = new HtmlRepository();
            repository.Save(htmlContent);
        }
예제 #18
0
        private void LoadParams()
        {
            pageId = WebUtils.ParseInt32FromQueryString("pageid", pageId);
            moduleId = WebUtils.ParseInt32FromQueryString("mid", moduleId);
            categoryId = WebUtils.ParseInt32FromQueryString("cat", categoryId);
            blogModule = GetModule(moduleId, Blog.FeatureGuid);

            // an experiment with ASP.NET routing

            //if (Page.RouteData.Values["category"] != null)
            //{
            //    categoryId = Convert.ToInt32(Page.RouteData.Values["category"]);
            //}

            //if (Page.RouteData.Values["pageid"] != null)
            //{
            //    pageId = Convert.ToInt32(Page.RouteData.Values["pageid"]);
            //}

            //if (Page.RouteData.Values["moduleid"] != null)
            //{
            //    moduleId = Convert.ToInt32(Page.RouteData.Values["moduleid"]);
            //}
        }
예제 #19
0
        private void Initialize()
        {
            if (HttpContext.Current == null) { return; }

            siteModule = GetParentAsSiteModelControl(this);

            bool useTextLinksForFeatureSettings = true;
            mojoBasePage basePage = Page as mojoBasePage;
            if (basePage != null)
            {
                useTextLinksForFeatureSettings = basePage.UseTextLinksForFeatureSettings;
            }

            if (siteModule != null)
            {
                module = siteModule.ModuleConfiguration;
                CanEdit = siteModule.IsEditable;
                enableWorkflow = siteModule.EnableWorkflow;
                forbidModuleSettings = siteModule.ForbidModuleSettings;

            }

            if (module != null)
            {
                headingTag = module.HeadElement;
                if (module.ShowTitle)
                {
                    litModuleTitle.Text = Page.Server.HtmlEncode(module.ModuleTitle);
                }
                else
                {
                    useHeading = false;
                }

                if (CanEdit)
                {

                    if (!disabledModuleSettingsLink)
                    {
                        lnkModuleSettings.Visible = true;
                        lnkModuleSettings.Text = Resource.SettingsLink;
                        lnkModuleSettings.ToolTip = Resource.ModuleEditSettings;

                        if (!useTextLinksForFeatureSettings)
                        {
                            lnkModuleSettings.ImageUrl = Page.ResolveUrl("~/Data/SiteImages/" + WebConfigSettings.EditPropertiesImage);
                        }
                        else
                        {
                            // if its a text link make it small like the edit link
                            lnkModuleSettings.CssClass = "ModuleEditLink";
                        }

                        siteRoot = SiteUtils.GetNavigationSiteRoot();

                        lnkModuleSettings.NavigateUrl = siteRoot
                            + "/Admin/ModuleSettings.aspx?mid=" + module.ModuleId.ToInvariantString()
                            + "&pageid=" + module.PageId.ToInvariantString();

                        if ((enableWorkflow) && (siteModule != null) && (siteModule is IWorkflow))
                        {
                            SetupWorkflowControls();

                        }

                    }

                }

                if (
                    ((CanEdit) || (ShowEditLinkOverride))
                    && ((EditText != null) && (editUrl.Length > 0)))
                {

                    lnkModuleEdit.Text = EditText;
                    if (this.ToolTip.Length > 0)
                    {
                        lnkModuleEdit.ToolTip = this.ToolTip;
                    }
                    else
                    {
                        lnkModuleEdit.ToolTip = EditText;
                    }
                    lnkModuleEdit.NavigateUrl = EditUrl
                         + (EditUrl.Contains("?") ? "&" : "?")
                         + "mid=" + module.ModuleId.ToInvariantString()
                         + "&pageid=" + module.PageId.ToInvariantString();

                    if (!useTextLinksForFeatureSettings)
                    {
                        lnkModuleEdit.ImageUrl = Page.ResolveUrl("~/Data/SiteImages/" + WebConfigSettings.EditContentImage);
                    }

                }

            }
        }
예제 #20
0
        void btnFreeCheckout_Click(object sender, EventArgs e)
        {
            if (cart.OrderTotal > 0)
            {
                WebUtils.SetupRedirect(this, Request.RawUrl);
                return;
            }

            cart.LastUserActivity = DateTime.UtcNow;
            cart.OrderInfo.CompletedFromIP = SiteUtils.GetIP4Address();
            cart.OrderInfo.Completed = DateTime.UtcNow;
            StoreHelper.EnsureUserForOrder(cart);
            cart.Save();

            Order order = Order.CreateOrder(
                store,
                cart,
                string.Empty,
                string.Empty,
                string.Empty,
                siteSettings.GetCurrency().Code,
                "NoCharge",
                OrderStatus.OrderStatusFulfillableGuid);

            StoreHelper.ClearCartCookie(cart.StoreGuid);

            // send confirmation email
            try
            {
                StoreHelper.ConfirmOrder(store, order);
                Module m = new Module(store.ModuleId);
                Order.EnsureSalesReportData(m.ModuleGuid, pageId, moduleId);
            }
            catch (Exception ex)
            {
                log.Error("error sending confirmation email", ex);
            }

            // redirect to order details
            string redirectUrl = SiteRoot +
                "/WebStore/OrderDetail.aspx?pageid="
                + pageId.ToInvariantString()
                + "&mid=" + moduleId.ToInvariantString()
                + "&orderid=" + order.OrderGuid.ToString();

            WebUtils.SetupRedirect(this, redirectUrl);
        }
예제 #21
0
        private void LoadSettings()
        {
            module = new Module(moduleId);
            workInProgress = ContentWorkflow.GetWorkInProgress(module.ModuleGuid);

            AddClassToBody("administration");
            AddClassToBody("wfadmin");
        }
예제 #22
0
        public static void CreatePage(SiteSettings siteSettings, ContentPage contentPage, PageSettings parentPage)
        {
            PageSettings pageSettings = new PageSettings();
            pageSettings.PageGuid = Guid.NewGuid();

            if (parentPage != null)
            {
                pageSettings.ParentGuid = parentPage.PageGuid;
                pageSettings.ParentId = parentPage.PageId;
            }

            pageSettings.SiteId = siteSettings.SiteId;
            pageSettings.SiteGuid = siteSettings.SiteGuid;
            pageSettings.AuthorizedRoles = contentPage.VisibleToRoles;
            pageSettings.EditRoles = contentPage.EditRoles;
            pageSettings.DraftEditOnlyRoles = contentPage.DraftEditRoles;
            pageSettings.CreateChildPageRoles = contentPage.CreateChildPageRoles;
            pageSettings.MenuImage = contentPage.MenuImage;
            pageSettings.PageMetaKeyWords = contentPage.PageMetaKeyWords;
            pageSettings.PageMetaDescription = contentPage.PageMetaDescription;

            CultureInfo uiCulture = Thread.CurrentThread.CurrentUICulture;
            if (WebConfigSettings.UseCultureOverride)
            {
                uiCulture = SiteUtils.GetDefaultUICulture(siteSettings.SiteId);
            }

            if (contentPage.ResourceFile.Length > 0)
            {
                pageSettings.PageName = ResourceHelper.GetResourceString(contentPage.ResourceFile, contentPage.Name, uiCulture, false);
                if (contentPage.Title.Length > 0)
                {
                    pageSettings.PageTitle = ResourceHelper.GetResourceString(contentPage.ResourceFile, contentPage.Title, uiCulture, false);
                }
            }
            else
            {
                pageSettings.PageName = contentPage.Name;
                pageSettings.PageTitle = contentPage.Title;
            }

            pageSettings.PageOrder = contentPage.PageOrder;
            pageSettings.Url = contentPage.Url;
            pageSettings.RequireSsl = contentPage.RequireSsl;
            pageSettings.ShowBreadcrumbs = contentPage.ShowBreadcrumbs;

            pageSettings.BodyCssClass = contentPage.BodyCssClass;
            pageSettings.MenuCssClass = contentPage.MenuCssClass;
            pageSettings.IncludeInMenu = contentPage.IncludeInMenu;
            pageSettings.IsClickable = contentPage.IsClickable;
            pageSettings.IncludeInSiteMap = contentPage.IncludeInSiteMap;
            pageSettings.IncludeInChildSiteMap = contentPage.IncludeInChildPagesSiteMap;
            pageSettings.AllowBrowserCache = contentPage.AllowBrowserCaching;
            pageSettings.ShowChildPageBreadcrumbs = contentPage.ShowChildPageBreadcrumbs;
            pageSettings.ShowHomeCrumb = contentPage.ShowHomeCrumb;
            pageSettings.ShowChildPageMenu = contentPage.ShowChildPagesSiteMap;
            pageSettings.HideAfterLogin = contentPage.HideFromAuthenticated;
            pageSettings.EnableComments = contentPage.EnableComments;

            pageSettings.Save();

            if (!FriendlyUrl.Exists(siteSettings.SiteId, pageSettings.Url))
            {
                if (!WebPageInfo.IsPhysicalWebPage(pageSettings.Url))
                {
                    FriendlyUrl friendlyUrl = new FriendlyUrl();
                    friendlyUrl.SiteId = siteSettings.SiteId;
                    friendlyUrl.SiteGuid = siteSettings.SiteGuid;
                    friendlyUrl.PageGuid = pageSettings.PageGuid;
                    friendlyUrl.Url = pageSettings.Url.Replace("~/", string.Empty);
                    friendlyUrl.RealUrl = "~/Default.aspx?pageid=" + pageSettings.PageId.ToInvariantString();
                    friendlyUrl.Save();
                }
            }

            foreach (ContentPageItem pageItem in contentPage.PageItems)
            {

                // tni-20130624: moduleGuidxxxx handling
                Guid moduleGuid2Use = Guid.Empty;
                bool updateModule = false;

                Module findModule = null;

                if (pageItem.ModuleGuidToPublish != Guid.Empty)
                {
                    Module existingModule = new Module(pageItem.ModuleGuidToPublish);
                    if (existingModule.ModuleGuid == pageItem.ModuleGuidToPublish && existingModule.SiteId == siteSettings.SiteId)
                    {
                        Module.Publish(pageSettings.PageGuid, existingModule.ModuleGuid, existingModule.ModuleId, pageSettings.PageId,
                            pageItem.Location, pageItem.SortOrder, DateTime.UtcNow, DateTime.MinValue);

                        // tni: I assume there's nothing else to do now so let's go to the next content...
                        continue;
                    }
                }
                else if (pageItem.ModuleGuid != Guid.Empty)
                {
                    findModule = new Module(pageItem.ModuleGuid);
                    if (findModule.ModuleGuid == Guid.Empty)
                    {
                        // Module does not exist, we can create new one with the specified Guid
                        moduleGuid2Use = pageItem.ModuleGuid;
                    }

                    if (findModule.ModuleGuid == pageItem.ModuleGuid && findModule.SiteId == siteSettings.SiteId)
                    {
                        // The module already exist, we'll update existing one
                        updateModule = true;
                        moduleGuid2Use = findModule.ModuleGuid;
                    }
                }
                //

                ModuleDefinition moduleDef = new ModuleDefinition(pageItem.FeatureGuid);

                // this only adds if its not already there
                try
                {
                    SiteSettings.AddFeature(siteSettings.SiteGuid, pageItem.FeatureGuid);
                }
                catch (Exception ex)
                {
                    log.Error(ex);
                }

                if (moduleDef.ModuleDefId > -1)
                {

                    Module module = null;
                    if (updateModule && (findModule != null))
                    {
                        module = findModule;
                    }
                    else
                    {
                        module = new Module();
                        module.ModuleGuid = moduleGuid2Use;
                    }

                    module.SiteId = siteSettings.SiteId;
                    module.SiteGuid = siteSettings.SiteGuid;
                    module.PageId = pageSettings.PageId;
                    module.ModuleDefId = moduleDef.ModuleDefId;
                    module.FeatureGuid = moduleDef.FeatureGuid;
                    module.PaneName = pageItem.Location;
                    if (contentPage.ResourceFile.Length > 0)
                    {
                        module.ModuleTitle
                            = ResourceHelper.GetResourceString(contentPage.ResourceFile, pageItem.ContentTitle, uiCulture, false);
                    }
                    else
                    {
                        module.ModuleTitle = pageItem.ContentTitle;
                    }
                    module.ModuleOrder = pageItem.SortOrder;
                    module.CacheTime = pageItem.CacheTimeInSeconds;
                    module.Icon = moduleDef.Icon;
                    module.ShowTitle = pageItem.ShowTitle;
                    module.AuthorizedEditRoles = pageItem.EditRoles;
                    module.DraftEditRoles = pageItem.DraftEditRoles;
                    module.ViewRoles = pageItem.ViewRoles;
                    module.IsGlobal = pageItem.IsGlobal;
                    module.HeadElement = pageItem.HeadElement;
                    module.HideFromAuthenticated = pageItem.HideFromAuthenticated;
                    module.HideFromUnauthenticated = pageItem.HideFromAnonymous;

                    module.Save();

                    if ((pageItem.Installer != null) && (pageItem.ConfigInfo.Length > 0))
                    {
                        //this is the newer implementation for populating feature content
                        pageItem.Installer.InstallContent(module, pageItem.ConfigInfo);
                    }
                    else
                    {
                        // legacy implementation for backward compatibility
                        if (
                            (pageItem.FeatureGuid == HtmlContent.FeatureGuid)
                            && (pageItem.ContentTemplate.EndsWith(".config"))
                            )
                        {
                            HtmlContent htmlContent = new HtmlContent();
                            htmlContent.ModuleId = module.ModuleId;
                            htmlContent.Body = ResourceHelper.GetMessageTemplate(uiCulture, pageItem.ContentTemplate);
                            htmlContent.ModuleGuid = module.ModuleGuid;
                            HtmlRepository repository = new HtmlRepository();
                            repository.Save(htmlContent);

                        }
                    }

                    // tni-20130624: handling module settings
                    foreach (KeyValuePair<string, string> item in pageItem.ModuleSettings)
                    {
                        ModuleSettings.UpdateModuleSetting(module.ModuleGuid, module.ModuleId, item.Key, item.Value);
                    }

                }
            }

            foreach (ContentPage childPage in contentPage.ChildPages)
            {
                CreatePage(siteSettings, childPage, pageSettings);
            }
        }
예제 #23
0
        private void SelectModule(Module m, string paneName)
        {
            ListBox listbox = null;
            switch (paneName.ToLower())
            {
                case "leftpane":
                    listbox = leftPane;
                    break;

                case "rightpane":
                    listbox = rightPane;
                    break;

                case "contentpane":
                    listbox = contentPane;
                    break;

                case "altcontent1":
                    listbox = lbAltContent1;
                    break;

                case "altcontent2":
                    listbox = lbAltContent2;
                    break;

            }

            if (listbox != null)
            {
                ListItem item = listbox.Items.FindByValue(m.ModuleId.ToInvariantString());
                if (item != null)
                {
                    listbox.ClearSelection();
                    item.Selected = true;
                }

            }
        }
예제 #24
0
        private void LoadSettings()
        {
            siteSettings = CacheHelper.GetCurrentSiteSettings();
            store = new Store(siteSettings.SiteGuid, moduleId);
            Settings = ModuleSettings.GetModuleSettings(moduleId);
            module = GetModule(moduleId);

            lnkCart.PageID = pageId;
            lnkCart.ModuleID = moduleId;

            enableRatingsInProductList = WebUtils.ParseBoolFromHashtable(
                Settings, "EnableContentRatingInProductListSetting", enableRatingsInProductList);

            enableRatingComments = WebUtils.ParseBoolFromHashtable(
                Settings, "EnableRatingCommentsSetting", enableRatingComments);

            productList1.Store = store;
            productList1.PageId = pageId;
            productList1.ModuleId = moduleId;
            productList1.SiteRoot = SiteRoot;
            productList1.CurrencyCulture = currencyCulture;
            productList1.EnableRatings = enableRatingsInProductList;
            productList1.EnableRatingComments = enableRatingComments;
            productList1.Settings = Settings;

            AddClassToBody("webstore webstoreproductlist");

            if (WebStoreConfiguration.UseNoIndexFollowMetaOnLists)
            {
                SiteUtils.AddNoIndexFollowMeta(Page);
            }
        }
예제 #25
0
        private void btnCreateNewContent_Click(Object sender, EventArgs e)
        {
            Page.Validate("pagelayout");
            if (!Page.IsValid) { return; }

            int moduleDefID = int.Parse(moduleType.SelectedItem.Value);
            ModuleDefinition moduleDefinition = new ModuleDefinition(moduleDefID);

            Module m = new Module();
            m.SiteId = siteSettings.SiteId;
            m.SiteGuid = siteSettings.SiteGuid;
            m.ModuleDefId = moduleDefID;
            m.FeatureGuid = moduleDefinition.FeatureGuid;
            m.Icon = moduleDefinition.Icon;
            m.CacheTime = moduleDefinition.DefaultCacheTime;
            m.PageId = pageID;
            m.ModuleTitle = moduleTitle.Text;
            m.PaneName = ddPaneNames.SelectedValue;
            //m.AuthorizedEditRoles = "Admins";
            SiteUser currentUser = SiteUtils.GetCurrentSiteUser();
            if (currentUser != null)
            {
                m.CreatedByUserId = currentUser.UserId;
            }
            m.ShowTitle = WebConfigSettings.ShowModuleTitlesByDefault;
            m.HeadElement = WebConfigSettings.ModuleTitleTag;
            m.Save();

            CurrentPage.RefreshModules();

            ArrayList modules = GetPaneModules(m.PaneName);
            OrderModules(modules);

            foreach (Module item in modules)
            {
                Module.UpdateModuleOrder(pageID, item.ModuleId, item.ModuleOrder, m.PaneName);
            }

            //WebUtils.SetupRedirect(this, Request.RawUrl);
            //return;

            CurrentPage.RefreshModules();
            BindPanes();
            upLayout.Update();
        }
예제 #26
0
        private void DeleteBtn_Click(Object sender, ImageClickEventArgs e)
        {
            if (sender == null) return;

            string pane = ((ImageButton)sender).CommandArgument;
            ListBox listbox = (ListBox) this.MPContent.FindControl(pane);

            if (listbox.SelectedIndex != -1)
            {

                int mid = Int32.Parse(listbox.SelectedItem.Value);

                Module m = new Module(mid);

                if (WebConfigSettings.LogIpAddressForContentDeletions)
                {
                    string userName = string.Empty;
                    SiteUser currentUser = SiteUtils.GetCurrentSiteUser();
                    if (currentUser != null)
                    {
                        userName = currentUser.Name;
                    }

                    log.Info("user " + userName + " removed module " + m.ModuleTitle + " from page " + CurrentPage.PageName + " from ip address " + SiteUtils.GetIP4Address());

                }

                Module.DeleteModuleInstance(mid, pageID);
                mojoPortal.SearchIndex.IndexHelper.RebuildPageIndexAsync(new PageSettings(siteSettings.SiteId, pageID));

            }

            globalContentCount = Module.GetGlobalCount(siteSettings.SiteId, -1, pageID);
            //lnkContentLookup.Visible = ((globalContentCount > 0) && !WebConfigSettings.DisableGlobalContent);
            lnkGlobalContent.Visible = ((globalContentCount > 0) && !WebConfigSettings.DisableGlobalContent);
            CurrentPage.RefreshModules();
            BindPanes();
            upLayout.Update();
        }
예제 #27
0
        void btnAddExisting_Click(object sender, ImageClickEventArgs e)
        {
            int moduleId = -1;
            if (int.TryParse(hdnModuleID.Value, out moduleId))
            {
                Module m = new Module(moduleId);
                if (m.SiteId == siteSettings.SiteId)
                {
                    Module.Publish(
                        CurrentPage.PageGuid,
                        m.ModuleGuid,
                        m.ModuleId,
                        CurrentPage.PageId,
                        ddPaneNames.SelectedValue,
                        999,
                        DateTime.UtcNow,
                        DateTime.MinValue);

                    globalContentCount = Module.GetGlobalCount(siteSettings.SiteId, -1, pageID);
                   // lnkContentLookup.Visible = ((globalContentCount > 0) && !WebConfigSettings.DisableGlobalContent);
                    lnkGlobalContent.Visible = ((globalContentCount > 0) && !WebConfigSettings.DisableGlobalContent);

                    CurrentPage.RefreshModules();

                    ArrayList modules = GetPaneModules(m.PaneName);
                    OrderModules(modules);

                    foreach (Module item in modules)
                    {
                        Module.UpdateModuleOrder(pageID, item.ModuleId, item.ModuleOrder, m.PaneName);
                    }

                    CurrentPage.RefreshModules();

                    if (m.IncludeInSearch)
                    {
                        mojoPortal.SearchIndex.IndexHelper.RebuildPageIndexAsync(CurrentPage);
                    }

                    BindPanes();
                    upLayout.Update();
                }

            }
        }
예제 #28
0
        public static Store GetStore()
        {
            int pageId = WebUtils.ParseInt32FromQueryString("pageid", -1);
            int moduleId = WebUtils.ParseInt32FromQueryString("mid", -1);

            if (moduleId == -1)
            {
                PageSettings currentPage = CacheHelper.GetCurrentPage();
                if (currentPage != null)
                    moduleId = FindStoreModuleId(currentPage);

            }

            if (moduleId == -1) return null;
            if (pageId == -1) return null;

            string key = "WebStore" + moduleId.ToString(CultureInfo.InvariantCulture);

            if (HttpContext.Current.Items[key] != null)
            {
                return (Store)HttpContext.Current.Items[key];
            }

            SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings();

            if ((siteSettings == null) || (siteSettings.SiteGuid == Guid.Empty)) return null;

            Module module = new Module(moduleId, pageId);
            if (module.SiteId != siteSettings.SiteId) return null;

            if (module.FeatureGuid != new Guid("0cefbf18-56de-11dc-8f36-bac755d89593")) return null;

            Store store = new Store(siteSettings.SiteGuid, moduleId);
            if (store.Guid == Guid.Empty) // No store created yet
            {
                store = new Store();
                store.SiteGuid = siteSettings.SiteGuid;
                store.ModuleId = moduleId;
                store.Save();
            }

            HttpContext.Current.Items.Add(key, store);

            return store;
        }
예제 #29
0
        public static void ConfirmOrder(Store store, Order order)
        {
            if (store == null) { return; }
            if (order == null) { return; }

            CommerceConfiguration commerceConfig = SiteUtils.GetCommerceConfig();
            CultureInfo defaultCulture = SiteUtils.GetDefaultUICulture();

            string subjectTemplate
                        = ResourceHelper.GetMessageTemplate(defaultCulture,
                        commerceConfig.DefaultConfirmationEmailSubjectTemplate);

            string textBodyTemplate
                        = ResourceHelper.GetMessageTemplate(defaultCulture,
                        commerceConfig.DefaultConfirmationEmailTextBodyTemplate);

            int pageId = -1;

            List<PageModule> pageModules = PageModule.GetPageModulesByModule(store.ModuleId);
            foreach (PageModule pm in pageModules)
            {
                // use first pageid found, really a store should only
                // be on one page
                pageId = pm.PageId;
                break;

            }

            Module m = new Module(store.ModuleId);

            Order.EnsureSalesReportData(order.OrderGuid, m.ModuleGuid, pageId, store.ModuleId);

            SiteUser.UpdateTotalRevenue(order.UserGuid);

            SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings();
            CultureInfo currencyCulture = ResourceHelper.GetCurrencyCulture(siteSettings.GetCurrency().Code);
            OrderCompletedEventArgs e = new OrderCompletedEventArgs(order, currencyCulture);

            foreach (OrderCompletedHandlerProvider p in OrderCompletedHandlerProviderManager.Providers)
            {

                try
                {
                    p.HandelOrderCompleted(e);
                }
                catch (Exception ex)
                {
                    log.Error(ex);
                }
            }

            //TODO: make this asynchronous so if it takes a long time or has a timeout error it does
            //not prevent the redirect
            SendConfirmEmail(
                defaultCulture,
                currencyCulture,
                siteSettings,
                pageId,
                commerceConfig,
                store,
                order,
                subjectTemplate,
                textBodyTemplate);
        }
예제 #30
0
        private void LoadSettings(HttpContext context)
        {
            siteSettings = CacheHelper.GetCurrentSiteSettings();
            if (siteSettings == null) { return; }

            pageId = WebUtils.ParseInt32FromQueryString("pageid", true, pageId);
            moduleId = WebUtils.ParseInt32FromQueryString("mid", true, moduleId);

            if (moduleId == -1) { return; }
            if (pageId == -1) { return; }

            galleryPage = new PageSettings(siteSettings.SiteId, pageId);
            if (galleryPage.PageId == -1) { return; }

            galleryModule = new Module(moduleId, pageId);
            if (galleryModule.ModuleId == -1) { return; }

            if ((!WebUser.IsInRoles(galleryPage.AuthorizedRoles)) && (!WebUser.IsInRoles(galleryModule.ViewRoles))) { return; }

            siteRoot = WebUtils.GetSiteRoot();

            //thumbnailBaseUrl = siteRoot + "/Data/Sites/" + siteSettings.SiteId.ToInvariantString()
            //    + "/GalleryImages/" + moduleId.ToInvariantString() + "/Thumbnails/";

            //fullSizeBaseUrl = siteRoot + "/Data/Sites/" + siteSettings.SiteId.ToInvariantString()
            //    + "/GalleryImages/" + moduleId.ToInvariantString() + "/WebImages/";

            string baseUrl;
            if (WebConfigSettings.ImageGalleryUseMediaFolder)
            {
                baseUrl = siteRoot + "/Data/Sites/" + siteSettings.SiteId.ToInvariantString() + "/media/GalleryImages/" + moduleId.ToInvariantString() + "/";
            }
            else
            {
                baseUrl = siteRoot + "/Data/Sites/" + siteSettings.SiteId.ToInvariantString() + "/GalleryImages/" + moduleId.ToInvariantString() + "/";
            }

            thumbnailBaseUrl = baseUrl + "Thumbnails/";

            fullSizeBaseUrl = baseUrl + "WebImages/";

            gallery = new Gallery(moduleId);

            canRender = true;
        }
예제 #31
0
        private List<IndexItem> GetRecentContent()
        {
            List<IndexItem> recentContent = null;

            if (pageId == -1) { return recentContent; }
            if (moduleId == -1) { return recentContent; }

            pageSettings = CacheHelper.GetCurrentPage();
            module = GetModule();

            if (module != null)
            {
                moduleSettings = ModuleSettings.GetModuleSettings(moduleId);
                config = new RecentContentConfiguration(moduleSettings);
                shouldRender = config.EnableFeed;
                if (!shouldRender) { return null; }

                bool shouldRedirectToFeedburner = false;
                if (config.FeedburnerFeedUrl.Length > 0)
                {
                    shouldRedirectToFeedburner = true;
                    if ((Request.UserAgent != null) && (Request.UserAgent.Contains("FeedBurner")))
                    {
                        shouldRedirectToFeedburner = false; // don't redirect if the feedburner bot is reading the feed
                    }

                    Guid redirectBypassToken = WebUtils.ParseGuidFromQueryString("r", Guid.Empty);
                    if (redirectBypassToken == Global.FeedRedirectBypassToken)
                    {
                        shouldRedirectToFeedburner = false; // allows time for user to subscribe to autodiscovery links without redirecting
                    }

                }

                if (shouldRedirectToFeedburner)
                {
                    redirectUrl = config.FeedburnerFeedUrl;
                    shouldRender = false;
                    return null;

                }

                feedCacheTimeInMinutes = config.FeedCacheTimeInMinutes;
                channelTitle = config.FeedChannelTitle;
                channelLink = WebUtils.ResolveServerUrl(SiteUtils.GetCurrentPageUrl());
                channelDescription = config.FeedChannelDescription;
                channelCopyright = config.FeedChannelCopyright;
                channelManagingEditor = config.FeedChannelManagingEditor;
                channelTimeToLive = config.FeedTimeToLiveInMinutes;

                if (config.GetCreated)
                {
                    recentContent = IndexHelper.GetRecentCreatedContent(
                        siteSettings.SiteId,
                        config.GetFeatureGuids(),
                        DateTime.UtcNow.AddDays(-config.MaxDaysOldRecentItemsToGet),
                        config.MaxRecentItemsToGet);
                }
                else
                {
                    recentContent = IndexHelper.GetRecentModifiedContent(
                        siteSettings.SiteId,
                        config.GetFeatureGuids(),
                        DateTime.UtcNow.AddDays(-config.MaxDaysOldRecentItemsToGet),
                        config.MaxRecentItemsToGet);
                }
            }

            return recentContent;
        }
        private static void IndexItem(HtmlContent content)
        {
            bool disableSearchIndex = ConfigHelper.GetBoolProperty("DisableSearchIndex", false);
            if (disableSearchIndex) { return; }

            Module module = new Module(content.ModuleId);

            Guid htmlFeatureGuid
                = new Guid("881e4e00-93e4-444c-b7b0-6672fb55de10");
            ModuleDefinition htmlFeature
                = new ModuleDefinition(htmlFeatureGuid);

            // get list of pages where this module is published
            List<PageModule> pageModules
                = PageModule.GetPageModulesByModule(content.ModuleId);

            foreach (PageModule pageModule in pageModules)
            {
                PageSettings pageSettings
                    = new PageSettings(
                    content.SiteId,
                    pageModule.PageId);

                //don't index pending/unpublished pages
                if (pageSettings.IsPending) { continue; }

                IndexItem indexItem = new IndexItem();
                if (content.SearchIndexPath.Length > 0)
                {
                    indexItem.IndexPath = content.SearchIndexPath;
                }
                indexItem.SiteId = content.SiteId;
                indexItem.ExcludeFromRecentContent = content.ExcludeFromRecentContent;
                indexItem.PageId = pageModule.PageId;
                indexItem.PageName = pageSettings.PageName;
                indexItem.ViewRoles = pageSettings.AuthorizedRoles;
                indexItem.ModuleViewRoles = module.ViewRoles;
                if (pageSettings.UseUrl)
                {
                    indexItem.ViewPage = pageSettings.Url.Replace("~/", string.Empty);
                    indexItem.UseQueryStringParams = false;
                }

                // generally we should not include the page meta because it can result in duplicate results
                // one for each instance of html content on the page because they all use the smae page meta.
                // since page meta should reflect the content of the page it is sufficient to just index the content
                if ((ConfigurationManager.AppSettings["IndexPageMeta"] != null) && (ConfigurationManager.AppSettings["IndexPageMeta"] == "true"))
                {
                    indexItem.PageMetaDescription = pageSettings.PageMetaDescription;
                    indexItem.PageMetaKeywords = pageSettings.PageMetaKeyWords;
                }

                indexItem.FeatureId = htmlFeatureGuid.ToString();
                indexItem.FeatureName = htmlFeature.FeatureName;
                indexItem.FeatureResourceFile = htmlFeature.ResourceFile;

                indexItem.ItemId = content.ItemId;
                indexItem.ModuleId = content.ModuleId;
                indexItem.ModuleTitle = module.ModuleTitle;
                indexItem.Title = content.Title;
                indexItem.Content = SecurityHelper.RemoveMarkup(content.Body);
                indexItem.PublishBeginDate = pageModule.PublishBeginDate;
                indexItem.PublishEndDate = pageModule.PublishEndDate;

                if ((content.CreatedByFirstName.Length > 0) && (content.CreatedByLastName.Length > 0))
                {
                    indexItem.Author = string.Format(CultureInfo.InvariantCulture,
                        Resource.FirstLastFormat, content.CreatedByFirstName, content.CreatedByLastName);
                }
                else
                {
                    indexItem.Author = content.CreatedByName;
                }

                indexItem.CreatedUtc = content.CreatedDate;
                indexItem.LastModUtc = content.LastModUtc;

                if (!module.IncludeInSearch) { indexItem.RemoveOnly = true; }

                IndexHelper.RebuildIndex(indexItem);
            }

            log.Debug("Indexed " + content.Title);
        }
예제 #33
0
        private void LoadSettings()
        {
            isSiteEditor = SiteUtils.UserIsSiteEditor();
            isCommerceReportViewer = WebUser.IsInRoles(siteSettings.CommerceReportViewRoles);
            pageNumber = WebUtils.ParseInt32FromQueryString("pagenumber", pageNumber);
            currencyCulture = ResourceHelper.GetCurrencyCulture(siteSettings.GetCurrency().Code);
            moduleGuid = WebUtils.ParseGuidFromQueryString("m", moduleGuid);
            if (moduleGuid != Guid.Empty)
            {
                module = new Module(moduleGuid);

                if (module.SiteGuid != siteSettings.SiteGuid) { module = null; }
            }

            AddClassToBody("administration");
            AddClassToBody("commercereports");
        }