打印本文 打印本文 关闭窗口 关闭窗口
以增加收藏夹功能为实例,解析asp.net forums2结构流程及组件设计
作者:武汉SEO闵涛  文章来源:敏韬网  点击数4068  更新时间:2009/4/23 10:43:20  文章录入:mintao  责任编辑:mintao
;   #endregion

                #region Constrain Read/Unread
                if (userID > 0) {
                    sqlPopulateSelect.Append("(SELECT " + this.databaseOwner + ".HasReadPost(");
                    sqlPopulateSelect.Append(userID);
                    sqlPopulateSelect.Append(", T.ThreadID, T.ForumID)) ");

                    if (unreadOnly) {
                        whereClause.Append(" AND " + this.databaseOwner + ".HasReadPost(");
                        whereClause.Append(userID);
                        whereClause.Append(", T.ThreadID, T.ForumID) = 0");
                    }
                } else {
                    sqlPopulateSelect.Append("0");
                }
                #endregion

                #region Unanswered topics
                if (unansweredOnly) {
                    whereClause.Append(" AND TotalReplies = 0 AND IsLocked = 0");
                }
                #endregion

                #region Active topics
                // 热门贴子
                if (activeTopics) {
                    whereClause.Append(" AND TotalReplies > 2 AND IsLocked = 0 AND TotalViews > 50");
                }
                #endregion

                #region 收藏
                // 尽显示收藏的主题
                if (favoriteOnly)
                {
                    whereClause.Append(" AND T.ThreadID = Fav.ThreadID AND Fav.UserID = ");
                    whereClause.Append(userID);
                }
                #endregion


                #region Users filter
                if (userFilter != ThreadUsersFilter.All)
                {

                    if ((userFilter == ThreadUsersFilter.HideTopicsParticipatedIn) || (userFilter == ThreadUsersFilter.HideTopicsNotParticipatedIn)) {

                        whereClause.Append(" AND ");
                        whereClause.Append(userID);

                        if (userFilter == ThreadUsersFilter.HideTopicsNotParticipatedIn)
                            whereClause.Append(" NOT");

                        whereClause.Append(" IN (SELECT UserID FROM " + this.databaseOwner + ".forums_Posts P WHERE P.ThreadID = T.ThreadID)");

                    } else {

                        if (userFilter == ThreadUsersFilter.HideTopicsByNonAnonymousUsers)
                            whereClause.Append(" AND 0 NOT");
                        else
                            whereClause.Append(" AND 0");

                        whereClause.Append("IN (SELECT UserID FROM " + this.databaseOwner + ".forums_Posts P WHERE ThreadID = T.ThreadID AND P.UserID = 0)");
                    }
                }
                #endregion

                #region Thread Status
                if (threadStatus != ThreadStatus.NotSet) {
                    switch (threadStatus) {
                        case ThreadStatus.Open:
                            whereClause.Append(" AND ThreadStatus = 0");
                            break;

                        case ThreadStatus.Closed:
                            whereClause.Append(" AND ThreadStatus = 0");
                            break;

                        case ThreadStatus.Resolved:
                            whereClause.Append(" AND ThreadStatus = 0");
                            break;

                     

上一页  [1] [2] [3] [4] [5] [6]  下一页

打印本文 打印本文 关闭窗口 关闭窗口