Exemple #1
0
        private void PreparePage()
        {
            // Check access rights and increase view count
            if ((pageOrCommunity.GetUserAccess(UserDataContext.GetUserDataContext()) & ObjectAccessRight.Update) == ObjectAccessRight.Update)
            {
                isReadOnly = false;
            }
            if (pageOrCommunity.ObjectType == Helper.GetObjectTypeNumericID("ProfileCommunity") && !CustomizationSection.CachedInstance.CustomizationBar.Enabled)
            {
                isReadOnly = true;
            }
            if (UserDataContext.GetUserDataContext().IsAdmin)
            {
                isReadOnly = false;
            }

            if (UserProfile.Current.UserId != Guid.Empty)
            {
                isOwner = Community.GetIsUserOwner(UserProfile.Current.UserId, PageInfo.EffectiveCommunityId.Value, out isMember);
            }

            if (pageOrCommunity.ObjectType == Helper.GetObjectTypeNumericID("Community"))
            {
                if (pageOrCommunity.Status == ObjectStatus.Public || isOwner || isMember)
                {
                    DataObject.AddViewed(UserDataContext.GetUserDataContext(), pageOrCommunity.UserID, Helper.GetObjectTypeNumericID("Community"));
                }
                else
                {
                    Response.Redirect("/pages/static/AccessDenied.aspx", true);
                }
            }
            else if (pageOrCommunity.ObjectType == Helper.GetObjectTypeNumericID("ProfileCommunity"))
            {
                DataObject.AddViewed(UserDataContext.GetUserDataContext(), pageOrCommunity.UserID, Helper.GetObjectTypeNumericID("User"));
                DataObject.AddViewed(UserDataContext.GetUserDataContext(), pageOrCommunity.UserID, Helper.GetObjectTypeNumericID("ProfileCommunity"));
            }
            else if (pageOrCommunity.ObjectType == Helper.GetObjectTypeNumericID("Page"))
            {
                if (pageOrCommunity.RoleRight.ContainsKey(UserDataContext.GetUserDataContext().UserRole) && pageOrCommunity.RoleRight[UserDataContext.GetUserDataContext().UserRole])
                {
                    DataObject.AddViewed(UserDataContext.GetUserDataContext(), pageOrCommunity.UserID, Helper.GetObjectTypeNumericID("Page"));
                }
                else
                {
                    Response.Redirect("/pages/static/AccessDenied.aspx", true);
                }
            }

            // Load pages
            pages = wdc.hitbl_Page_PAGs.Where(x => x.CTY_ID == PageInfo.EffectiveCommunityId).OrderBy(x => x.PAG_OrderNr).ToList();
            if (pageOrCommunity.ObjectType == Helper.GetObjectTypeNumericID("Community") || pageOrCommunity.ObjectType == Helper.GetObjectTypeNumericID("ProfileCommunity"))
            {
                int pageIndex;
                if (isOwner && (page.ToLower() == "dashboard" || string.IsNullOrEmpty(page)))
                {
                    currentPage = pages[0];
                    page        = "dashboard";
                }
                else if (!string.IsNullOrEmpty(page) && int.TryParse(page, out pageIndex))
                {
                    currentPage = pages[pageIndex];
                }
                else
                {
                    currentPage = pages[1];
                }
            }
            else
            {
                currentPage = pages[0];
            }

            hitbl_Community_CTY owningCommunity = null;
            Guid?owningCommunityId = null;
            int  owningObjectType  = 0;

            // Set theme and style
            bool themeAndStyleOverridden = false;

            if (pageOrCommunity.ObjectType == Helper.GetObjectTypeNumericID("Page"))
            {
                DataObjectPage page = DataObject.Load <DataObjectPage>(PageInfo.EffectiveCommunityId);
                parentPageType = page.PageType;
                if (parentPageType == PageType.Detail && !string.IsNullOrEmpty(Request.QueryString["OID"]))
                {
                    DataObject detail = DataObject.Load <DataObject>(Request.QueryString["OID"].ToGuid());
                    if (detail.State != ObjectState.Added)
                    {
                        owningCommunityId       = detail.CommunityID;
                        owningObjectType        = page.ObjectType;
                        owningCommunity         = wdc.hitbl_Community_CTies.Where(x => x.CTY_ID == owningCommunityId).SingleOrDefault();
                        themeAndStyleOverridden = true;
                    }
                    else
                    {
                        Response.Redirect("/Pages/Static/ObjectNotFound.aspx");
                    }
                }
                else if (parentPageType == PageType.Overview && (!string.IsNullOrEmpty(Request.QueryString["XUI"]) || !string.IsNullOrEmpty(Request.QueryString["XCN"])))
                {
                    if (!string.IsNullOrEmpty(Request.QueryString["XUI"]))
                    {
                        MembershipUser membershipUser = Membership.GetUser(new Guid(Request.QueryString["XUI"]), false);
                        owningCommunityId = UserProfile.GetProfile(membershipUser.UserName).ProfileCommunityID;
                        owningObjectType  = Helper.GetObjectType("ProfileCommunity").NumericId;
                    }
                    else if (!string.IsNullOrEmpty(Request.QueryString["XCN"]))
                    {
                        owningCommunityId = new Guid(Request.QueryString["XCN"]);
                        owningObjectType  = Helper.GetObjectType("Community").NumericId;
                    }
                    owningCommunity         = wdc.hitbl_Community_CTies.Where(x => x.CTY_ID == owningCommunityId).SingleOrDefault();
                    themeAndStyleOverridden = true;
                }
            }

            if (!themeAndStyleOverridden)
            {
                owningCommunity = community;
            }

            Theme = owningCommunity.CTY_Theme;
            ((IWidgetPageMaster)Page.Master).HeaderStyle = owningCommunity.CTY_HeaderStyle;
            ((IWidgetPageMaster)Page.Master).BodyStyle   = owningCommunity.CTY_BodyStyle;
            ((IWidgetPageMaster)Page.Master).FooterStyle = owningCommunity.CTY_FooterStyle;

            //Add custom widget styles
            var           widgetStyles = wdc.hisp_WidgetTemplates_GetCommunityTemplates(PageInfo.EffectiveCommunityId).ToList();
            StringBuilder styles       = new StringBuilder("<style>");

            foreach (var widgetStyle in widgetStyles)
            {
                styles.Append(widgetStyle.WTP_Template);
            }
            styles.Append("</style>");
            PhStyle.Controls.Clear();
            PhStyle.Controls.Add(new LiteralControl(styles.ToString()));

            // Set metadata and breadcrumbs
            // TODO: weitere Format-Config's in Customizaition.config machen (die vorhandenen sind unklar benannt und somit weiss man nicht wo verwendet)
            ((IWidgetPageMaster)Page.Master).MetaDescription.Content = Server.HtmlEncode(pageOrCommunity.Description.StripHTMLTags());
            ((IWidgetPageMaster)Page.Master).MetaKeywords.Content    = Server.HtmlEncode(pageOrCommunity.TagList.StripHTMLTags().Replace(Common.Constants.TAG_DELIMITER.ToString(), ","));

            ((IWidgetPageMaster)Page.Master).MetaOgSiteName.Content = SiteConfig.SiteName;
            ((IWidgetPageMaster)Page.Master).MetaOgUrl.Content      = SiteConfig.SiteURL + Request.RawUrl;
            ((IWidgetPageMaster)Page.Master).MetaOgTitle.Content    = Server.HtmlEncode(pageOrCommunity.Title.StripHTMLTags());

            if (parentPageType == PageType.Homepage)
            {
                Master.Page.Title = string.Format(CustomizationSection.CachedInstance.Common.TitleFormat1, SiteConfig.SiteName, pageOrCommunity.Title);
            }
            else if (parentPageType == PageType.Overview)
            {
                ((IWidgetPageMaster)Page.Master).RssLink.Href = "/pages/other/rssfeed.aspx" + Request.Url.Query;
            }
            else if (parentPageType == PageType.Detail)
            {
                if (Helper.GetObjectTypeNumericID(Request.QueryString["OT"]) == Helper.GetObjectTypeNumericID("ForumTopic") && !string.IsNullOrEmpty(Request.QueryString["OID"]))
                {
                    ((IWidgetPageMaster)Page.Master).RssLink.Href = "/pages/other/rssfeed.aspx?OT=ForumTopicItem&RPID=" + Request.QueryString["OID"];
                }
                else if (Helper.GetObjectTypeNumericID(Request.QueryString["OT"]) == Helper.GetObjectTypeNumericID("Forum"))
                {
                    ((IWidgetPageMaster)Page.Master).RssLink.Href = "/pages/other/rssfeed.aspx?OT=ForumTopicItem";
                }
            }
            else if (parentPageType == PageType.None)
            {
                if (pageOrCommunity.ObjectType == Helper.GetObjectTypeNumericID("ProfileCommunity") && page.ToLower() != "dashboard")
                {
                    ((IWidgetPageMaster)Page.Master).BreadCrumb.BreadCrumbs.Add(new LiteralControl(string.Format("{0}", pageOrCommunity.Nickname)));
                    ((IWidgetPageMaster)Page.Master).BreadCrumb.BreadCrumpImage = string.Format("/Library/Images/Layout/{0}", Helper.GetObjectIcon(Helper.GetObjectTypeNumericID("User")));
                    ((IWidgetPageMaster)Page.Master).BreadCrumb.RenderBreadCrumbs();
                    ((IWidgetPageMaster)Page.Master).RssLink.Href = "/pages/other/rssfeed.aspx" + Request.Url.Query;
                    Master.Page.Title = string.Format(CustomizationSection.CachedInstance.Common.TitleFormat1, SiteConfig.SiteName, pageOrCommunity.Nickname);
                }
                else if (pageOrCommunity.ObjectType == Helper.GetObjectTypeNumericID("Community") || pageOrCommunity.ObjectType == Helper.GetObjectTypeNumericID("Page"))
                {
                    ((IWidgetPageMaster)Page.Master).BreadCrumb.BreadCrumpImage = string.Format("/Library/Images/Layout/{0}", Helper.GetObjectIcon(pageOrCommunity.ObjectType));
                    string title = Regex.Replace(pageOrCommunity.Title, @"\[tracking=.*?\]", "", RegexOptions.IgnoreCase);

                    if (!pageOrCommunity.ParentObjectID.HasValue)
                    {
                        ((IWidgetPageMaster)Page.Master).BreadCrumb.BreadCrumbs.Add(new LiteralControl(title));
                        ((IWidgetPageMaster)Page.Master).BreadCrumb.RenderBreadCrumbs();
                        Master.Page.Title = string.Format(CustomizationSection.CachedInstance.Common.TitleFormat1, SiteConfig.SiteName, title);
                    }
                    else
                    {
                        Community parentCommunity = new Community(pageOrCommunity.ParentObjectID.Value);
                        string    parentTitle     = Regex.Replace(parentCommunity.ProfileOrCommunity.Title, @"\[tracking=.*?\]", "", RegexOptions.IgnoreCase);
                        ((IWidgetPageMaster)Page.Master).BreadCrumb.BreadCrumbs.Add(new LiteralControl(string.Format("<a href='{0}'>{1}</a> / {2}", Helper.GetDetailLink(Helper.GetObjectTypeNumericID("Community"), ((DataObjectCommunity)parentCommunity.ProfileOrCommunity).VirtualURL, true), parentTitle, title)));
                        ((IWidgetPageMaster)Page.Master).BreadCrumb.RenderBreadCrumbs();
                        Master.Page.Title = string.Format(CustomizationSection.CachedInstance.Common.TitleFormat1, SiteConfig.SiteName, parentTitle + " / " + title);
                    }
                }
            }

            // Track events
            if (pageOrCommunity.objectType == Helper.GetObjectType("Page").NumericId)
            {
                if (parentPageType == PageType.Overview)
                {
                    _4screen.CSB.Extensions.Business.TrackingManager.TrackEventPage(owningCommunityId, owningObjectType, IsPostBack, LogSitePageType.Overview);
                }
                else if (parentPageType == PageType.Detail)
                {
                    _4screen.CSB.Extensions.Business.TrackingManager.TrackEventPage(owningCommunityId, owningObjectType, IsPostBack, LogSitePageType.Detail);
                }
                else if (parentPageType == PageType.Homepage)
                {
                    _4screen.CSB.Extensions.Business.TrackingManager.TrackEventPage(owningCommunityId, owningObjectType, IsPostBack, LogSitePageType.Homepage);
                }
                else
                {
                    _4screen.CSB.Extensions.Business.TrackingManager.TrackEventPage(PageInfo.EffectiveCommunityId, pageOrCommunity.ObjectType, IsPostBack, LogSitePageType.CmsPage);
                }
            }
            else if (pageOrCommunity.objectType == Helper.GetObjectType("Community").NumericId)
            {
                _4screen.CSB.Extensions.Business.TrackingManager.TrackEventPage(pageOrCommunity.ObjectID, pageOrCommunity.ObjectType, IsPostBack, LogSitePageType.Community);
            }
            else if (pageOrCommunity.objectType == Helper.GetObjectType("ProfileCommunity").NumericId)
            {
                _4screen.CSB.Extensions.Business.TrackingManager.TrackEventPage(pageOrCommunity.ObjectID, pageOrCommunity.ObjectType, IsPostBack, LogSitePageType.UserProfile);
            }
        }
