예제 #1
0
        public static void Show(Core core, GPage page)
        {
            core.Template.SetTemplate("Groups", "viewgroup");

            core.Template.Parse("U_GROUP", page.Group.Uri);
            core.Template.Parse("GROUP_DISPLAY_NAME", page.Group.DisplayName);

            /* pages */
            core.Display.ParsePageList(page.Owner, true);

            core.Template.Parse("PRIMITIVE_THUMB", page.Owner.Thumbnail);
            core.Template.Parse("USER_ICON", page.Owner.Thumbnail);
            core.Template.Parse("USER_COVER_PHOTO", page.Owner.CoverPhoto);
            core.Template.Parse("USER_MOBILE_COVER_PHOTO", page.Owner.MobileCoverPhoto);

            string langMembers = (page.Group.Members != 1) ? "members" : "member";
            string langIsAre = (page.Group.Members != 1) ? "are" : "is";

            //page.template.ParseRaw("DESCRIPTION", Bbcode.Parse(HttpUtility.HtmlEncode(page.ThisGroup.Description), core.session.LoggedInMember));
            core.Display.ParseBbcode("DESCRIPTION", page.Group.Description);
            core.Template.Parse("DATE_CREATED", core.Tz.DateTimeToString(page.Group.DateCreated(core.Tz)));
            core.Template.Parse("CATEGORY", page.Group.Category);

            core.Template.Parse("MEMBERS", page.Group.Members.ToString());
            core.Template.Parse("OPERATORS", page.Group.Operators.ToString());
            core.Template.Parse("OFFICERS", page.Group.Officers.ToString());
            core.Template.Parse("L_MEMBERS", langMembers);
            core.Template.Parse("L_IS_ARE", langIsAre);
            core.Template.Parse("U_MEMBERLIST", page.Group.MemberlistUri);

            if (core.Session.IsLoggedIn)
            {
                if (page.Group.IsGroupOperator(core.Session.LoggedInMember.ItemKey))
                {
                    core.Template.Parse("IS_OPERATOR", "TRUE");
                    core.Template.Parse("U_GROUP_ACCOUNT", core.Hyperlink.AppendSid(page.Group.AccountUriStub));
                }

                if (!page.Group.IsGroupMemberAbsolute(core.Session.LoggedInMember.ItemKey))
                {
                    core.Template.Parse("U_JOIN", page.Group.JoinUri);
                }
                else
                {
                    if (!page.Group.IsGroupOperator(core.Session.LoggedInMember.ItemKey))
                    {
                        if (page.Group.IsGroupMember(core.Session.LoggedInMember.ItemKey))
                        {
                            core.Template.Parse("U_LEAVE", page.Group.LeaveUri);
                        }
                        else if (page.Group.IsGroupMemberPending(core.Session.LoggedInMember.ItemKey))
                        {
                            core.Template.Parse("U_CANCEL", page.Group.LeaveUri);
                        }
                    }

                    if (page.Group.IsGroupMember(core.Session.LoggedInMember.ItemKey))
                    {
                        core.Template.Parse("U_INVITE", page.Group.InviteUri);
                    }
                }
            }

            List<GroupMember> members = page.Group.GetMembers(1, 8);

            foreach (GroupMember member in members)
            {
                VariableCollection membersVariableCollection = core.Template.CreateChild("member_list");

                membersVariableCollection.Parse("USER_DISPLAY_NAME", member.DisplayName);
                membersVariableCollection.Parse("U_PROFILE", member.Uri);
                membersVariableCollection.Parse("ICON", member.Icon);
                membersVariableCollection.Parse("TILE", member.Tile);
            }

            List<GroupMember> operators = page.Group.GetOperators();

            foreach (GroupMember groupOperator in operators)
            {
                VariableCollection operatorsVariableCollection = core.Template.CreateChild("operator_list");

                operatorsVariableCollection.Parse("USER_DISPLAY_NAME", groupOperator.DisplayName);
                operatorsVariableCollection.Parse("U_PROFILE", groupOperator.Uri);
                if (core.Session.LoggedInMember != null)
                {
                    if (groupOperator.UserId == core.Session.LoggedInMember.UserId)
                    {
                        operatorsVariableCollection.Parse("U_RESIGN", page.Group.ResignOperatorUri);
                    }
                }
            }

            List<GroupOfficer> officers = page.Group.GetOfficers();

            foreach (GroupOfficer groupOfficer in officers)
            {
                VariableCollection officersVariableCollection = core.Template.CreateChild("officer_list");

                officersVariableCollection.Parse("USER_DISPLAY_NAME", groupOfficer.DisplayName);
                officersVariableCollection.Parse("U_PROFILE", groupOfficer.Uri);
                officersVariableCollection.Parse("OFFICER_TITLE", groupOfficer.OfficeTitle);
                if (core.LoggedInMemberId > 0)
                {
                    if (page.Group.IsGroupOperator(core.Session.LoggedInMember.ItemKey))
                    {
                        officersVariableCollection.Parse("U_REMOVE", groupOfficer.BuildRemoveOfficerUri());
                    }
                }
            }

            List<string[]> breadCrumbParts = new List<string[]>();
            if (!core.IsMobile)
            {
                breadCrumbParts.Add(new string[] { "profile", core.Prose.GetString("PROFILE") });
            }

            page.Owner.ParseBreadCrumbs(breadCrumbParts);

            core.InvokeHooks(new HookEventArgs(core, AppPrimitives.Group, page.Group));
        }
