📄 ultipublish.cs
字号:
//======================================================
//== (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("发布主页成功。 <a class=\"list_link\" href=\"javascript:history.back();\">返 回</a> <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(), "发布新闻成功。 <a class=\"list_link\" href=\"javascript:history.back();\">返 回</a> <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 + -