Exemple #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            base.OnInit(e);
            udc  = UserDataContext.GetUserDataContext();
            page = DataObject.Load <DataObjectPage>(ObjectID, null, true);
            if (page.State == ObjectState.Added)
            {
                page = new DataObjectPage(udc);
                page.ParentObjectType = Helper.GetObjectTypeNumericID("Page");
                var roleRights = page.RoleRight.Keys.ToArray();
                foreach (var roleRight in roleRights)
                {
                    page.RoleRight[roleRight] = true;
                }
                page.ObjectID    = ObjectID;
                page.CommunityID = ObjectID;
                page.Title       = GuiLanguage.GetGuiLanguage("Shared").GetString("LabelUnnamed");
                page.Status      = ObjectStatus.Public;
                page.ShowState   = ObjectShowState.InProgress;
                page.Insert(udc);
                page = DataObject.Load <DataObjectPage>(ObjectID, null, true);

                HitblCommunityCty objCommunity = new HitblCommunityCty();
                objCommunity.CtyId           = page.ObjectID.Value;
                objCommunity.CtyInsertedDate = page.Inserted;
                objCommunity.CtyVirtualUrl   = Guid.NewGuid().ToString();
                objCommunity.UsrIdInserted   = page.UserID.Value;
                objCommunity.CtyIsProfile    = false;
                objCommunity.CtyStatus       = (int)CommunityStatus.Initializing;
                objCommunity.CtyLayout       = _4screen.CSB.Common.CustomizationSection.CachedInstance.DefaultLayouts.Page;
                objCommunity.CtyTheme        = Constants.DEFAULT_THEME;
                objCommunity.CtyUpdatedDate  = page.Inserted;
                objCommunity.UsrIdUpdated    = page.UserID;
                objCommunity.Save();
            }

            community = HitblCommunityCty.FetchByID(ObjectID.Value);
            if (community.CtyStatus != (int)CommunityStatus.Initializing)
            {
                txtCommName.ReadOnly = true;
            }
            else
            {
                page.Title = string.Empty;
            }

            if (!string.IsNullOrEmpty(Request.QueryString["TG"]))
            {
                page.TagList = Server.UrlDecode(Request.QueryString["TG"]);
            }
            if (!string.IsNullOrEmpty(Request.QueryString["OS"]))
            {
                page.Status = (ObjectStatus)int.Parse(Request.QueryString["OS"]);
            }
            if (!string.IsNullOrEmpty(Request.QueryString["SS"]))
            {
                page.ShowState = (ObjectShowState)int.Parse(Request.QueryString["SS"]);
            }
            if (!string.IsNullOrEmpty(Request.QueryString["CR"]))
            {
                page.Copyright = int.Parse(Request.QueryString["CR"]);
            }
            if (!string.IsNullOrEmpty(Request.QueryString["GC"]))
            {
                string[] geoLatLong = Request.QueryString["GC"].Split(',');
                double   geoLat, geoLong = double.MinValue;
                if (geoLatLong.Length == 2)
                {
                    if (double.TryParse(geoLatLong[0], out geoLat) && double.TryParse(geoLatLong[1], out geoLong))
                    {
                        page.Geo_Lat  = geoLat;
                        page.Geo_Long = geoLong;
                    }
                }
            }
            if (!string.IsNullOrEmpty(Request.QueryString["ZP"]))
            {
                page.Zip = Server.UrlDecode(Request.QueryString["ZP"]);
            }
            if (!string.IsNullOrEmpty(Request.QueryString["CI"]))
            {
                page.City = Server.UrlDecode(Request.QueryString["CI"]);
            }
            if (!string.IsNullOrEmpty(Request.QueryString["RE"]))
            {
                page.Street = Server.UrlDecode(Request.QueryString["RE"]);
            }
            if (!string.IsNullOrEmpty(Request.QueryString["CO"]))
            {
                page.CountryCode = Server.UrlDecode(Request.QueryString["CO"]);
            }

            InsertRoles();
            FillEditForm();
        }
