/*******************************************************************************
* iNethinkCMS - 网站内容管理系统
* Copyright (C) 2012-2013 inethink.com
*
* @author jackyang <69991000@qq.com>
* @website http://cms.inethink.com
* @version 1.3.6.0 (2013-08-14)
*
* This is licensed under the GNU LGPL, version 3.0 or later.
* For details, see: http://www.gnu.org/licenses/gpl-3.0.html
*******************************************************************************/
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
using iNethinkCMS.Web.UI;
using iNethinkCMS.Helper;
using iNethinkCMS.Command;
namespace iNethinkCMS.Web.plugs.guestbook
{
public partial class index : BasePage
{
private string vXmlPath = @"/plugs/guestbook/setting.xml";
private string vState;
private string vTemplatepath;
private string vTimeinterval;
private string vContentlength;
private string vContentclearhtml;
private string vSecuritycode;
protected void Page_Load(object sender, EventArgs e)
{
vState = XMLHelper.GetXmlAttribute(Server.MapPath(vXmlPath), "//plugs//config//key[@name=\"state\"]", "value").Value.Trim();
vTemplatepath = XMLHelper.GetXmlAttribute(Server.MapPath(vXmlPath), "//plugs//config//key[@name=\"templatepath\"]", "value").Value.Trim();
vTimeinterval = XMLHelper.GetXmlAttribute(Server.MapPath(vXmlPath), "//plugs//config//key[@name=\"timeinterval\"]", "value").Value.Trim();
vContentlength = XMLHelper.GetXmlAttribute(Server.MapPath(vXmlPath), "//plugs//config//key[@name=\"contentlength\"]", "value").Value.Trim();
vContentclearhtml = XMLHelper.GetXmlAttribute(Server.MapPath(vXmlPath), "//plugs//config//key[@name=\"contentclearhtml\"]", "value").Value.Trim();
vSecuritycode = XMLHelper.GetXmlAttribute(Server.MapPath(vXmlPath), "//plugs//config//key[@name=\"securitycode\"]", "value").Value.Trim();
//判断是否开启
if (vState == "0")
{
Response.Write("
留言板功能尚未开启!
");
Response.End();
}
string vAct = "";
vAct = Request.QueryString["Act"] != null ? Request.QueryString["Act"] : "";
switch (vAct)
{
case "guestbooksubmit":
#region 提交留言信息
//防止外部提交
if (Command_Function.Fun_CheckPost())
{
Response.Write("请勿外部提交!
");
Response.End();
}
//判断时间限制
if (int.Parse(vTimeinterval) > 0)
{
string vLastPostTimeStr = Command_Session.Get("GuestBook_PostTime_Last");
if (Command_Validate.IsDateTime(vLastPostTimeStr))
{
DateTime vLastPostTime = DateTime.Parse(vLastPostTimeStr);
TimeSpan Ts = new System.TimeSpan(DateTime.Now.Ticks - vLastPostTime.Ticks);
if (Ts.TotalSeconds <= int.Parse(vTimeinterval))
{
Response.Write("E000");
Response.End();
}
}
}
//取值
string vGuestbookUserName = Request.Form["sGuestbookUserName"];
string vGuestbookUserIP = Command.Command_Function.GetUserIp();
string vGuestbookTel = Request.Form["sGuestbookTel"];
string vGuestbookCompany = Request.Form["sGuestbookCompany"];
string vGuestbookAddress = Request.Form["sGuestbookAddress"];
string vGuestbookEmail = Request.Form["sGuestbookEmail"];
string vGuestbookQQ = Request.Form["sGuestbookQQ"];
string vGuestbookContent = Request.Form["sGuestbookContent"];
string vGuestbookSecuritycode = Request.Form["sGuestbookSecuritycode"];
DateTime vGuestbookTime = DateTime.Now;
string vReplyUserName = "";
string vReplyContent = "";
//DateTime vReplyTime;
int vDisplay = 0;
int vOrderNum = 0;
vGuestbookUserName = Command.Command_StringPlus.Left(Command.Command_Validate.SqlTextClear(Command.Command_StringPlus.LostHTML(vGuestbookUserName)), 20);
vGuestbookCompany = Command.Command_StringPlus.Left(Command.Command_Validate.SqlTextClear(Command.Command_StringPlus.LostHTML(vGuestbookCompany)), 100);
vGuestbookAddress = Command.Command_StringPlus.Left(Command.Command_Validate.SqlTextClear(Command.Command_StringPlus.LostHTML(vGuestbookAddress)), 100);
vGuestbookTel = Command.Command_StringPlus.Left(Command.Command_Validate.SqlTextClear(Command.Command_StringPlus.LostHTML(vGuestbookTel)), 100);
vGuestbookEmail = Command.Command_StringPlus.Left(Command.Command_Validate.SqlTextClear(Command.Command_StringPlus.LostHTML(vGuestbookEmail)), 100);
vGuestbookQQ = Command.Command_StringPlus.Left(Command.Command_Validate.SqlTextClear(Command.Command_StringPlus.LostHTML(vGuestbookQQ)), 100);
if (vContentclearhtml == "1")
{
vGuestbookContent = Command.Command_StringPlus.LostHTML(vGuestbookContent);
}
vGuestbookContent = vGuestbookContent.Replace("{", "").Replace("}", "").Replace("'", "").Replace("\"", "").Replace("%", "");
vGuestbookContent = Command.Command_StringPlus.Left(vGuestbookContent, int.Parse(vContentlength));
vGuestbookSecuritycode = Command.Command_Validate.SqlTextClear(vGuestbookSecuritycode);
//验证
if (String.IsNullOrEmpty(vGuestbookUserName))
{
Response.Write("E001");
Response.End();
}
if (String.IsNullOrEmpty(vGuestbookContent))
{
Response.Write("E002");
Response.End();
}
//判断验证码情况
if (vSecuritycode == "1")
{
if (String.IsNullOrEmpty(vGuestbookSecuritycode))
{
Response.Write("E003");
Response.End();
}
if (vGuestbookSecuritycode.ToUpper() != Command.Command_Session.Get("verificationcode").ToUpper())
{
Response.Write("E004");
Response.End();
}
}
//入库
Model.Model_iNethinkCMS_Plugs_Guestbook model = new iNethinkCMS.Model.Model_iNethinkCMS_Plugs_Guestbook();
BLL.BLL_iNethinkCMS_Plugs_Guestbook bll = new iNethinkCMS.BLL.BLL_iNethinkCMS_Plugs_Guestbook();
model.GuestbookUserName = vGuestbookUserName;
model.GuestbookUserIP = vGuestbookUserIP;
model.GuestbookCompany = vGuestbookCompany;
model.GuestbookAddress = vGuestbookAddress;
model.GuestbookTel = vGuestbookTel;
model.GuestbookEmail = vGuestbookEmail;
model.GuestbookQQ = vGuestbookQQ;
model.GuestbookContent = vGuestbookContent;
model.GuestbookTime = vGuestbookTime;
model.ReplyUserName = vReplyUserName;
model.ReplyContent = vReplyContent;
//model.ReplyTime = vReplyTime;
model.Display = vDisplay;
model.OrderNum = vOrderNum;
bll.Add(model);
//写入提交时间Session信息
iNethinkCMS.Command.Command_Session.Add("GuestBook_PostTime_Last", DateTime.Now.ToString());
Response.Write("E100");
#endregion
break;
default:
#region 留言页面显示
string rPage;
rPage = Request.QueryString["page"];
int vPage = 1;
if (rPage != string.Empty && rPage != null && Command.Command_Validate.IsNumber(rPage))
{
vPage = Convert.ToInt32(rPage);
}
string vHtml = "";
bool vWebPageCache = Command.Command_Configuration.GetConfigBool("WebPageCache"); //判断是否启用了页面缓存
if (vWebPageCache == false)
{
vHtml = Fun_GetGuestBookContent(vPage);
}
else
{
int vCacheTime = Command.Command_Configuration.GetConfigInt("CacheTime");
string guestbookCacheKey = Command.Command_Configuration.GetConfigString("CacheKey") + "_GuestBookCache_" + vPage;
object guestbookCacheInfo = Command.Command_DataCache.GetCache(guestbookCacheKey);
//判断缓存是否存在
if (guestbookCacheInfo == null)
{
vHtml = Fun_GetGuestBookContent(vPage);
Command.Command_DataCache.SetCache(guestbookCacheKey, (object)vHtml, DateTime.Now.AddSeconds(vCacheTime), TimeSpan.Zero);
}
else
{
vHtml = guestbookCacheInfo.ToString();
}
}
vHtml = WebUI_Function.Fun_UrlRewriter(vHtml);
Response.Write(vHtml);
#endregion
break;
}
}
private string Fun_GetGuestBookContent(int byPage)
{
string vTemplateUrl = vTemplatepath;
//是否调用移动端模板
if (base.Request.QueryString["m"] != null && base.Request.QueryString["m"].ToString() == "1")
{
vTemplateUrl = Global.MobilePath + vTemplateUrl;
}
vTemplateUrl = isMobile() ? "Mobile/" + vTemplateUrl : vTemplateUrl;
WebUI_Template wt = new WebUI_Template();
wt.Load_Template(vTemplateUrl);
wt.vPage = byPage;
wt.vContent = Regex.Replace(wt.vContent, Regex.Escape("{sys:title}"), siteConfig.WebName, RegexOptions.IgnoreCase);
wt.vContent = Regex.Replace(wt.vContent, Regex.Escape("{sys:seotitle}"), seoConfig.SeoTitle, RegexOptions.IgnoreCase);
wt.vContent = Regex.Replace(wt.vContent, Regex.Escape("{sys:keywords}"), seoConfig.IndexKeywords, RegexOptions.IgnoreCase);
wt.vContent = Regex.Replace(wt.vContent, Regex.Escape("{sys:description}"), seoConfig.IndexDescription, RegexOptions.IgnoreCase);
wt.vContent = Regex.Replace(wt.vContent, Regex.Escape("{sys:sitepath}"), WebUI_Function.Fun_GetSitePath(69), RegexOptions.IgnoreCase);
wt.Parser_MyTag();
wt.Parser_List();
wt.Parser_Page();
wt.Parser_IF();
return wt.vContent;
}
}
}