예제 #2
0
        public static void Show(Core core, NPage page)
        {
            core.Template.SetTemplate("Networks", "viewnetwork");
            page.Signature = PageSignature.viewnetwork;

            if (core.Session.IsLoggedIn)
            {
                if (page.Network.IsNetworkMember(core.Session.LoggedInMember.ItemKey))
                {
                    core.Template.Parse("U_LEAVE", page.Network.BuildLeaveUri());
                }
                else
                {
                    core.Template.Parse("U_JOIN", page.Network.BuildJoinUri());
                }
            }

            core.Template.Parse("NETWORK_DISPLAY_NAME", page.Network.DisplayName);
            core.Display.ParseBbcode("DESCRIPTION", page.Network.Description);

            string langMembers = (page.Network.Members != 1) ? "members" : "member";
            string langIsAre = (page.Network.Members != 1) ? "are" : "is";

            core.Template.Parse("MEMBERS", page.Network.Members.ToString());
            core.Template.Parse("L_MEMBERS", langMembers);
            core.Template.Parse("L_IS_ARE", langIsAre);
            core.Template.Parse("U_MEMBERLIST", page.Network.BuildMemberListUri());

            List<NetworkMember> members = page.Network.GetMembers(1, 8);

            foreach (NetworkMember member in members)
            {
                Dictionary<string, string> membersLoopVars = new Dictionary<string, string>();
                VariableCollection membersVariableCollection = core.Template.CreateChild("member_list");

                membersVariableCollection.Parse("USER_DISPLAY_NAME", member.DisplayName);
                membersVariableCollection.Parse("U_PROFILE", member.Uri);
                membersVariableCollection.Parse("ICON", member.Icon);

            }

            core.InvokeHooks(new HookEventArgs(core, AppPrimitives.Network, page.Network));
        }
예제 #3
0
        public static void ShowPage(Core core, APage page)
        {
            if (core == null)
            {
                throw new NullCoreException();
            }

            core.Template.SetTemplate("viewapplication.html");
            page.Signature = PageSignature.viewapplication;

            long typeId = core.Functions.RequestLong("type", 0);
            long id = core.Functions.RequestLong("id", 0);

            if (core.Session.IsLoggedIn)
            {
                Primitive viewer = core.Session.LoggedInMember;

                if (typeId > 0)
                {
                    core.PrimitiveCache.LoadPrimitiveProfile(id, typeId);
                    viewer = core.PrimitiveCache[id, typeId];
                }

                if (page.AnApplication.ApplicationType == ApplicationType.Native)
                {
                    if (page.AnApplication.HasInstalled(core, viewer))
                    {
                        core.Template.Parse("U_UNINSTALL", core.Hyperlink.AppendSid(string.Format("{1}dashboard/applications?mode=uninstall&id={0}",
                            page.AnApplication.ApplicationId, viewer.AccountUriStub), true));
                    }
                    else
                    {
                        core.Template.Parse("U_INSTALL", core.Hyperlink.AppendSid(string.Format("{1}dashboard/applications?mode=install&id={0}",
                            page.AnApplication.ApplicationId, viewer.AccountUriStub), true));
                    }
                }

                if (page.AnApplication.ApplicationType == ApplicationType.OAuth)
                {
                    if (page.AnApplication.HasInstalled(core, viewer))
                    {
                        core.Template.Parse("U_REVOKE", core.Hyperlink.AppendSid(string.Format("{1}dashboard/applications?mode=revoke&id={0}",
                            page.AnApplication.ApplicationId, viewer.AccountUriStub), true));
                    }
                }

                if (core.Session.LoggedInMember.Id == page.AnApplication.CreatorId)
                {
                    core.Template.Parse("U_MANAGE", core.Hyperlink.AppendSid(page.AnApplication.AccountUriStub));
                }
            }

            User Creator = new User(core, page.AnApplication.CreatorId, UserLoadOptions.All);

            core.Template.Parse("APPLICATION_NAME", page.AnApplication.Title);
            core.Template.Parse("U_APPLICATION", page.AnApplication.Uri);
            core.Template.Parse("DESCRIPTION", page.AnApplication.Description);
            core.Template.Parse("CREATOR_DISPLAY_NAME", Creator.DisplayName);
            if (page.AnApplication.Thumbnail != null)
            {
                core.Template.Parse("I_THUMBNAIL", page.AnApplication.Thumbnail);
            }

            core.InvokeHooks(new HookEventArgs(core, AppPrimitives.Application, page.AnApplication));
        }