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

📄 site.cs

📁 最好用的站点内容管理系统 全部源代码都有
💻 CS
字号:
//======================================================
//==     (c)2008 aspxcms inc by NeTCMS v1.0              ==
//==          Forum:bbs.aspxcms.com                   ==
//==         Website:www.aspxcms.com                  ==
//======================================================
using System;
using System.Text;
using System.Data;
using System.IO;
using System.Xml;
using NetCMS.DALFactory;
using NetCMS.Model;

namespace NetCMS.Content
{
    /// <summary>
    /// 频道管理类
    /// </summary>
    public class Site
    {
        private ISite dal;
        /// <summary>
        /// 构造函数
        /// </summary>
        public Site()
        {
            dal = DataAccess.CreateSite();
        }
        /// <summary>
        /// 新增一个频道
        /// </summary>
        /// <param name="site">新增频道的相关信息</param>
        /// <returns>返回新增频道的自增长ID</returns>
        public int Add(STSite site)
        {
            string SiteID;
            site = FieldsHandle(site);
            int n = dal.Add(site,NetCMS.Global.Current.SiteID,out SiteID);
            CreateSiteFile(SiteID, site.EName, site.CName);
            return n;
        }
        /// <summary>
        /// 删除一个或多个频道
        /// </summary>
        /// <param name="id">要删除的频道的编号,如果是多个则以逗号间隔</param>
        public void Delete(string id)
        {
            Exception e;
            string[] DelsPath;
            string rootpath = NetCMS.Common.ServerInfo.GetRootPath();
            bool flag = dal.Delete(id, out e, out DelsPath);
            if (!flag)
            {
                throw e;
            }
            else
            {
                foreach (string Path in DelsPath)
                {
                    try
                    {
                        string _Path = rootpath + Path;
                        if (File.Exists(_Path))
                            File.Delete(_Path);
                    }
                    catch
                    {
                        ////////////////////应写日志
                    }
                }
            }
        }
        /// <summary>
        /// 将一个或多个频道放入回收站
        /// </summary>
        /// <param name="id">频道的编号,如果是多个,则以逗号间隔</param>
        public void Recyle(string id)
        {
            dal.Recyle(id);
        }
        /// <summary>
        /// 修改频道信息
        /// </summary>
        /// <param name="id">要修改的频道编号</param>
        /// <param name="site">频道的相关信息</param>
        public void Update(int id,STSite site)
        {
            site = FieldsHandle(site);
            dal.Update(id,site);
            CreateSiteFile(site.ChannelID, site.EName, site.CName);
        }
        /// <summary>
        /// 获取频道的列表
        /// </summary>
        /// <param name="sttype">要获得的频道的类型(为内部还是外部还是所有)</param>
        /// <returns>返回数据集</returns>
        public DataTable List(SiteType sttype)
        {
            return dal.List(sttype);
        }

        /// <summary>
        /// 返回频道列表
        /// </summary>
        /// <returns></returns>
        public IDataReader siteList()
        {
            return dal.siteList();
        }

        /// <summary>
        /// 获取某个单一频道的信息(主要用于频道修改)
        /// </summary>
        /// <param name="id">要获取的频道的编号</param>
        /// <returns>数据集</returns>
        public DataTable GetSingle(int id)
        {
            return dal.GetSingle(id);
        }

        /// <summary>
        /// 获取某个单一频道的信息(主要用于频道修改)
        /// </summary>
        /// <param name="id">要获取的频道的12位随机编号</param>
        /// <returns>数据集</returns>
        public DataTable GetSiteInfo(string ChannelID)
        {
            return dal.GetSiteInfo(ChannelID);
        }

        /// <summary>
        /// 用于新增频道和修改频道时,对相关的值进行设定
        /// </summary>
        /// <param name="site">频道的相关信息</param>
        /// <returns>处理后的信息</returns>
        private STSite FieldsHandle(STSite site)
        {
            if (site.IsURL == 1)
            {
                #region 选择为外部频道时
                site.IndexTemplet = "";
                site.ClassTemplet = "";
                site.ReadNewsTemplet = "";
                site.SpecialTemplet = "";
                site.Domain = "";
                site.isCheck = -1;
                site.Keywords = "";
                site.ContrTF = 0;
                site.UpfileSize = -1;
                site.UpfileType = "";
                site.SaveFileType = -1;
                site.SaveType = -1;
                site.PicSavePath = "";
                site.SaveDirPath = "";
                site.SaveDirRule = "";
                site.SaveFileRule = "";
                site.ClassEXName = "";
                site.SpecialEXName = "";
                site.IndexEXName = "";
                site.NewsEXName = "";
                #endregion 选择为外部频道时
            }
            else
            {
                site.Urladdress = "";
            }
            return site;
        }
        /// <summary>
        /// 建立频道的XML文件
        /// </summary>
        /// <param name="siteid">频道的编号</param>
        /// <param name="ename">频道英文名称</param>
        /// <param name="cname">频道中文名称</param>
        private void CreateSiteFile(string siteid,string ename,string cname)
        {
            string pathroot = NetCMS.Common.ServerInfo.GetRootPath() + "\\" + NetCMS.Config.UIConfig.dirSite + "\\" + ename;
            if (!Directory.Exists(pathroot))
                Directory.CreateDirectory(pathroot);
            string filepath = pathroot +"\\site.xml";
            if (File.Exists(filepath))
            {
                XmlDocument xml = new XmlDocument();
                xml.Load(filepath);
                XmlNode node = xml.DocumentElement;//移到rss节点 
                node = node.FirstChild;//移到siteparm子节点 
                node = node.FirstChild;//移到item子节点 
                node = node.FirstChild;//移到sitename子节点 
                node.InnerText = cname;//修改内容 
                xml.Save(filepath);//保存 
            }
            else
            {
                XmlTextWriter xmlwrt = new XmlTextWriter(filepath, Encoding.UTF8);
                xmlwrt.Formatting = Formatting.Indented;
                xmlwrt.WriteStartDocument();
                xmlwrt.WriteStartElement("rss");
                xmlwrt.WriteAttributeString("version", "2.0");
                xmlwrt.WriteStartElement("siteparm");
                xmlwrt.WriteStartElement("item");
                xmlwrt.WriteElementString("sitename", cname);
                xmlwrt.WriteElementString("siteid", siteid);
                xmlwrt.WriteEndElement();
                xmlwrt.WriteEndElement();
                xmlwrt.WriteEndElement();
                xmlwrt.WriteEndDocument();
                xmlwrt.Flush();
                xmlwrt.Close();
            }
        }

        /// <summary>
        /// 得到站点栏目数
        /// </summary>
        /// <param name="siteid"></param>
        /// <returns></returns>
        public int getsiteClassCount(string siteid)
        {
            return dal.getsiteClassCount(siteid);
        }
    }
}

⌨️ 快捷键说明

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