Backup/Discuz.Forum/Caches.cs

(开头部分) 43KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Data;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;

using Discuz.Common;
using Discuz.Data;
using Discuz.Config;
using Discuz.Entity;
using Discuz.Cache;
using Discuz.Config.Provider;
using Discuz.Common.Generic;

namespace Discuz.Forum
{
    /// <summary>
    /// 缓存论坛前台的一些界面HTML数据
    /// </summary>
    public class Caches
    {
        private static object lockHelper = new object();

        /// <summary>
        /// 获得版块下拉列表
        /// </summary>
        /// <param name="cateUnselectable">是否不可选择版块分类</param>
        /// <returns>列表内容的html</returns>
        public static string GetForumListBoxOptionsCache(bool cateUnselectable)
        {
            DNTCache cache = DNTCache.GetCacheService();
            string str = cache.RetrieveObject("/Forum/UI/ForumListBoxOptions") as string;
            if (Utils.StrIsNullOrEmpty(str))
            {
                StringBuilder sb = new StringBuilder();
                AddOptionTree(Data.Forums.GetVisibleForumList(), "0", cateUnselectable, sb);
                str = sb.ToString();
                cache.AddObject("/Forum/UI/ForumListBoxOptions", str);
            }
            return str;
        }

        /// <summary>
        /// 创建Select版块列表
        /// </summary>
        /// <param name="dt">版块列表</param>
        /// <param name="parentid">parentid</param>
        /// <param name="cateUnselectable">是否不可选择版块分类</param>
        /// <param name="sb">生成结果</param>
        private static void AddOptionTree(DataTable dt, string parentid, bool cateUnselectable, StringBuilder sb)
        {
            DataRow[] drs = dt.Select("parentid=" + parentid);
            foreach (DataRow dr in drs)
            {
                if (cateUnselectable && dr["layer"].ToString().Trim() == "0")
                {
                    sb.AppendFormat("<optgroup label=\"--{0}\">", dr["name"].ToString().Trim());
                    sb.Append(Utils.GetSpacesString(TypeConverter.ObjectToInt(dr["layer"])));
                    sb.Append(dr["name"].ToString().Trim());
                }
后面还有 1134 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。