322 lines
14 KiB
C#
322 lines
14 KiB
C#
|
|
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 Song.Extend;
|
|||
|
|
using System.IO;
|
|||
|
|
using System.Text;
|
|||
|
|
using VTemplate.Engine;
|
|||
|
|
using WeiSha.Common;
|
|||
|
|
using Song.ServiceInterfaces;
|
|||
|
|
using Song.Entities;
|
|||
|
|
using WeiSha.WebControl;
|
|||
|
|
using System.Web.SessionState;
|
|||
|
|
|
|||
|
|
namespace Song.Site
|
|||
|
|
{
|
|||
|
|
public abstract class BasePage : System.Web.UI.Page, IHttpHandler, IRequiresSessionState
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// ϵͳ<CFB5>汾<EFBFBD><E6B1BE>
|
|||
|
|
/// </summary>
|
|||
|
|
protected static string version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><>ǰҳ<C7B0><D2B3><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
protected TemplateDocument Document { get; set; }
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><>ǰҳ<C7B0><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
protected WeiSha.Common.Templates.TemplateBank TmBank{ get; set; }
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><>ǰҳ<C7B0><D2B3><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
protected virtual TemplateDocumentConfig DocumentConfig
|
|||
|
|
{
|
|||
|
|
get { return TemplateDocumentConfig.Default; }
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
protected abstract void InitPageTemplate(HttpContext context);
|
|||
|
|
/// <summary>
|
|||
|
|
/// װ<>ص<EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>ĵ<EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
public virtual void LoadCurrentTemplate()
|
|||
|
|
{
|
|||
|
|
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>ҳ
|
|||
|
|
string filePath = this.Request.Url.AbsolutePath;
|
|||
|
|
bool isMobi = isMobilePage(out filePath); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>filePathΪ<68>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>
|
|||
|
|
if (isMobi && LoginState.Accounts.IsLogin)
|
|||
|
|
LoginState.Accounts.Refresh(LoginState.Accounts.CurrentUser);
|
|||
|
|
//ȡģ<C8A1><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
this.TmBank = isMobi ?
|
|||
|
|
WeiSha.Common.Template.ForMobile.SetCurrent(this.Organ.Org_TemplateMobi)
|
|||
|
|
: WeiSha.Common.Template.ForWeb.SetCurrent(this.Organ.Org_Template);
|
|||
|
|
if (TmBank == null) throw new Exception("û<><C3BB><EFBFBD>κ<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>");
|
|||
|
|
//<2F>Ƿ<EFBFBD><C7B7>ǹ<EFBFBD><C7B9><EFBFBD>ҳ<EFBFBD><D2B3>
|
|||
|
|
if (TmBank.Config.Public == null) throw new Exception("δ<>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>⣡");
|
|||
|
|
bool isPublic = TmBank.Config.Public.PageExists(filePath);
|
|||
|
|
if (isPublic) TmBank = TmBank.Config.Public;
|
|||
|
|
//<2F><>ǰģ<C7B0><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|||
|
|
string tmFile = TmBank.Path.Physics + filePath + ".htm";
|
|||
|
|
//װ<><D7B0>ģ<EFBFBD><C4A3>
|
|||
|
|
this.Document = null;
|
|||
|
|
if (!System.IO.File.Exists(tmFile))
|
|||
|
|
{
|
|||
|
|
tmFile = TmBank.Config.Default.Path.Physics + filePath + ".htm";
|
|||
|
|
if (!System.IO.File.Exists(tmFile)) tmFile = TmBank.Config.Public.Path.Physics + "Notfound.htm";
|
|||
|
|
}
|
|||
|
|
this.Document = TemplateDocument.FromFileCache(tmFile, Encoding.UTF8, this.DocumentConfig);
|
|||
|
|
//this.Document = new TemplateDocument(tmFile, Encoding.UTF8, this.DocumentConfig); //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="path"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
protected bool isMobilePage(out string path)
|
|||
|
|
{
|
|||
|
|
bool ismobi = false;
|
|||
|
|
string prefix = "/mobile";
|
|||
|
|
path = this.Request.Url.AbsolutePath;
|
|||
|
|
if (path.Length >= prefix.Length)
|
|||
|
|
{
|
|||
|
|
string pre = path.Substring(0, prefix.Length);
|
|||
|
|
if (pre.ToLower() == prefix.ToLower()) ismobi = true;
|
|||
|
|
}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>ҳ<EFBFBD>棬<EFBFBD><E6A3AC>ȥ<EFBFBD><C8A5>/mobile/·<><C2B7>
|
|||
|
|
if (ismobi) path = path.Substring(prefix.Length);
|
|||
|
|
if (path.IndexOf(".") > -1)
|
|||
|
|
path = path.Substring(path.IndexOf("/") + 1, path.LastIndexOf(".") - 1);
|
|||
|
|
else
|
|||
|
|
path = path.Substring(path.IndexOf("/") + 1);
|
|||
|
|
path = path.Replace("/", "\\");
|
|||
|
|
//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WeiSha.Common.CustomConfig config = CustomConfig.Load(this.Organ.Org_Config);
|
|||
|
|
bool isNoaccess = false; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>
|
|||
|
|
if (ismobi)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<D6B9><CEA2><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><CEA2><EFBFBD><EFBFBD>ʱ
|
|||
|
|
if ((config["DisenableWeixin"].Value.Boolean ?? false) && WeiSha.Common.Browser.IsWeixin) isNoaccess = true;
|
|||
|
|
if ((config["DisenableMini"].Value.Boolean ?? false) && WeiSha.Common.Browser.IsWeixinApp) isNoaccess = true;
|
|||
|
|
if ((config["DisenableMweb"].Value.Boolean ?? false) && (!WeiSha.Common.Browser.IsAPICloud && !WeiSha.Common.Browser.IsWeixin))
|
|||
|
|
isNoaccess = true;
|
|||
|
|
if ((config["DisenableAPP"].Value.Boolean ?? false) && WeiSha.Common.Browser.IsAPICloud) isNoaccess = true;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if ((config["WebForDeskapp"].Value.Boolean ?? false) && !WeiSha.Common.Browser.IsDestopApp) isNoaccess = true;
|
|||
|
|
}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>
|
|||
|
|
if (isNoaccess) path = "Noaccess";
|
|||
|
|
return ismobi;
|
|||
|
|
}
|
|||
|
|
#region <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected new HttpContext Context { get; private set; }
|
|||
|
|
protected new HttpApplicationState Application { get; private set; }
|
|||
|
|
protected new HttpRequest Request { get; private set; }
|
|||
|
|
protected new HttpResponse Response { get; private set; }
|
|||
|
|
protected new HttpServerUtility Server { get; private set; }
|
|||
|
|
protected new HttpSessionState Session { get; private set; }
|
|||
|
|
//<2F><>ǰ<EFBFBD><C7B0><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD>
|
|||
|
|
protected Song.Entities.Organization Organ { get; private set; }
|
|||
|
|
//ѧ<><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʦ<EFBFBD><CAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա
|
|||
|
|
protected Song.Entities.Accounts Account { get; private set; }
|
|||
|
|
protected Song.Entities.Teacher Teacher { get; private set; }
|
|||
|
|
protected Song.Entities.EmpAccount Admin { get; private set; }
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="context"></param>
|
|||
|
|
private void InitContext(HttpContext context)
|
|||
|
|
{
|
|||
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
this.Context = context;
|
|||
|
|
this.Application = context.Application;
|
|||
|
|
this.Request = context.Request;
|
|||
|
|
this.Response = context.Response;
|
|||
|
|
this.Server = context.Server;
|
|||
|
|
this.Session = context.Session;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
this.Organ = Business.Do<IOrganization>().OrganCurrent();
|
|||
|
|
if (this.Organ == null) throw new Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>");
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
throw new Exception(ex.Message);
|
|||
|
|
}
|
|||
|
|
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
if (Extend.LoginState.Accounts.IsLogin)
|
|||
|
|
{
|
|||
|
|
this.Account = Song.Extend.LoginState.Accounts.CurrentUser;
|
|||
|
|
this.Teacher = Song.Extend.LoginState.Accounts.Teacher;
|
|||
|
|
}
|
|||
|
|
if (Extend.LoginState.Admin.IsLogin)
|
|||
|
|
this.Admin = Song.Extend.LoginState.Admin.CurrentUser;
|
|||
|
|
}
|
|||
|
|
public new bool IsReusable
|
|||
|
|
{
|
|||
|
|
get { return false; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public new void ProcessRequest(HttpContext context)
|
|||
|
|
{
|
|||
|
|
string gourl = WeiSha.Common.Skip.GetUrl(); //<2F><>ת
|
|||
|
|
if (!string.IsNullOrWhiteSpace(gourl))
|
|||
|
|
{
|
|||
|
|
context.Response.Redirect(gourl);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
//DateTime beforDT = System.DateTime.Now;
|
|||
|
|
|
|||
|
|
this.InitContext(context); //<2F><>ʼ<EFBFBD><CABC>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
this.LoadCurrentTemplate(); //װ<>ص<EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>ĵ<EFBFBD>
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
//һЩ<D2BB><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
this.Document.SetValue("org", this.Organ);
|
|||
|
|
this.Document.SetValue("orgpath", Upload.Get["Org"].Virtual);
|
|||
|
|
//ѧ<><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʦ<EFBFBD><CAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>¼
|
|||
|
|
if (Extend.LoginState.Accounts.IsLogin)
|
|||
|
|
{
|
|||
|
|
this.Document.SetValue("Account", this.Account);
|
|||
|
|
this.Document.SetValue("stuid", Extend.LoginState.Accounts.UID);
|
|||
|
|
}
|
|||
|
|
if (Extend.LoginState.Accounts.IsLogin) this.Document.SetValue("Teacher", this.Teacher);
|
|||
|
|
if (Extend.LoginState.Admin.IsLogin) this.Document.SetValue("Admin", this.Admin);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|||
|
|
this.Document.SetValue("stpath", Upload.Get["Accounts"].Virtual);
|
|||
|
|
this.Document.SetValue("thpath", Upload.Get["Teacher"].Virtual);
|
|||
|
|
this.Document.SetValue("adminpath", Upload.Get["Employee"].Virtual);
|
|||
|
|
//<2F><>ǰģ<C7B0><C4A3><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|||
|
|
this.Document.SetValue("TempPath", this.TmBank.Path.Virtual);
|
|||
|
|
//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WeiSha.Common.CustomConfig config = CustomConfig.Load(this.Organ.Org_Config);
|
|||
|
|
//<2F>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><D8B9>ڡ<EFBFBD><DAA1><EFBFBD>ֵ<EFBFBD>շѡ<D5B7><D1A1><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
bool IsMobileRemoveMoney = config["IsMobileRemoveMoney"].Value.Boolean ?? false;
|
|||
|
|
this.Document.SetValue("mremove", IsMobileRemoveMoney);
|
|||
|
|
//<2F><><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD>
|
|||
|
|
bool IsWebRemoveMoney = config["IsWebRemoveMoney"].Value.Boolean ?? false;
|
|||
|
|
this.Document.SetValue("wremove", IsWebRemoveMoney);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch { }
|
|||
|
|
//ʱ<><CAB1>
|
|||
|
|
string WeekStr = DateTime.Now.ToString("dddd", new System.Globalization.CultureInfo("zh-cn"));
|
|||
|
|
this.Document.SetValue("week", WeekStr);
|
|||
|
|
this.Document.SetValue("tick", DateTime.Now.Ticks);
|
|||
|
|
//ϵͳ<CFB5>汾<EFBFBD><E6B1BE>
|
|||
|
|
this.Document.SetValue("version", version);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
|
|||
|
|
this.Document.RegisterGlobalFunction(this.Navi);
|
|||
|
|
this.Document.RegisterGlobalFunction(this.NaviDrop);
|
|||
|
|
//<2F><>Ȩ<EFBFBD><C8A8>Ϣ
|
|||
|
|
this.Document.SetValue("copyright", WeiSha.Common.Request.Copyright);
|
|||
|
|
//<2F>ñ<EFBFBD><C3B1><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>洦<EFBFBD><E6B4A6><EFBFBD><EFBFBD>ǩ
|
|||
|
|
Song.Template.Handler.Start(this.Document);
|
|||
|
|
//
|
|||
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|||
|
|
this.InitPageTemplate(context);
|
|||
|
|
this.Document.Render(this.Response.Output);
|
|||
|
|
|
|||
|
|
//DateTime afterDT = System.DateTime.Now;
|
|||
|
|
//TimeSpan ts = afterDT.Subtract(beforDT);
|
|||
|
|
//if (ts.TotalMilliseconds >= 100)
|
|||
|
|
//{
|
|||
|
|
// WeiSha.Common.Log.Debug(this.GetType().FullName, string.Format("ҳ<><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>ʱ<EFBFBD><CAB1>{0}ms", ts.TotalMilliseconds));
|
|||
|
|
//}
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="p">ֻ<><D6BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
protected Song.Entities.Navigation[] Navi(object[] p)
|
|||
|
|
{
|
|||
|
|
string type = null;
|
|||
|
|
if (p.Length > 0) type = p[0].ToString();
|
|||
|
|
int pid = 0;
|
|||
|
|
if (p.Length > 1) int.TryParse(p[1].ToString(), out pid);
|
|||
|
|
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>ҳ
|
|||
|
|
string filePath = this.Request.Url.AbsolutePath;
|
|||
|
|
bool isMobi = isMobilePage(out filePath);
|
|||
|
|
string device = isMobi ? "mobi" : "web"; //<2F>豸
|
|||
|
|
Song.Entities.Navigation[] navi = Business.Do<IStyle>().NaviAll(true, device, type, Organ.Org_ID, pid);
|
|||
|
|
if (navi.Length < 1)
|
|||
|
|
{
|
|||
|
|
Song.Entities.Organization o = Business.Do<IOrganization>().OrganDefault();
|
|||
|
|
navi = Business.Do<IStyle>().NaviAll(true, device, type, o.Org_ID, pid);
|
|||
|
|
}
|
|||
|
|
return navi;
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="p">ֻ<><D6BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
protected string NaviDrop(object[] p)
|
|||
|
|
{
|
|||
|
|
string type = null;
|
|||
|
|
if (p.Length > 0) type = p[0].ToString();
|
|||
|
|
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>ҳ
|
|||
|
|
string filePath = this.Request.Url.AbsolutePath;
|
|||
|
|
bool isMobi = isMobilePage(out filePath);
|
|||
|
|
string device = isMobi ? "mobi" : "web"; //<2F>豸
|
|||
|
|
Song.Entities.Navigation[] navi = Business.Do<IStyle>().NaviAll(true, device, type, Organ.Org_ID, 0);
|
|||
|
|
if (navi.Length < 1)
|
|||
|
|
{
|
|||
|
|
Song.Entities.Organization o = Business.Do<IOrganization>().OrganDefault();
|
|||
|
|
navi = Business.Do<IStyle>().NaviAll(true, device, type, o.Org_ID, -1);
|
|||
|
|
}
|
|||
|
|
string html = "";
|
|||
|
|
if (navi.Length > 0)
|
|||
|
|
{
|
|||
|
|
foreach (Song.Entities.Navigation n in navi)
|
|||
|
|
{
|
|||
|
|
html += _NaviDropHtml(n.Nav_ID, type);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return html;
|
|||
|
|
}
|
|||
|
|
private string _NaviDropHtml(int nid, string type)
|
|||
|
|
{
|
|||
|
|
string html = "";
|
|||
|
|
Song.Entities.Navigation[] navi = Business.Do<IStyle>().NaviChildren(nid, true);
|
|||
|
|
if (navi.Length > 0)
|
|||
|
|
{
|
|||
|
|
html += string.Format("<div pid=\"{0}\" class=\"naviBox\" style=\"display:none;\">", nid);
|
|||
|
|
foreach (Song.Entities.Navigation n in navi)
|
|||
|
|
{
|
|||
|
|
html += string.Format("<div nid=\"{1}\" class=\"naviItem\"><a href=\"{3}\" target=\"{4}\" title=\"{5}\" style=\"{6}{7}{8}\">{2}</a></div>",
|
|||
|
|
n.Nav_PID, n.Nav_ID, n.Nav_Name, n.Nav_Url, n.Nav_Target, n.Nav_Title,
|
|||
|
|
string.IsNullOrEmpty(n.Nav_Color) ? "" : "color: " + n.Nav_Color + ";",
|
|||
|
|
string.IsNullOrEmpty(n.Nav_Font) ? "" : "font-family: " + n.Nav_Font + ";",
|
|||
|
|
!n.Nav_IsBold ? "" : "font-weight:bold;");
|
|||
|
|
}
|
|||
|
|
html += "</div>";
|
|||
|
|
foreach (Song.Entities.Navigation n in navi)
|
|||
|
|
html += _NaviDropHtml(n.Nav_ID, type);
|
|||
|
|
}
|
|||
|
|
return html;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|