コード例 #1
0
ファイル: PageUi.cs プロジェクト: rocketeerbkw/DNA
        static public PageUi GetPageUi(IDnaDataReaderCreator creator, Article guide, BBC.Dna.Objects.User viewingUser)
        {
            PageUi pageUi = new PageUi(viewingUser.UserId);

            // Update the edit link if the user is allowed
            bool editable = false;
            string editableLink = "/UserEdit";
            if (!guide.IsDeleted && guide.HasEditPermission(viewingUser))
            {
                editable = true;
                editableLink += guide.H2g2Id.ToString();
            }

            // Now set the recommended link
            string recommendLink = "RecommendEntry?h2g2ID=" + guide.H2g2Id.ToString() + "&mode=POPUP";
            bool recommendable = guide.ArticleInfo.Status.Type == 3 &&
                                 viewingUser.UserId > 0 &&
                                 (viewingUser.IsEditor || viewingUser.IsScout);

            // If this is a sub editors copy of a recommended entry, and the viewer is
            // the sub editor, then give them a button to say they have finished subbing
            // it and want to return the entry to the editors
            string subbedLink = "SubmitSubbedEntry?h2g2ID=" + guide.ArticleInfo.H2g2Id.ToString() + "&mode=POPUP";
            bool subeditor = viewingUser.UserId > 0 &&
                             (viewingUser.IsEditor || viewingUser.IsSubEditor) &&
                             guide.CheckIsSubEditor(viewingUser, creator);

            // Setup the discuss UI
            string discussLink = "AddThread?forum=" + guide.ArticleInfo.ForumId.ToString() + "&article=" + guide.ArticleInfo.H2g2Id.ToString();
            bool discussable = !guide.IsDeleted &&
                               guide.ArticleInfo.ForumId > 0 &&
                               viewingUser.UserId > 0;

            pageUi.EditPage = new PageUiElement(editableLink, editable);
            pageUi.RecommendEntry = new PageUiElement(recommendLink, recommendable);
            pageUi.EntrySubbed = new PageUiElement(subbedLink, subeditor);
            pageUi.Discuss = new PageUiElement(discussLink, discussable);
            pageUi.SiteHome = new PageUiElement("/", true);
            pageUi.DontPanic = new PageUiElement("/DONTPANIC", true);
            pageUi.Search = new PageUiElement("/Search", true);


            return pageUi;
        }