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

📄 staticfile.aspx.cs

📁 如果不使用IIS,请先运行 XSP.exe,待提示已侦听 8080端口后
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DNNLite.StaticFile;
using System.IO;

public partial class Manage_StaticFile : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindPage();
            
        }
    }

    private void BindPage()
    {
        if (DNNLite.Comm.Comm.PortalInfo.StaticMode == 1)
        {
            rdoHotStatic.Checked = true;
        }
        else if (DNNLite.Comm.Comm.PortalInfo.StaticMode == 0)
        {
            rdoNotStatic.Checked = true;
        }
        else if (DNNLite.Comm.Comm.PortalInfo.StaticMode == 2)
        {
            rdo404Static.Checked = true;
        }

        IList<DNNLite.Entites.Tab.TabInfo>  tabs = 
            DNNLite.Entites.Tab.TabInfoController.GetTabs(true, false, false);
        grdPageSetting.DataSource = tabs;
        grdPageSetting.DataKeyNames = new string[] { "TabId" };
        grdPageSetting.DataBind();
    }





    #region bind methods

    protected string UseOrClose(int tabid)
    {
        if (DNNLite.StaticFile.StaticFile.Config.ContainsKey(tabid))
        {
            if( ((DNNLite.StaticFile.StaticFileConfig)DNNLite.StaticFile.StaticFile.Config[tabid]).NeedStatic  )
            {
                return "停用";
            }
            return "启用";
        }

        else
        {
            return "启用";
        }
    }

    protected string GetPublishDate(int tabid)
    {
        if (DNNLite.StaticFile.StaticFile.Config.ContainsKey(tabid))
        {
            if (((DNNLite.StaticFile.StaticFileConfig)DNNLite.StaticFile.StaticFile.Config[tabid]).NeedStatic)
            {
                return ((DNNLite.StaticFile.StaticFileConfig)DNNLite.StaticFile.StaticFile.Config[tabid]).Expire.ToString() ;
            }
            return "";
        }

        else
        {
            return "";
        }
    }

    protected bool GetCanPublish(int tabid)
    {
        if (DNNLite.StaticFile.StaticFile.Config.ContainsKey(tabid))
        {
            if (((DNNLite.StaticFile.StaticFileConfig)DNNLite.StaticFile.StaticFile.Config[tabid]).NeedStatic)
            {
                return true ;
            }
            return false ;
        }

        else
        {
            return false;
        }
    }
    #endregion

    protected void grdPageSetting_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Static")
        {
            int tabid = int.Parse(e.CommandArgument.ToString());
            if (StaticFile.Config.ContainsKey(tabid))
            {
                StaticFileConfig cfg = (StaticFileConfig)StaticFile.Config[tabid];
                cfg.NeedStatic = !cfg.NeedStatic;
                cfg.Save();
                
            }
            else
            {
                StaticFileConfig cfg = new StaticFileConfig();
                cfg.Expire = DateTime.Now;
                cfg.NeedStatic = true;
                cfg.TabId = tabid;
                cfg.Create();

                StaticFile.Config.Add(tabid, cfg);
                
            }

            Response.Redirect(Request.RawUrl );

        }

        if (e.CommandName == "Publish")
        {
            int tabid = int.Parse(e.CommandArgument.ToString());
            
             StaticFileConfig cfg = (StaticFileConfig)StaticFile.Config[tabid];
             cfg.Expire = DateTime.Now;
             cfg.Save();

             #region "如果采用404静态化法,那么需要让原html页面失效。最简单的办法就是直接把员文件夹改名处理,如此,就可以重新生成静态页了"
             if (DNNLite.Comm.Comm.PortalInfo.StaticMode == 2)
             {
                 if (tabid == DNNLite.Comm.Comm.PortalInfo.HomeTabId)
                 {
                     try
                     {
                         File.Delete(Server.MapPath("~/index.html"));
                     }
                     catch (IOException)
                     {
                         lblerr.Text += "没能成功删除文件.请手动删除此文件:index.html";
                         
                     }
                 }

                 DNNLite.Entites.Tab.TabInfo  tab = DNNLite.Service.SystemLoadController.GetTabInfo(tabid.ToString());
                 Directory.CreateDirectory( Server.MapPath("~/HTML/removed") );
                 if (Directory.Exists(Server.MapPath("~/HTML/pages/" + tab.TabName)))
                 {
                     try
                     {
                         Directory.Move(Server.MapPath("~/HTML/pages/" + tab.TabName+"/"), Server.MapPath("~/HTML/removed/"+ DateTime.Now.ToString("yyyyMMddHHmmss")+"/") );
                     }
                     catch (IOException)
                     {
                         lblerr.Text += "没能成功删除文件夹.请手动删除此文件夹:" + "/HTML/pages/" + tab.TabName;
                     }
                 }

                 if (lblerr.Text != "")
                 {
                     return;
                 }


             }
             #endregion



             Response.Redirect(Request.RawUrl);
        }


    }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        if (rdoHotStatic.Checked)
        {
            DNNLite.Comm.Comm.PortalInfo.StaticMode = 1;
            Castle.ActiveRecord.ActiveRecordMediator<DNNLite.Entites.PortalInfo>.Update(DNNLite.Comm.Comm.PortalInfo );
        }
        else if (rdoNotStatic.Checked)
        {
            DNNLite.Comm.Comm.PortalInfo.StaticMode = 0;
            Castle.ActiveRecord.ActiveRecordMediator<DNNLite.Entites.PortalInfo>.Update(DNNLite.Comm.Comm.PortalInfo);

        }
        else if (rdo404Static.Checked)
        {
            DNNLite.Comm.Comm.PortalInfo.StaticMode = 2;
            Castle.ActiveRecord.ActiveRecordMediator<DNNLite.Entites.PortalInfo>.Update(DNNLite.Comm.Comm.PortalInfo);

        }

    }
}

⌨️ 快捷键说明

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