Exemple #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (ObjectType == Helper.GetObjectTypeNumericID("Community"))
            {
                DataObjectCommunity community = DataObject.Load <DataObjectCommunity>(ObjectID.Value, null, true);
                string anchorContent          = string.Empty;
                if (SiteConfig.UsePopupWindows)
                {
                    anchorContent = string.Format("href=\"javascript:void(0)\" onClick=\"RedirectParentPage('/{0}');GetRadWindow().Close();\"", community.VirtualURL);
                }
                else
                {
                    anchorContent = string.Format("href=\"/{0}\"", community.VirtualURL);
                }
                this.LitMsg.Text = string.Format(language.GetString("MessageCreateCommunitySuccess"), anchorContent, community.Title);
            }
            else if (ObjectType == Helper.GetObjectTypeNumericID("Page"))
            {
                DataObjectPage cmsPage       = DataObject.Load <DataObjectPage>(ObjectID.Value, null, true);
                string         anchorContent = string.Empty;
                if (SiteConfig.UsePopupWindows)
                {
                    anchorContent = string.Format("href=\"javascript:void(0)\" onClick=\"RedirectParentPage('/{0}');GetRadWindow().Close();\"", cmsPage.VirtualURL);
                }
                else
                {
                    anchorContent = string.Format("href=\"/{0}\"", cmsPage.VirtualURL);
                }
                this.LitMsg.Text = string.Format(language.GetString("MessageCreatePageSuccess"), anchorContent, cmsPage.Title);
            }
            else if (ObjectType == Helper.GetObjectTypeNumericID("User"))
            {
                this.LitMsg.Text = GuiLanguage.GetGuiLanguage("UserControls.WebUI.Base").GetString("MessageRegistrationSucceded");
            }
            else
            {
                DataObject community = DataObject.Load <DataObject>(CommunityID.Value, null, true);

                string message           = string.Empty;
                string goToCommunity     = string.Empty;
                string goToCommunityText = string.Empty;
                if (community.ObjectType == Helper.GetObjectTypeNumericID("Community"))
                {
                    message           = string.Format(language.GetString("MessageUploadCommunity"), Helper.GetObjectName(ObjectType, false), community.Title);
                    goToCommunity     = string.Format("{0}", Helper.GetDetailLink(Helper.GetObjectTypeNumericID("Community"), community.ObjectID.ToString()));
                    goToCommunityText = string.Format(language.GetString("MessageGoTo"), community.Title);
                }
                else if (community.ObjectType == Helper.GetObjectTypeNumericID("ProfileCommunity"))
                {
                    message           = string.Format(language.GetString("MessageUploadProfile"), Helper.GetObjectName(ObjectType, false), community.Title);
                    goToCommunity     = string.Format("{0}", Helper.GetDetailLink(Helper.GetObjectTypeNumericID("User"), community.Nickname));
                    goToCommunityText = string.Format(language.GetString("MessageGoToProfile"));
                }
                string goToMyContent     = string.Format("{0}&T={1}&I=true", Helper.GetDashboardLink(Common.Dashboard.ManageContent), ObjectType);
                string goToMyContentText = string.Format(language.GetString("MessageGoToMyContent"), Helper.GetObjectName(ObjectType, false));
                string goToReturnUrl     = string.Empty;
                if (!string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
                {
                    goToReturnUrl = System.Text.ASCIIEncoding.ASCII.GetString(System.Convert.FromBase64String(Request.QueryString["ReturnUrl"]));
                }

                StringBuilder sb = new StringBuilder();
                sb.Append("<ul>");
                if (SiteConfig.UsePopupWindows)
                {
                    sb.AppendFormat("<li><a href=\"javascript:void(0)\" onClick=\"RedirectParentPage('{0}');GetRadWindow().Close();\">{1}</a></li>", goToCommunity, goToCommunityText);
                    sb.AppendFormat("<li><a href=\"javascript:void(0)\" onClick=\"RedirectParentPage('{0}');GetRadWindow().Close();\">{1}</a></li>", goToMyContent, goToMyContentText);
                    if (!string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
                    {
                        sb.AppendFormat("<li><a href=\"javascript:void(0)\" onClick=\"RedirectParentPage('{0}');GetRadWindow().Close();\">{1}</a></li>", goToReturnUrl, language.GetString("MessageGoBack"));
                    }
                }
                else
                {
                    sb.AppendFormat("<li><a href=\"{0}\">{1}</a></li>", goToCommunity, goToCommunityText);
                    sb.AppendFormat("<li><a href=\"{0}\">{1}</a></li>", goToMyContent, goToMyContentText);
                    if (!string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
                    {
                        sb.AppendFormat("<li><a href=\"{0}\">{1}</a></li>", goToReturnUrl, language.GetString("MessageGoBack"));
                    }
                }
                sb.Append("</ul>");

                this.LitMsg.Text  = message;
                this.LitMsg2.Text = sb.ToString();

                Guid?uploadSession = Request.QueryString["UploadSession"].ToNullableGuid();
                if (uploadSession.HasValue)
                {
                    DataObjectList <DataObject> dataObjectsByUploadSession = DataObjects.Load <DataObject>(new QuickParameters {
                        Udc = UserDataContext.GetUserDataContext(UserProfile.Current.UserName), ObjectType = ObjectType, SortBy = QuickSort.InsertedDate, Direction = QuickSortDirection.Asc, GroupID = uploadSession, DisablePaging = true, IgnoreCache = true, QuerySourceType = QuerySourceType.MyContent
                    });
                    if (dataObjectsByUploadSession.Count > 0)
                    {
                        for (int i = 0; i < dataObjectsByUploadSession.Count; i++)
                        {
                            UserActivities.Insert(UserDataContext.GetUserDataContext(), UserActivityWhat.HasUploadetOneObject, dataObjectsByUploadSession[i].CommunityID.Value, dataObjectsByUploadSession[i].ObjectID.Value, false);
                        }
                    }
                }
                else if (ObjectID.HasValue)
                {
                    UserActivities.Insert(UserDataContext.GetUserDataContext(), UserActivityWhat.HasUploadetOneObject, CommunityID.Value, ObjectID.Value, false);
                }
            }
        }