📄 general.cs
字号:
//======================================================
//== (c)2008 aspxcms inc by NeTCMS v1.0 ==
//== Forum:bbs.aspxcms.com ==
//== Website:www.aspxcms.com ==
//======================================================
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.IO;
using System.Configuration;
using System.Text.RegularExpressions;
using NetCMS.Config;
using NetCMS.Model;
namespace NetCMS.Publish
{
public class General
{
public static string strgTemplet = NetCMS.Config.UIConfig.dirTemplet;
public static string RootInstallDir = NetCMS.Publish.CommonData.SiteDomain;
public static string InstallDir = "{$InstallDir}";
public static string TempletDir = "{$TempletDir}";
/// <summary>
/// 写HTML文件
/// </summary>
/// <param name="Content">内容</param>
/// <param name="FilePath">物理路径</param>
public static void WriteHtml(string Content, string FilePath)
{
string getContent = "";
string getajaxJS = "<script language=\"javascript\" type=\"text/javascript\" src=\"" + CommonData.SiteDomain + "/configuration/js/Prototype.js\"></script>\r\n";
getajaxJS += "<script language=\"javascript\" type=\"text/javascript\" src=\"" + CommonData.SiteDomain + "/configuration/js/jspublic.js\"></script>\r\n";
//开启CNZZ整合
//if (NetCMS.Common.Public.readparamConfig("Open", "Cnzz") == "1")
//{
// getajaxJS += "<script src='http://pw.cnzz.com/c.php?id=" + NetCMS.Common.Public.readparamConfig("SiteID", "Cnzz") + "' " +
// "language='JavaScript' charset='gb2312'></script>\r\n";
//}
string byCreat = "<!--Created by NETCMS v1.0 at " + DateTime.Now + "-->\r\n";
try
{
string Dir = FilePath.Substring(0, FilePath.LastIndexOf("\\"));
if (!Directory.Exists(Dir))
Directory.CreateDirectory(Dir);
using (StreamWriter sw = new StreamWriter(FilePath, false))
{
if (Regex.Match(Content, @"\</head\>[\s\S]*\<body", RegexOptions.IgnoreCase | RegexOptions.Compiled).Success)
{
getContent = Regex.Replace(Content, "<body", getajaxJS + byCreat + "<body", RegexOptions.IgnoreCase | RegexOptions.Compiled);
}
else
{
getContent = getajaxJS + byCreat + Content;
}
//替换
getContent = (getContent.Replace(InstallDir, RootInstallDir)).Replace(TempletDir, strgTemplet);
sw.Write(getContent);
sw.Dispose();
}
}
catch
{ }
}
/// <summary>
/// 创建文件夹
/// </summary>
/// <param name="Path">目录路径</param>
public static void CreateDirectory(string Path)
{
if (!Directory.Exists(Path))
Directory.CreateDirectory(Path);
}
/// <summary>
/// 读取HTML文件内容
/// </summary>
/// <param name="Path">物理路径</param>
/// <returns></returns>
public static string ReadHtml(string Path)
{
string result = string.Empty;
if (File.Exists(Path))
{
try
{
using (StreamReader sr = new StreamReader(Path))
{
result = sr.ReadToEnd();
}
}
catch
{ }
}
else
{
result = "模板不存在!";
}
return result;
}
/// <summary>
/// 从Web.Config读取虚拟目录
/// </summary>
/// <returns></returns>
public static string VirtualDir()
{
return System.Configuration.ConfigurationManager.AppSettings["dirDumm"];
}
/// <summary>
/// 生成栏目的XML
/// </summary>
/// <param name="ClassID"></param>
/// <returns></returns>
public static bool publishXML(string ClassID)
{
bool state = false;
try
{
string SiteRootPath = NetCMS.Common.ServerInfo.GetRootPath() + "\\";
string xmlSTR = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n";
xmlSTR += "<?xml-stylesheet type=\"text/css\" href=\"" + CommonData.SiteDomain + "/sysImages/css/rss.css\"?>\r\n";
xmlSTR += "<rss version=\"2.0\">\r\n";
xmlSTR += "<channel>\r\n";
DataTable dt = CommonData.DalPublish.GetLastNews(50, ClassID);
string ClassEname = "none";
if (dt != null && dt.Rows.Count > 0)
{
string ClassSTR = "/" + dt.Rows[0]["savepath1"].ToString() + "/" + dt.Rows[0]["SaveClassframe"].ToString() + "/" + dt.Rows[0]["ClassSaveRule"];
if (ClassID == "0")
{
xmlSTR += "<title>最新RSS订阅</title>\r\n";
xmlSTR += "<link>" + CommonData.SiteDomain + "/xml/Content/all/news.xml</link>\r\n";
}
else
{
xmlSTR += "<title>" + dt.Rows[0]["ClassCName"].ToString() + "</title>\r\n";
xmlSTR += "<link>" + CommonData.SiteDomain + ClassSTR.Replace("//", "/") + "</link>\r\n";
}
xmlSTR += "<description>RSS订阅_by NetCMS for aspxcms Inc.</description>\r\n";
ClassEname = dt.Rows[0]["ClassEName"].ToString();
for (int i = 0; i < dt.Rows.Count; i++)
{
xmlSTR += "<item id=\"" + (i + 1) + "\">\r\n";
xmlSTR += "<title><![CDATA[" + dt.Rows[i]["NewsTitle"].ToString() + "]]></title>\r\n";
string linkstr = CommonData.SiteDomain + "/" + dt.Rows[i]["savepath1"].ToString() + "/" + dt.Rows[i]["SaveClassframe"].ToString() + "/" + dt.Rows[i]["FileName"].ToString() + dt.Rows[i]["FileEXName"].ToString();
xmlSTR += "<link>" + linkstr.Replace("//", "/") + "</link>\r\n";
string ContentSTR = dt.Rows[i]["Content"].ToString();
if (ContentSTR != string.Empty && ContentSTR != null)
{
xmlSTR += "<description><![CDATA[" + NetCMS.Common.Input.FilterHTML(NetCMS.Common.Input.GetSubString(ContentSTR, 200)) + "]]></description>\r\n";
}
else
{
xmlSTR += "<description><![CDATA[]]></description>\r\n";
}
xmlSTR += "<pubDate>" + dt.Rows[i]["CreatTime"].ToString() + "</pubDate>\r\n";
xmlSTR += "</item>\r\n";
}
xmlSTR += "</channel>\r\n";
xmlSTR += "</rss>\r\n";
string filePath = SiteRootPath + "\\xml\\Content\\" + ClassEname + ".xml";
if (ClassID == "0")
{
filePath = SiteRootPath + "\\xml\\Content\\all\\news.xml";
}
using (StreamWriter sw = new StreamWriter(filePath, false))
{
sw.Write(xmlSTR);
sw.Dispose();
}
state = true;
}
}
catch (Exception e)
{
NetCMS.Common.Public.savePublicLogFiles("□□□ 生成栏目XML", "【ClassID】:" + ClassID + "\r\n【错误描述:】\r\n" + e.ToString(), "");
state = false;
}
return state;
}
/// <summary>
/// 生成频道栏目的XML
/// </summary>
/// <param name="ClassID"></param>
/// <returns></returns>
public static bool publishCHXML(int ClassID, int ChID)
{
bool state = false;
try
{
string SiteRootPath = NetCMS.Common.ServerInfo.GetRootPath() + "\\";
string xmlSTR = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n";
xmlSTR += "<?xml-stylesheet type=\"text/css\" href=\"" + CommonData.SiteDomain + "/sysImages/css/rss.css\"?>\r\n";
xmlSTR += "<rss version=\"2.0\">\r\n";
xmlSTR += "<channel>\r\n";
DataTable dt = CommonData.DalPublish.GetLastCHNews(50, ClassID, ChID);
string ClassEname = "none";
string dirHTML = NetCMS.Common.Public.readCHparamConfig("htmldir", ChID);
dirHTML = dirHTML.Replace("{@dirHTML}", NetCMS.Config.UIConfig.dirHtml);
if (dt != null && dt.Rows.Count > 0)
{
string ClassSTR = "/" + dirHTML + "/" + dt.Rows[0]["savepath1"].ToString() + "/" + dt.Rows[0]["fileName"].ToString();
ClassSTR = ClassSTR.Replace("//", "/");
if (ClassID == 0)
{
xmlSTR += "<title>最新RSS订阅</title>\r\n";
xmlSTR += "<link>" + CommonData.SiteDomain + "/xml/channel/" + ChID + "_index.xml</link>\r\n";
}
else
{
xmlSTR += "<title>" + dt.Rows[0]["ClassCName"].ToString() + "</title>\r\n";
xmlSTR += "<link>" + CommonData.SiteDomain + ClassSTR.Replace("//", "/") + "</link>\r\n";
}
xmlSTR += "<description>RSS订阅_by NetCMS for aspxcms Inc.</description>\r\n";
ClassEname = dt.Rows[0]["ClassEName"].ToString();
for (int i = 0; i < dt.Rows.Count; i++)
{
xmlSTR += "<item id=\"" + (i + 1) + "\">\r\n";
xmlSTR += "<title><![CDATA[" + dt.Rows[i]["Title"].ToString() + "]]></title>\r\n";
string linkstr = "/" + dirHTML + "/" + dt.Rows[i]["savepath1"].ToString() + "/" + dt.Rows[i]["SavePath"].ToString() + "/" + dt.Rows[i]["FileName"].ToString();
xmlSTR += "<link>" + CommonData.SiteDomain + linkstr.Replace("//", "/") + "</link>\r\n";
string ContentSTR = dt.Rows[i]["Content"].ToString();
if (ContentSTR != string.Empty && ContentSTR != null)
{
xmlSTR += "<description><![CDATA[" + NetCMS.Common.Input.FilterHTML(NetCMS.Common.Input.GetSubString(ContentSTR, 200)) + "]]></description>\r\n";
}
else
{
xmlSTR += "<description><![CDATA[]]></description>\r\n";
}
xmlSTR += "<pubDate>" + dt.Rows[i]["CreatTime"].ToString() + "</pubDate>\r\n";
xmlSTR += "</item>\r\n";
}
xmlSTR += "</channel>\r\n";
xmlSTR += "</rss>\r\n";
string filePath = SiteRootPath + "\\xml\\channel\\" + ChID + "_" + dt.Rows[0]["id1"].ToString() + ".xml";
if (ClassID == 0)
{
filePath = SiteRootPath + "\\xml\\channel\\" + ChID + "_index.xml";
}
using (StreamWriter sw = new StreamWriter(filePath, false))
{
sw.Write(xmlSTR);
sw.Dispose();
}
state = true;
}
}
catch (Exception e)
{
NetCMS.Common.Public.savePublicLogFiles("□□□ 生成栏目XML,频道ID" + ChID + "", "【ClassID】:" + ClassID + "\r\n【错误描述:】\r\n" + e.ToString(), "");
state = false;
}
return state;
}
/// <summary>
/// 生成归档
/// </summary>
/// <param name="ClassID"></param>
/// <returns></returns>
public static bool publishHistryIndex(int Numday)
{
bool state = false;
try
{
string SiteRootPath = NetCMS.Common.ServerInfo.GetRootPath() + "\\";
string historydir = NetCMS.Config.UIConfig.dirPige;
string dimm = NetCMS.Config.UIConfig.dirDumm;
string dirTemplet = NetCMS.Config.UIConfig.dirTemplet;
if (dimm.Trim() != string.Empty)
{
dimm = "/" + dimm;
}
DataTable dt = CommonData.DalPublish.Gethistory(Numday);
if (dt != null && dt.Rows.Count > 0)
{
string TempletPath = "/{@dirtemplet}/Content/indexPage.html";
TempletPath = TempletPath.Replace("/", "\\").ToLower();
TempletPath = TempletPath.ToLower().Replace("{@dirtemplet}", dirTemplet);
TempletPath = SiteRootPath.Trim('\\') + TempletPath;
string Content = ReadHtml(TempletPath);
string liststr = "";
string urls = "";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -