Esempio n. 1
0
    /// <summary>
    /// Renders ForumPost control for specified node.
    /// </summary>
    /// <param name="postRow">Forum post data row</param>
    /// <param name="sbRendered">String builder instance containing rendered text of control</param>
    private string DynamicForumPostRender(DataRow postRow, out StringBuilder sbRendered)
    {
        // Create detail of post to string
        sbRendered = new StringBuilder();
        string        mId = "";
        ForumPostInfo fpi = new ForumPostInfo(postRow);

        if (ShowMode != ShowModeEnum.TreeMode)
        {
            StringWriter     sw     = new StringWriter(sbRendered);
            Html32TextWriter writer = new Html32TextWriter(sw);
            ForumViewer      post   = (ForumViewer)Page.LoadUserControl("~/CMSModules/Forums/Controls/Posts/ForumPost.ascx");
            post.ID = "forumPost" + fpi.PostId;

            CopyValues(post);

            post.SetValue("PostInfo", fpi);
            post.ReloadData();
            post.RenderControl(writer);
            mId = ClientID + fpi.PostId;
        }

        return(mId);
    }
Esempio n. 2
0
    protected void InitializeMenu()
    {
        // Check if maximum post level is not exceeded
        bool maxLevelExceeded = (PostInfo != null) && (PostInfo.PostLevel >= ForumPostInfoProvider.MaxPostLevel);

        var actionsElem = ((CMSPage)Page).HeaderActions;

        actionsElem.AddAction(new HeaderAction()
        {
            Text          = GetString("general.edit"),
            Tooltip       = GetString("ForumPost_View.EditToolTip"),
            OnClientClick = "EditPost(" + PostID + "); return false;"
        });
        actionsElem.AddAction(new HeaderAction()
        {
            Text          = GetString("general.delete"),
            Tooltip       = GetString("ForumPost_View.DeleteToolTip"),
            OnClientClick = "DeletePost(" + PostID + "); return false;"
        });
        actionsElem.AddAction(new HeaderAction()
        {
            Text          = GetString("ForumPost_View.IconReply"),
            Tooltip       = GetString("ForumPost_View.ReplyToolTip"),
            OnClientClick = maxLevelExceeded ? "return false;" : "ReplyToPost(" + PostID + "); return false;",
            Enabled       = !maxLevelExceeded,
        });

        // Stick thread
        if (PostInfo.PostLevel == 0)
        {
            mThreadMove.SetValue("AdminMode", true);
            mThreadMove.SetValue("SelectedThreadID", PostInfo.PostId);

            actionsElem.AddAction(new HeaderAction()
            {
                Text          = GetString("ForumPost_View.IconMove"),
                Tooltip       = GetString("ForumPost_View.MoveToolTip"),
                OnClientClick = ControlsHelper.GetPostBackEventReference(btnMoveThread, null) + "; return false;"
            });

            bool isUnstick = (PostInfo.PostStickOrder > 0);
            actionsElem.AddAction(new HeaderAction()
            {
                Text          = isUnstick ? GetString("ForumPost_View.IconUnStick") : GetString("ForumPost_View.IconStick"),
                Tooltip       = isUnstick ? GetString("ForumPost_View.UnStickToolTip") : GetString("ForumPost_View.StickToolTip"),
                OnClientClick = "StickThread(" + PostID + "); return false;"
            });

            bool isLocked = PostInfo.PostIsLocked;
            actionsElem.AddAction(new HeaderAction()
            {
                Text          = isLocked ? GetString("ForumPost_View.IconUnLock") : GetString("ForumPost_View.IconLock"),
                Tooltip       = isLocked ? GetString("ForumPost_View.UnLockToolTip") : GetString("ForumPost_View.LockToolTip"),
                OnClientClick = "LockThread(" + PostID + "); return false;"
            });
        }
        else
        {
            actionsElem.AddAction(new HeaderAction()
            {
                Text          = GetString("ForumPost_View.IconSplit"),
                Tooltip       = GetString("ForumPost_View.SplitToolTip"),
                OnClientClick = "SplitThread(" + PostID + "); return false;"
            });

            //Register split confirmation script
            ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "ForumSplitConfirm",
                                                   ScriptHelper.GetScript(" function ForumSplitConfirm() {\n" +
                                                                          "if (confirm(" + ScriptHelper.GetString(GetString("ForumPost_View.SplitConfirmation")) + ")) { \n ;SplitThread(" + PostID.ToString() + "); return false; \n}else{ return false; }\n}"
                                                                          ));
        }

        bool isApproved = PostInfo.PostApproved;

        actionsElem.AddAction(new HeaderAction()
        {
            Text          = isApproved ? GetString("general.reject") : GetString("general.approve"),
            Tooltip       = isApproved ? GetString("ForumPost_View.RejectToolTip") : GetString("ForumPost_View.ApproveToolTip"),
            OnClientClick = "ApprovePost(" + PostID + "); return false;"
        });


        if (isApproved)
        {
            actionsElem.AddAction(new HeaderAction()
            {
                Text          = GetString("ForumPost_View.IconRejectSubTree"),
                Tooltip       = GetString("ForumPost_View.RejectSubTreeToolTip"),
                OnClientClick = "RejectSubTree(" + PostID + "); return false;"
            });
        }
        else
        {
            actionsElem.AddAction(new HeaderAction()
            {
                Text          = GetString("ForumPost_View.IconApproveSubTree"),
                Tooltip       = GetString("ForumPost_View.ApproveSubTreeToolTip"),
                OnClientClick = "ApproveSubTree(" + PostID + "); return false;"
            });
        }
    }
    protected void InitializeMenu()
    {
        // Check if maximum post level is not exceeded
        bool maxLevelExceeded = (PostInfo != null) && (PostInfo.PostLevel >= ForumPostInfoProvider.MaxPostLevel);

        // Edit
        lnkEdit.Text        = GetString("general.edit");
        lnkEdit.ToolTip     = GetString("ForumPost_View.EditToolTip");
        lnkEdit.NavigateUrl = "#";
        lnkEdit.Attributes.Add("onclick", "EditPost(" + PostID.ToString() + "); return false;");
        lnkEdit.Style.Add("color", "#000000;");

        lnkEditImg.ImageUrl    = GetImageUrl("CMSModules/CMS_Forums/edit.png");
        lnkEditImg.ToolTip     = GetString("ForumPost_View.EditToolTip");
        lnkEditImg.NavigateUrl = "#";
        lnkEditImg.Attributes.Add("onclick", "EditPost(" + PostID.ToString() + "); return false;");


        // Delete
        lnkDelete.Text        = GetString("general.delete");
        lnkDelete.ToolTip     = GetString("ForumPost_View.DeleteToolTip");
        lnkDelete.NavigateUrl = "#";
        lnkDelete.Attributes.Add("onclick", "DeletePost(" + PostID.ToString() + "); return false;");
        lnkDelete.Style.Add("color", "#000000;");

        lnkDeleteImg.ImageUrl    = GetImageUrl("CMSModules/CMS_Forums/delete.png");
        lnkDeleteImg.ToolTip     = GetString("ForumPost_View.DeleteToolTip");
        lnkDeleteImg.NavigateUrl = "#";
        lnkDeleteImg.Attributes.Add("onclick", "DeletePost(" + PostID.ToString() + "); return false;");


        // Reply
        lnkReply.Text        = GetString("ForumPost_View.IconReply");
        lnkReply.ToolTip     = GetString("ForumPost_View.ReplyToolTip");
        lnkReply.NavigateUrl = "#";
        lnkReply.Style.Add("color", "#000000;");
        if (maxLevelExceeded)
        {
            lnkReply.Enabled = false;
        }
        else
        {
            lnkReply.Attributes.Add("onclick", "ReplyToPost(" + PostID.ToString() + "); return false;");
        }

        lnkReplyImg.ImageUrl    = GetImageUrl("CMSModules/CMS_Forums/reply.png");
        lnkReplyImg.ToolTip     = GetString("ForumPost_View.ReplyToolTip");
        lnkReplyImg.NavigateUrl = "#";
        if (maxLevelExceeded)
        {
            lnkReplyImg.Enabled = false;
        }
        else
        {
            lnkReplyImg.Attributes.Add("onclick", "ReplyToPost(" + PostID.ToString() + "); return false;");
        }

        // Stick thread
        if (PostInfo.PostLevel == 0)
        {
            ThreadMove1.SetValue("AdminMode", true);
            ThreadMove1.SetValue("SelectedThreadID", PostInfo.PostId);

            lnkMoveThread.Text        = GetString("ForumPost_View.IconMove");
            lnkMoveThread.ToolTip     = GetString("ForumPost_View.MoveToolTip");
            lnkMoveThread.NavigateUrl = "#";
            lnkMoveThread.Attributes.Add("onclick", ControlsHelper.GetPostBackEventReference(btnMoveThread, null) + "; return false;");
            lnkMoveThread.Style.Add("color", "#000000;");

            lnkMoveThreadImg.ImageUrl    = GetImageUrl("CMSModules/CMS_Forums/move.png");
            lnkMoveThreadImg.ToolTip     = GetString("ForumPost_View.MoveToolTip");
            lnkMoveThreadImg.NavigateUrl = "#";
            lnkMoveThreadImg.Attributes.Add("onclick", ControlsHelper.GetPostBackEventReference(btnMoveThread, null) + "; return false;");

            plcSplit.Visible = false;

            if (PostInfo.PostStickOrder > 0)
            {
                lnkStick.Text        = GetString("ForumPost_View.IconUnStick");
                lnkStick.ToolTip     = GetString("ForumPost_View.UnStickToolTip");
                lnkStickImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/unstick.png");
                lnkStickImg.ToolTip  = GetString("ForumPost_View.UnStickToolTip");
            }
            else
            {
                lnkStick.Text        = GetString("ForumPost_View.IconStick");
                lnkStick.ToolTip     = GetString("ForumPost_View.StickToolTip");
                lnkStickImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/stick.png");
                lnkStickImg.ToolTip  = GetString("ForumPost_View.StickToolTip");
            }

            lnkStick.Attributes.Add("onclick", "StickThread(" + PostID.ToString() + "); return false;");
            lnkStick.Style.Add("color", "#000000;");
            lnkStick.NavigateUrl    = "#";
            lnkStickImg.NavigateUrl = "#";
            lnkStickImg.Attributes.Add("onclick", "StickThread(" + PostID.ToString() + "); return false;");

            // Lock thread
            if (PostInfo.PostIsLocked)
            {
                lnkLock.Text        = GetString("ForumPost_View.IconUnLock");
                lnkLock.ToolTip     = GetString("ForumPost_View.UnLockToolTip");
                lnkLockImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/unstick.png");
                lnkLockImg.ToolTip  = GetString("ForumPost_View.UnLockToolTip");
            }
            else
            {
                lnkLock.Text        = GetString("ForumPost_View.IconLock");
                lnkLock.ToolTip     = GetString("ForumPost_View.LockToolTip");
                lnkLockImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/lock.png");
                lnkLockImg.ToolTip  = GetString("ForumPost_View.LockToolTip");
            }

            lnkLock.Attributes.Add("onclick", "LockThread(" + PostID.ToString() + "); return false;");
            lnkLock.Style.Add("color", "#000000;");
            lnkLock.NavigateUrl    = "#";
            lnkLockImg.NavigateUrl = "#";
            lnkLockImg.Attributes.Add("onclick", "LockThread(" + PostID.ToString() + "); return false;");
        }
        else
        {
            // Hide lock and stick for posts which are not root of thread
            plcRoot.Visible = false;

            // Split
            lnkSplit.Text        = GetString("ForumPost_View.IconSplit");
            lnkSplit.ToolTip     = GetString("ForumPost_View.SplitToolTip");
            lnkSplit.NavigateUrl = "#";
            lnkSplit.Attributes.Add("onclick", "ForumSplitConfirm();return false;");
            lnkSplit.Style.Add("color", "#000000;");

            lnkSplitImg.ImageUrl    = GetImageUrl("CMSModules/CMS_Forums/split.png");
            lnkSplitImg.ToolTip     = GetString("ForumPost_View.SplitToolTip");
            lnkSplitImg.NavigateUrl = "#";
            lnkSplitImg.Attributes.Add("onclick", "SplitThread(" + PostID.ToString() + "); return false;");


            //Register split confirmation script
            ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "ForumSplitConfirm",
                                                   ScriptHelper.GetScript(" function ForumSplitConfirm() {\n" +
                                                                          "if (confirm(" + ScriptHelper.GetString(GetString("ForumPost_View.SplitConfirmation")) + ")) { \n ;SplitThread(" + PostID.ToString() + "); return false; \n}else{ return false; }\n}"
                                                                          ));
        }

        if (!PostInfo.PostApproved)
        {
            lnkApproveReject.Text        = GetString("general.approve");
            lnkApproveReject.ToolTip     = GetString("ForumPost_View.ApproveToolTip");
            lnkApproveRejectImg.ToolTip  = GetString("ForumPost_View.ApproveToolTip");
            lnkApproveRejectImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/approve.png");
        }
        else
        {
            lnkApproveReject.Text        = GetString("general.reject");
            lnkApproveReject.ToolTip     = GetString("ForumPost_View.RejectToolTip");
            lnkApproveRejectImg.ToolTip  = GetString("ForumPost_View.RejectToolTip");
            lnkApproveRejectImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/reject.png");
        }

        lnkApproveReject.NavigateUrl    = "#";
        lnkApproveRejectImg.NavigateUrl = "#";
        lnkApproveReject.Attributes.Add("onclick", "ApprovePost(" + PostID.ToString() + "); return false;");
        lnkApproveReject.Style.Add("color", "#000000;");
        lnkApproveRejectImg.Attributes.Add("onclick", "ApprovePost(" + PostID.ToString() + "); return false;");

        if (!PostInfo.PostApproved)
        {
            lnkApproveSub.Text        = GetString("ForumPost_View.IconApproveSubTree");
            lnkApproveSub.ToolTip     = GetString("ForumPost_View.ApproveSubTreeToolTip");
            lnkApproveSub.NavigateUrl = "#";
            lnkApproveSub.Attributes.Add("onclick", "ApproveSubTree(" + PostID.ToString() + "); return false;");
            lnkApproveSub.Style.Add("color", "#000000;");

            lnkApproveSubImg.ImageUrl    = GetImageUrl("CMSModules/CMS_Forums/approve.png");
            lnkApproveSubImg.ToolTip     = GetString("ForumPost_View.ApproveSubTreeToolTip");
            lnkApproveSubImg.NavigateUrl = "#";
            lnkApproveSubImg.Attributes.Add("onclick", "ApproveSubTree(" + PostID.ToString() + "); return false;");
        }
        else
        {
            lnkApproveSub.Text        = GetString("ForumPost_View.IconRejectSubTree");
            lnkApproveSub.ToolTip     = GetString("ForumPost_View.RejectSubTreeToolTip");
            lnkApproveSub.NavigateUrl = "#";
            lnkApproveSub.Attributes.Add("onclick", "RejectSubTree(" + PostID.ToString() + "); return false;");
            lnkApproveSub.Style.Add("color", "#000000;");

            lnkApproveSubImg.ImageUrl    = GetImageUrl("CMSModules/CMS_Forums/reject.png");
            lnkApproveSubImg.ToolTip     = GetString("ForumPost_View.RejectSubTreeToolTip");
            lnkApproveSubImg.NavigateUrl = "#";
            lnkApproveSubImg.Attributes.Add("onclick", "RejectSubTree(" + PostID.ToString() + "); return false;");
        }
    }