📄 utipublishchannel.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
{
/// <summary>
/// 是否发布主页、新闻、栏目、专题,bool标志
/// </summary>
private bool _isCHPubindex;
public bool IsCHPublishIndex
{
set { _isCHPubindex = value; }
}
/// <summary>
/// 是否发布新闻,bool标志
/// </summary>
private bool _isCHPubNews;
public bool IsCHPubNews
{
set { _isCHPubNews = value; }
}
/// <summary>
/// 是否发布栏目,bool标志
/// </summary>
private bool _isCHPubClass;
public bool IsCHPubClass
{
set { _isCHPubClass = value; }
}
/// <summary>
/// 是否发布专题,bool标志
/// </summary>
private bool _isCHPubSpecial;
public bool IsCHPubSpecial
{
set { _isCHPubSpecial = value; }
}
//-----------------------------------------------------------------
/// <summary>
/// 发布频道新闻方式标志
/// </summary>
private int _CHnewsFlag;
public int CHnewsFlag
{
set { _CHnewsFlag = value; }
}
/// <summary>
/// 发布频道新闻的字符串参数
/// </summary>
private string _strNewsCHParams = string.Empty;
public string strNewsCHParams
{
set { _strNewsCHParams = value; }
}
/// <summary>
/// 发布频道栏目方式标志
/// </summary>
private int _ClassCHFlag;
public int ClassCHFlag
{
set { _ClassCHFlag = value; }
}
/// <summary>
/// 发布频道栏目的字符串参数
/// </summary>
private string _strClassCHParams = string.Empty;
public string strClassCHParams
{
set { _strClassCHParams = value; }
}
/// <summary>
/// 发布频道专题方式标志
/// </summary>
private int _CHspecialFlag;
public int CHspecialFlag
{
set { _CHspecialFlag = value; }
}
/// <summary>
/// 发布频道专题的字符串参数
/// </summary>
private string _strCHSpecialParams = string.Empty;
public string strCHSpecialParams
{
set { _strCHSpecialParams = value; }
}
/// <summary>
/// 取得频道ID
/// </summary>
private int _ChID;
public int intCHID
{
set { _ChID = value; }
get { return _ChID; }
}
/// <summary>
/// 取得频道表
/// </summary>
private string _Table;
public string strCHTalbe
{
set { _Table = value; }
get { return _Table; }
}
/// <summary>
/// 要发布频道的新闻条数
/// </summary>
private int nCHNewsCount = 0;
/// <summary>
/// 要发布频道的栏目数
/// </summary>
private int nCHClassCount = 0;
/// <summary>
/// 要发布频道的专题数
/// </summary>
private int nCHSpecialCount = 0;
/// <summary>
/// 生成每一条频道新闻的路径
/// </summary>
private string saveinfoPath = string.Empty;
private string saveCHClassPath = string.Empty;
//-----------------------------------------------------------------
/// <summary>
/// 开始发布频道
/// </summary>
public void StartCHPublish()
{
CommonData.Initialize();
HProgressBar.Start();
if (_isCHPubindex) { ultiPublishCHIndex(); }
if (_isCHPubNews) { ultiPublishCHNews(); }
if (_isCHPubClass) { ultiPublishCHClass(); }
if (_isCHPubSpecial) { ultiPublishCHSpecial(); }
}
/// <summary>
/// 生成频道主页
/// </summary>
private void ultiPublishCHIndex()
{
try
{
HProgressBar.Roll("正在频道发布主页", 0);
string indexname = "index.html";
TempletPath = "/" + NetCMS.Config.UIConfig.dirTemplet + "/" + NetCMS.Common.Public.readCHparamConfig("channeltemplet", _ChID);
TempletPath = TempletPath.Replace("//", "/");
TempletPath = TempletPath.Replace("/", "\\");
TempletPath = TempletPath.ToLower().Replace("{@dirtemplet}", strTempletDir);
indexname = NetCMS.Common.Public.readCHparamConfig("channelindexname", _ChID);
Template indexTemp = new Template(SiteRootPath.Trim('\\') + TempletPath, TempType.ChIndex);
indexTemp.ChID = _ChID;
indexTemp.GetHTML();
indexTemp.ReplaceLabels();
indexTemp.ReplaceIMLabels();
string SaveIndexPath = NetCMS.Common.Public.readCHparamConfig("channelindexpath", _ChID);
SaveIndexPath = SaveIndexPath.Replace("//", "/").Replace("{@dirHTML}", NetCMS.Config.UIConfig.dirHtml);
SaveIndexPath = SaveIndexPath.Replace("/", "\\");
General.WriteHtml(indexTemp.FinallyContent, SiteRootPath.TrimEnd('\\') + "\\" + SaveIndexPath);
string dimm = NetCMS.Config.UIConfig.dirDumm;
if (dimm.Trim() != string.Empty){dimm = "/" + dimm;}
HProgressBar.Roll("发布频道主页成功。 <a class=\"list_link\" href=\"javascript:history.back();\">返 回</a> <a class=\"list_link\" href=\"" + (dimm + "/" + SaveIndexPath.Replace("\\", "/")).Replace("//", "/") + "\" target=\"_blank\">浏览首页</a>", 100);
}
catch (Exception ex)
{
NetCMS.Common.Public.savePublicLogFiles("□□□发布主页", "【错误描述:】\r\n" + ex.ToString(),"");
HProgressBar.Roll("发布频道主页失败。<a href=\"../publish/error/geterror.aspx?\">查看日志</a>", 0);
}
}
/// <summary>
/// 生成频道所有信息
/// </summary>
private void ultiPublishCHNews()
{
using (IDataReader rd = getALLCHNews(_Table))
{
int num = 0;
int succeedNum = 0;
int failedNum = 0;
bool flag = false;
if (nCHNewsCount > 0)
{
while (rd.Read())
{
flag = true;
TempletPath = rd["Templet"].ToString();
TempletPath = TempletPath.Replace("/", "\\");
TempletPath = TempletPath.ToLower().Replace("{@dirtemplet}", strTempletDir);
setSaveinfoPath(int.Parse(rd["classID"].ToString()), rd["SavePath"].ToString(), rd["FileName"].ToString());
bool state = publishSingleCHNews(int.Parse(rd["id"].ToString()), _Table, int.Parse(rd["classID"].ToString()));//发布一条新闻,返回成功与否
num += 1;
if (state)
{
succeedNum++;
}
else
{
failedNum++;
}
string msg = string.Format(MsgFormat, "信息", nCHNewsCount.ToString(), ((int)num).ToString(), succeedNum.ToString(), failedNum.ToString(), "发布频道信息成功。 <a class=\"list_link\" href=\"javascript:history.back();\">返 回</a>");
HProgressBar.Roll(msg, (num * 100 / nCHNewsCount));
}
}
else
{
HProgressBar.Roll("频道没有信息", 0);
}
if (!flag)
{
string msg = string.Format(MsgFormat, "信息", nCHNewsCount.ToString(), ((int)num).ToString(), succeedNum.ToString(), failedNum.ToString(), "发布频道信息成功。 <a class=\"list_link\" href=\"javascript:history.back();\">返 回</a>");
if (nCHNewsCount > 0)
{
HProgressBar.Roll(msg, (num * 100 / nCHNewsCount));
}
else
{
HProgressBar.Roll("频道没有信息", 0);
}
}
}
if (templateList.Count != 0)
{
templateList.Clear();
}
if (failedList.Count != 0)
{
for (int i = 0; i < failedList.Count; i++)
{
NetCMS.Common.Public.savePublicLogFiles("□□□发布频道信息", "【ID】:" + failedList[i].Split('$')[0] + "\r\n【错误描述:】\r\n" + failedList[i].Split('$')[1],"");
}
failedList.Clear();
}
if (succeedList.Count != 0)
{
//这里执行存储过程,暂时屏蔽
updateCHNewsIsHtml(_Table, "isHtml", "id");
}
}
/// <summary>
/// 设置已发布新闻、栏目的IsHtml
/// </summary>
private void updateCHNewsIsHtml(string tableName, string isHtml, string idField)
{
try
{
CommonData.DalPublish.UpdateCHNewsIsHtml(tableName, isHtml, idField, succeedList);
}
catch
{
//写日志
}
finally
{
succeedList.Clear();
}
}
/// <summary>
/// 发布一条频道信息
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -