⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ultipublish.cs

📁 最好用的站点内容管理系统 全部源代码都有
💻 CS
📖 第 1 页 / 共 5 页
字号:
//======================================================
//==     (c)2008 aspxcms inc by NeTCMS v1.0              ==
//==          Forum:bbs.aspxcms.com                   ==
//==         Website:www.aspxcms.com                  ==
//======================================================
using System;
using System.Data;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using NetCMS.Common;
using NetCMS.Control;
using NetCMS.Config;
using NetCMS.Model;

namespace NetCMS.Publish
{
    public partial class UltiPublish
    {
        private const string MsgFormat = "正在发布{0},共需要发布{1}条,正在发布第{2}条,成功{3}条,<a href=\"error/GetError.aspx?d=now\" title=\"点击查看错误信息\"><span style=\"color:red;\">失败{4}条</span></a>{5}";
        /// <summary>
        /// 是否发布主页、新闻、栏目、专题,bool标志
        /// </summary>
        private bool _isPubindex;
        public bool IsPublishIndex
        {
            set { _isPubindex = value; }
        }
        /// <summary>
        /// 是否发布新闻,bool标志
        /// </summary>
        private bool _isPubNews;
        public bool IsPubNews
        {
            set { _isPubNews = value; }
        }
        /// <summary>
        /// 是否发布栏目索引文件,bool标志
        /// </summary>
        private bool _isClassIndex;
        /// <summary>
        /// 是否发布栏目索引文件,bool标志
        /// </summary>
        public bool isClassIndex
        {
            set { _isClassIndex = value; }
        }
        /// <summary>
        /// 是否发布栏目,bool标志
        /// </summary>
        private bool _isPubClass;
        public bool IsPubClass
        {
            set { _isPubClass = value; }
        }
        /// <summary>
        /// 是否发布专题,bool标志
        /// </summary>
        private bool _isPubSpecial;
        public bool IsPubSpecial
        {
            set { _isPubSpecial = value; }
        }
        //-----------------------------------------------------------------
        /// <summary>
        /// 发布新闻方式标志
        /// </summary>
        private int _newsFlag;
        public int newsFlag
        {
            set { _newsFlag = value; }
        }
        /// <summary>
        /// 发布新闻的字符串参数
        /// </summary>
        private string _strNewsParams = string.Empty;
        public string strNewsParams
        {
            set { _strNewsParams = value; }
        }
        /// <summary>
        /// 发布栏目方式标志
        /// </summary>
        private int _ClassFlag;
        public int ClassFlag
        {
            set { _ClassFlag = value; }
        }
        /// <summary>
        /// 发布栏目的字符串参数
        /// </summary>
        private string _strClassParams = string.Empty;
        public string strClassParams
        {
            set { _strClassParams = value; }
        }
        /// <summary>
        /// 发布专题方式标志
        /// </summary>
        private int _specialFlag;
        public int specialFlag
        {
            set { _specialFlag = value; }
        }
        /// <summary>
        /// 发布专题的字符串参数
        /// </summary>
        private string _strSpecialParams = string.Empty;
        public string strSpecialParams
        {
            set { _strSpecialParams = value; }
        }
        //-----------------------------------------------------------------
        /// <summary>
        /// 模板路径
        /// </summary>
        private string TempletPath;
        /// <summary>
        /// 模板实例列表
        /// </summary>
        private IList<Template> templateList = new List<Template>();
        /// <summary>
        /// 所发布成功的新闻、栏目、专题的ID列表
        /// </summary>
        private IList<string> succeedList = new List<string>();
        /// <summary>
        /// 发布失败的新闻、栏目、专题的ID、异常信息
        /// </summary>
        private IList<string> failedList = new List<string>();
        //-----------------------------------------------------------------
        /// <summary>
        /// 是否显示生成进度条标志
        /// </summary>
        private bool _isProgressBar;
        /// <summary>
        /// 要发布的新闻条数
        /// </summary>
        private int nNewsCount = 0;
        /// <summary>
        /// 要发布的栏目数
        /// </summary>
        private int nClassCount = 0;
        /// <summary>
        /// 要发布的专题数
        /// </summary>
        private int nSpecialCount = 0;
        /// <summary>
        /// 当前的用户名
        /// </summary>
        private string userName = string.Empty;
        /// <summary>
        /// 网站根目录物理路径
        /// </summary>
        public string SiteRootPath = string.Empty;
        /// <summary>
        /// 生成每一条新闻的路径
        /// </summary>
        private string saveNewsPath = string.Empty;
        /// <summary>
        /// 生成每一个栏目的路径
        /// </summary>
        private string saveClassPath = string.Empty;
        /// <summary>
        /// 生成每一个专题的路径
        /// </summary>
        private string saveSpecialPath = string.Empty;
        /// <summary>
        /// 获取模板目录
        /// </summary>
        private string strTempletDir = NetCMS.Config.UIConfig.dirTemplet;
        /// <summary>
        /// 构造函数,传入标志和页面信息字符串
        /// </summary>
        /// <param name="_tempPath"></param>        
        public UltiPublish(bool isProgressBar)
        {
            _isProgressBar = isProgressBar;
            // SiteRootPath = NetCMS.Common.ServerInfo.GetRootPath() + "\\";
            SiteRootPath = NetCMS.Common.ServerInfo.GetRootPath();
        }
        //-----------------------------------------------------------------
        /// <summary>
        /// 关闭所有数据库连接
        /// </summary>
        public void CloseAllConnection()
        {

        }
        //-----------------------------------------------------------------
        /// <summary>
        /// 开始发布
        /// </summary>
        public void StartPublish()
        {
            CommonData.Initialize();
            HProgressBar.Start();
            if (_isPubindex) { ultiPublishIndex(); }
            if (_isPubNews) { ultiPublishNews(); }
            if (_isPubClass) { ultiPublishClass(); }
            if (_isPubSpecial) { ultiPublishSpecial(); }
        }
        /// <summary>
        /// 生成主页
        /// </summary>
        private void ultiPublishIndex()
        {
            try
            {
                HProgressBar.Roll("正在发布主页", 0);
                string indexname = "index.html";
                TempletPath = NetCMS.Common.Public.readparamConfig("IndexTemplet"); //rd["IndexTemplet"].ToString();
                TempletPath = TempletPath.Replace("/", "\\");
                TempletPath = TempletPath.ToLower().Replace("{@dirtemplet}", strTempletDir);
                indexname = NetCMS.Common.Public.readparamConfig("IndexFileName");//rd["IndexFileName"].ToString();
                Template indexTemp = new Template(SiteRootPath.Trim('\\') + TempletPath, TempType.Index);
                indexTemp.GetHTML();
                indexTemp.ReplaceLabels();
                indexTemp.ReplaceIMLabels();
                General.WriteHtml(indexTemp.FinallyContent, SiteRootPath.TrimEnd('\\') + "\\" + indexname);
                General.publishXML("0");
                //发布今日历史文档
                General.publishHistryIndex(0);
                HProgressBar.Roll("发布主页成功。&nbsp;<a class=\"list_link\" href=\"javascript:history.back();\">返 回</a> &nbsp; <a class=\"list_link\" href=\"../../" + indexname + "\" target=\"_blank\">浏览首页</a>", 100);
            }
            catch (Exception ex)
            {
                NetCMS.Common.Public.savePublicLogFiles("□□□发布主页", "【错误描述:】\r\n" + ex.ToString(), "");
                HProgressBar.Roll("发布主页失败。<a href=\"error/geterror.aspx?\">查看日志</a>", 0);
            }
        }
        /// <summary>
        /// 生成所有新闻
        /// </summary>
        private void ultiPublishNews()
        {
            using (IDataReader rd = getAllNews())
            {
                int num = 0;
                int succeedNum = 0;
                int failedNum = 0;
                bool flag = false;
                if (nNewsCount > 0)
                {
                    while (rd.Read())
                    {
                        flag = true;
                        TempletPath = rd["templet"].ToString();
                        TempletPath = TempletPath.Replace("/", "\\");
                        TempletPath = TempletPath.ToLower().Replace("{@dirtemplet}", strTempletDir);
                        setSaveNewsPath(rd["classID"].ToString(), rd["SavePath"].ToString(), rd["FileName"].ToString(), rd["FileEXName"].ToString());
                        bool state = publishSingleNews(rd["newsID"].ToString(), rd["datalib"].ToString(), rd["classID"].ToString());//发布一条新闻,返回成功与否                                              
                        num += 1;
                        if (state)
                        {
                            succeedNum++;
                        }
                        else
                        {
                            failedNum++;
                        }
                        string msg = string.Format(MsgFormat, "新闻", nNewsCount.ToString(), ((int)num).ToString(), succeedNum.ToString(), failedNum.ToString(), "发布新闻成功。&nbsp;&nbsp;<a class=\"list_link\" href=\"javascript:history.back();\">返 回</a> &nbsp;&nbsp;&nbsp; <a class=\"list_link\" href=\"../../index.html\" target=\"_blank\">浏览首页</a>");
                        HProgressBar.Roll(msg, (num * 100 / nNewsCount));
                    }
                }
                else
                {
                    HProgressBar.Roll("没有新闻", 0);
                }
                if (!flag)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -