using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using UUN;
using System.Data.SqlClient;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;

public partial class Admin_Template_ContentTemplateList_EditSource : System.Web.UI.Page
{
    private 访问 访问;
    protected String 预览地址;
    protected String 模板名称;
    protected String 模板类型;
    protected bool 是否WAP;
    protected String 内容类型;
    protected String 模板组;
    protected 设置 模板;
    protected int ID;
    protected void Page_Load(object sender, EventArgs e)
    {
        模板类型 = Request.QueryString["ttype"];
        访问 = new 访问(this.Context);
        访问.开始处理("修改" + 模板类型 + "模板", "网站后台", "修改" + 模板类型 + "模板", new 访问.回调委托(ZhiXing));
        访问.关闭连接();
    }
    private void ZhiXing()
    {
        访问.验证管理员();

        模板组 = Request.QueryString["group"];
        ID = Convert.ToInt32(Request.QueryString["ID"]);
        模板 = new 设置(File.ReadAllText(Server.MapPath("~/Template/Content/" + 模板组 + "/Content/" + ID + ".xml"), Encoding.UTF8));

        模板类型 = 模板["模板类型"].ToString();
        是否WAP = Convert.ToBoolean(模板["是否WAP"]);
        内容类型 = 模板["内容类型"].ToString();
        String 代码内容 = 模板["代码内容"].ToString();

        预览地址 = 程序.安装位置 + "Admin/WAPLiuLanQi.aspx?url=" +
            Server.UrlEncode("http://" + Request.Url.Authority + 程序.安装位置 + "Template/Content/" + 模板组 + "/Content_Aspx/" + ID + ".aspx");

        if (!this.IsPostBack)
        {
            Label1.Text = 模板["模板名称"].ToString();
            DaiMa.Text = "正在获取..";
            HDM.Value = 代码内容;
        }
    }

    private void 修改内容列表模板()
    {
        访问.验证权限("52");
        String 代码内容 = DaiMa.Text;
        String ASPX代码, CS代码;

        编译器 编译器 = new 编译器(this.Context, 访问.连接, "内容模板/" + 模板类型 + "/" + 内容类型, 是否WAP);
        编译器.模板名称 = 模板组;
        编译器.开始执行代码 = 编译器.开始执行代码
            .Replace("$所在位置$", 模板类型)
            .Replace("$内容类型$", "其它")
            .Replace("$内容小类型$", 模板类型);
        编译器.文件名称 = "{$文件名称$}";
        CS代码 = 编译器.编译(代码内容, "{$文件夹$}/{$文件$}", out ASPX代码);

        模板["查询字段"] = 编译器.查询字段;
        模板["代码内容"] = 代码内容;
        File.WriteAllText(Server.MapPath("~/Template/Content/" + 模板组 + "/Content/" + ID + ".xml"),
            模板.生成XML(), Encoding.UTF8);

        File.WriteAllText(Server.MapPath("~/Template/Content/" + 模板组 + "/Content_Aspx/" + ID + ".aspx"),
            ASPX代码.Replace("{$文件夹$}", "Template_Content_" + 模板组 + "_Content_Aspx")
                .Replace("{$文件$}", ID.ToString())
                .Replace("{$ID$}", "0"),
            Encoding.UTF8);
        File.WriteAllText(Server.MapPath("~/Template/Content/" + 模板组 + "/Content_Aspx/" + ID + ".aspx.cs"),
            CS代码.Replace("{$文件夹$}", "Template_Content_" + 模板组 + "_Content_Aspx")
                .Replace("{$文件$}", ID.ToString())
                .Replace("{$ID$}", "0"),
            Encoding.UTF8);
        HDM.Value = DaiMa.Text;
        DaiMa.Text = "正在获取..";

        访问统计_管理记录 管理记录 = new 访问统计_管理记录(this.Context, 访问.连接);
        管理记录.记录("修改" + 模板类型 + "模板[" + 模板["模板名称"] + "]。", 访问.用户["昵称"].ToString());
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        访问.连接.Open();
        修改内容列表模板();
        访问.关闭连接();
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        访问.连接.Open();
        修改内容列表模板();
        访问.关闭连接();

        Response.Redirect("ContentTemplateList.aspx?ttype="+Server.UrlEncode(模板类型)+"&group="+Server.UrlEncode(模板组));
    }
}
