public string BasicSetting(HttpContext context) { PluginPackAttribute attr = this._plugin.GetAttribute(); TemplatePage page = this._app.GetPage(this._plugin, "mg/basic_setting.html"); string url = String.Format("http://{0}/{1}.sh.aspx/serve", context.Request.Url.Host, attr.WorkIndent); string token = attr.Settings["Weixin_Token"] ?? String.Empty.RandomLetters(6); string appId = attr.Settings["Weixin_AppId"] ?? ""; string appSecret = attr.Settings["Weixin_AppSecret"] ?? ""; string appEncodeString = attr.Settings["Weixin_AppEncodeString"] ?? ""; string wlc = attr.Settings["Weixin_WelcomeMessage"] ?? ""; string enterMessage = attr.Settings["Weixin_EnterMessage"] ?? ""; string defaultRspMesssage = attr.Settings["Weixin_DefaultResponseMessage"] ?? ""; page.AddVariable("data", new { url = url, token = token, appId = appId, appSecret = appSecret, aes = appEncodeString, welcomeMessage = wlc, enterMessage = enterMessage, defaultRspMessage = defaultRspMesssage, }); return(page.ToString()); }
public static void Init(IPlugin plugin) { app = plugin; PluginAttr = plugin.GetAttribute(); initCfg(PluginAttr); InitWeixin(PluginAttr.Settings); //提供微信支付信息 var weixinPay_PartnerId = PluginAttr.Settings["WeixinPay_PartnerId"]; var weixinPay_Key = PluginAttr.Settings["WeixinPay_Key"]; var weixinPay_AppId = PluginAttr.Settings["WeixinPay_AppId"]; var weixinPay_AppKey = PluginAttr.Settings["WeixinPay_AppKey"]; var weixinPay_TenpayNotify = PluginAttr.Settings["WeixinPay_TenpayNotify"]; var tenPayV3_MchId = PluginAttr.Settings["TenPayV3_MchId"]; var tenPayV3_Key = PluginAttr.Settings["TenPayV3_Key"]; var tenPayV3_AppId = PluginAttr.Settings["TenPayV3_AppId"]; var tenPayV3_AppSecret = PluginAttr.Settings["TenPayV3_AppSecret"]; var tenPayV3_TenpayNotify = PluginAttr.Settings["TenPayV3_TenpayNotify"]; var weixinPayInfo = new TenPayInfo(weixinPay_PartnerId, weixinPay_Key, weixinPay_AppId, weixinPay_AppKey, weixinPay_TenpayNotify); TenPayInfoCollection.Register(weixinPayInfo); var tenPayV3Info = new TenPayV3Info(tenPayV3_AppId, tenPayV3_AppSecret, tenPayV3_MchId, tenPayV3_Key, tenPayV3_TenpayNotify); TenPayV3InfoCollection.Register(tenPayV3Info); }
/// <summary> /// 注册插件路由 /// </summary> /// <param name="plugin"></param> /// <param name="aliasName"></param> public void MapPluginRoute(IPlugin plugin, string aliasName) { PluginPackAttribute attr = PluginUtil.GetAttribute(plugin); string workIndent = attr.WorkIndent; MapPluginRoute(aliasName, workIndent); }
/// <summary> /// 初始化插件 /// </summary> /// <param name="_app"></param> /// <returns></returns> public PluginConnectionResult Connect(IPluginHost _app) { IPluginApp app = _app as IPluginApp; if (app != null) { //注册 app.Register(this, app_OnExtendModuleRequest, app_OnExtendModulePost); app.MapPluginRoute(this, "xmlrpc"); } //初始化设置 attr = this.GetAttribute(); bool isChanged = false; if (attr.Settings.Contains("enable_base64_image")) { WeblogRPCService.EnableBase64Images = attr.Settings["enable_base64_image"] == "yes"; } else { WeblogRPCService.EnableBase64Images = false; attr.Settings.Set("enable_base64_image", "no"); isChanged = true; } if (isChanged) { attr.Settings.Flush(); } return(PluginConnectionResult.Success); }
static Conf() { PluginAttrs = PluginUtil.GetAttribute <Main>(); //初始化配置 //bool isChanged=false; //if(!PackAttr.Settings.Contains("notify.workerindent")) //{ // PackAttr.Settings.Append("notify.workerindent",""); // isChanged=true; //} //if(!PackAttr.Settings.Contains("alipay.account")) //{ // PackAttr.Settings.Append("alipay.account",""); // isChanged=true; //} //if(!PackAttr.Settings.Contains("alipay.userkey")) //{ // PackAttr.Settings.Append("alipay.userkey",""); // isChanged=true; //} //if(!PackAttr.Settings.Contains("alipay.secret")) //{ // PackAttr.Settings.Append("alipay.secret",""); // isChanged=true; //} // if (isChanged) PluginAttrs.Settings.Flush(); }
/// <summary> /// 初始化插件 /// </summary> /// <param name="_app"></param> /// <returns></returns> public PluginConnectionResult Connect(IPluginHost _app) { IExtendApp app = _app as IExtendApp; if (app != null) { //注册 app.Register(this, app_OnExtendModuleRequest, app_OnExtendModulePost); Cms.Plugins.MapExtendPluginRoute("xmlrpc", app.GetAttribute(this).WorkIndent); } blogService = new WeblogRPCService(); //初始化设置 attr = PluginUtil.GetAttribute <XmlRpcPluginCore>(); bool isChanged = false; if (attr.Settings.Contains("enable_base64_image")) { WeblogRPCService.EnableBase64Images = attr.Settings["enable_base64_image"] == "yes"; } else { WeblogRPCService.EnableBase64Images = false; attr.Settings.Append("enable_base64_image", "no"); isChanged = true; } if (isChanged) { attr.Settings.Flush(); } return(PluginConnectionResult.Success); }
static Conf() { PluginAttrs = PluginUtil.GetAttribute<Main>(); //初始化配置 //bool isChanged=false; //if(!PackAttr.Settings.Contains("notify.workerindent")) //{ // PackAttr.Settings.Append("notify.workerindent",""); // isChanged=true; //} //if(!PackAttr.Settings.Contains("alipay.account")) //{ // PackAttr.Settings.Append("alipay.account",""); // isChanged=true; //} //if(!PackAttr.Settings.Contains("alipay.userkey")) //{ // PackAttr.Settings.Append("alipay.userkey",""); // isChanged=true; //} //if(!PackAttr.Settings.Contains("alipay.secret")) //{ // PackAttr.Settings.Append("alipay.secret",""); // isChanged=true; //} // if (isChanged) PluginAttrs.Settings.Flush(); }
/// <summary> /// 获取模板页 /// </summary> /// <param name="filePath">相对于插件目录的文件路径,如插件com.demo引用模板test.html,将test.html放在/plugins/com.demo/下就可以了</param> /// <returns></returns> public TemplatePage GetPage <T>(string filePath) where T : IPlugin { this.Load(); PluginPackAttribute attr = PluginUtil.GetPluginByType(typeof(T)).GetAttribute(); return(this.GetTemplatePage(filePath, attr)); }
public static void MapExtendPluginRoute(this CmsPluginContext table, IPlugin plugin, string aliasName) { PluginPackAttribute attr = PluginUtil.GetAttribute(plugin); string workIndent = attr.WorkIndent; MapExtendPluginRoute(table, aliasName, workIndent); }
/// <summary> /// 获取模板页 /// </summary> /// <param name="plugin"></param> /// <param name="filePath">相对于插件目录的文件路径,如插件com.demo引用模板test.html,将test.html放在/plugins/com.demo/下就可以了</param> /// <returns></returns> public TemplatePage GetPage(IPlugin plugin, string filePath) { this.Load(); PluginPackAttribute attr = plugin.GetAttribute(); return(this.GetTemplatePage(filePath, attr)); }
public PluginPackAttribute GetAttribute() { if (this._attr == null) { this._attr = PluginUtil.GetAttribute(this); } return(this._attr); }
public TemplatePage GetTemplatePage(string filePath, PluginPackAttribute attr) { string pluginDirPath = attr.WorkSpace; string cacheId = String.Concat("plugin", "_tpl_", attr.WorkIndent, filePath); string html = WebCtx.Current.Cache.Get(cacheId) as string; if (html == null) { //模板文件放在/plugins/com.spdepository/pages/下 string tplFilePath = pluginDirPath + filePath; try { using (TextReader tr = new StreamReader(tplFilePath)) { html = tr.ReadToEnd(); tr.Dispose(); } WebCtx.Current.Cache.Insert(cacheId, html, tplFilePath); } catch (Exception exc) { throw new Exception(exc.Message + ", File:" + tplFilePath); } } TemplatePage tpl = new TemplatePage(); tpl.TemplateContent = html; string pluginPath = this._pluginPath + attr.WorkIndent; tpl.AddVariable("os", new { version = FwCtx.Version.GetVersion(), domain = WebCtx.Current.Domain, ppath = pluginPath, fpath = this._fpath, mjs = this._shareJs, sjs = this._shareJs, scss = this._shareCss, mcss = this._shareCss }); tpl.AddVariable("plugin", new { path = pluginPath, indent = attr.WorkIndent, name = attr.Name }); return(tpl); }
/// <summary> /// 初始化配置 /// </summary> /// <param name="attr"></param> private static void InitCfg(PluginPackAttribute attr) { // bool isChanged = false; // if (!attr.Settings.Contains("test_conf")) // { // attr.Settings.Add("test_conf", "测试配置", true); // isChanged = true; // } // // if (isChanged) attr.Settings.Flush(); }
/// <summary> /// 获取模板页 /// </summary> /// <param name="filePath">相对于插件目录的文件路径,如插件com.demo引用模板test.html,将test.html放在/plugins/com.demo/下就可以了</param> /// <returns></returns> public TemplatePage GetPage <T>(string filePath) where T : IPlugin { if (!this.loaded) { this.loaded = true; this._fpath = String.Format("{0}{1}", Cms.Context.StaticDomain, CmsVariables.FRAMEWORK_ASSETS_PATH .Substring(0, CmsVariables.FRAMEWORK_ASSETS_PATH.Length - 1) ); this._admJs = String.Concat("/", Settings.SYS_ADMIN_TAG, "?res=c2NyaXB0&0.5.1.js&ver=", Cms.Version); this._admCss = String.Concat("/", Settings.SYS_ADMIN_TAG, "?res=c3R5bGU=&0.5.1.css&ver=", Cms.Version); } PluginPackAttribute attr = PluginUtil.GetAttribute <T>(); string pluginDirPath = String.Concat(PluginConfig.PLUGIN_DIRECTORY, attr.WorkIndent); string cacheID = String.Concat("plugin", "_tpl_", attr.WorkIndent, filePath); string html = Cms.Cache.Get(cacheID) as string; if (html == null) { //模板文件放在/plugins/com.spdepository/pages/下 string tplFilePath = String.Concat( Cms.PyhicPath, pluginDirPath, "/", filePath); using (TextReader tr = new StreamReader(tplFilePath)) { html = tr.ReadToEnd(); tr.Dispose(); } Cms.Cache.Insert(cacheID, html, tplFilePath); } TemplatePage tpl = new TemplatePage(); tpl.TemplateContent = html; tpl.AddVariable("os", new { version = Cms.Version, ppath = "/" + pluginDirPath, fpath = this._fpath, mjs = this._admJs, mcss = this._admCss }); return(tpl); }
/// <summary> /// 注册处理事件 /// </summary> /// <param name="plugin"></param> /// <param name="reqHandler"></param> /// <param name="postReqHandler"></param> /// <returns></returns> public bool Register(IPlugin plugin, PluginHandler <TContext> getHandler, PluginHandler <TContext> postHandler) { Type type = plugin.GetType(); PluginPackAttribute attr = PluginUtil.GetAttribute(plugin); string indent = attr.WorkIndent; if (postHandler == null || postHandlers.Keys.Contains(indent)) { return(false); } postHandlers.Add(indent, postHandler); return(base.Register(plugin, getHandler)); }
public string BasicSetting_post(HttpContext context) { PluginPackAttribute attr = this._plugin.GetAttribute(); var form = context.Request.Form; attr.Settings["Weixin_Token"] = form["Weixin_Token"]; attr.Settings["Weixin_AppId"] = form["Weixin_AppId"]; attr.Settings["Weixin_AppSecret"] = form["Weixin_AppSecret"]; attr.Settings["Weixin_AppEncodeString"] = form["Weixin_AppEncodeString"]; attr.Settings["Weixin_WelcomeMessage"] = form["Weixin_WelcomeMessage"]; attr.Settings["Weixin_EnterMessage"] = form["Weixin_EnterMessage"]; attr.Settings["Weixin_DefaultResponseMessage"] = form["Weixin_DefaultResponseMessage"]; attr.Settings.Flush(); Config.InitWeixin(attr.Settings); return("{result:true,message:'修改成功'}"); }
/// <summary> /// 注册插件路由 /// </summary> /// <param name="plugin"></param> public void MapPluginRoute(IPlugin plugin) { string aliasName; string workIndent; PluginPackAttribute attr = PluginUtil.GetAttribute(plugin); workIndent = attr.WorkIndent; aliasName = attr.Settings[PluginSettingKeys.OverrideUrlIndent]; //throw new Exception(extendName + "/" + aliasName); if (aliasName == "" || String.Compare(aliasName, workIndent, true, CultureInfo.InvariantCulture) == 0) { return; } MapPluginRoute(aliasName, workIndent); }
/// <summary> /// 注册插件路由 /// </summary> /// <param name="extendName">扩展名</param> public static void MapExtendPluginRoute(this CmsPluginContext table, IPlugin plugin) { string aliasName; string extendName; PluginPackAttribute attr = PluginUtil.GetAttribute(plugin); extendName = attr.WorkIndent; aliasName = attr.Settings["override.url.indent"]; //throw new Exception(extendName + "/" + aliasName); if (aliasName == "" || String.Compare(aliasName, extendName, true, CultureInfo.InvariantCulture) == 0) { return; } MapExtendPluginRoute(table, aliasName, extendName); }
/// <summary> /// 获取模板页 /// </summary> /// <param name="filePath">相对于插件目录的文件路径,如插件com.demo引用模板test.html,将test.html放在/plugins/com.demo/下就可以了</param> /// <returns></returns> public TemplatePage GetPage <T>(string filePath) where T : IPlugin { PluginPackAttribute attr = PluginUtil.GetAttribute <T>(); string pluginDirPath = String.Concat(PluginConfig.PLUGIN_DIRECTORY, attr.WorkIndent); string cacheID = String.Concat("plugin", "_tpl_", attr.WorkIndent, filePath); string html = Cms.Cache.Get(cacheID) as string; if (html == null) { //模板文件放在/plugins/com.spdepository/pages/下 string tplFilePath = String.Concat( Cms.PyhicPath, pluginDirPath, "/", filePath); using (TextReader tr = new StreamReader(tplFilePath)) { html = tr.ReadToEnd(); tr.Dispose(); } Cms.Cache.Insert(cacheID, html, tplFilePath); } TemplatePage tpl = new TemplatePage(); tpl.TemplateContent = html; tpl.AddVariable("os", new { version = Cms.Version, ppath = String.Format("/{0}", pluginDirPath), fpath = String.Format("{0}{1}", Cms.Context.StaticDomain, CmsVariables.FRAMEWORK_ASSETS_PATH .Substring(0, CmsVariables.FRAMEWORK_ASSETS_PATH.Length - 1) ) }); return(tpl); }
private static void initCfg(PluginPackAttribute attr) { //初始化配置 bool isChanged = false; if (!attr.Settings.Contains("WeixinPay_PartnerId")) { attr.Settings.Set("WeixinPay_PartnerId", ""); isChanged = true; } if (!attr.Settings.Contains("WeixinPay_Key")) { attr.Settings.Set("WeixinPay_Key", ""); isChanged = true; } if (!attr.Settings.Contains("WeixinPay_AppId")) { attr.Settings.Set("WeixinPay_AppId", ""); isChanged = true; } if (!attr.Settings.Contains("WeixinPay_AppKey")) { attr.Settings.Set("WeixinPay_AppKey", ""); isChanged = true; } if (!attr.Settings.Contains("WeixinPay_TenpayNotify")) { attr.Settings.Set("WeixinPay_TenpayNotify", ""); isChanged = true; } if (!attr.Settings.Contains("TenPayV3_MchId")) { attr.Settings.Set("TenPayV3_MchId", ""); isChanged = true; } if (!attr.Settings.Contains("TenPayV3_Key")) { attr.Settings.Set("TenPayV3_Key", ""); isChanged = true; } if (!attr.Settings.Contains("TenPayV3_AppId")) { attr.Settings.Set("TenPayV3_AppId", ""); isChanged = true; } if (!attr.Settings.Contains("TenPayV3_AppSecret")) { attr.Settings.Set("TenPayV3_AppSecret", ""); isChanged = true; } if (!attr.Settings.Contains("TenPayV3_TenpayNotify")) { attr.Settings.Set("TenPayV3_TenpayNotify", ""); isChanged = true; } if (!attr.Settings.Contains("Weixin_AppId")) { attr.Settings.Set("Weixin_AppId", "填写微信AppId"); isChanged = true; } if (!attr.Settings.Contains("Weixin_AppSecret")) { attr.Settings.Set("Weixin_AppSecret", "填写微信AppSecret"); isChanged = true; } if (!attr.Settings.Contains("Weixin_AppEncodeString")) { attr.Settings.Set("Weixin_AppEncodeString", "填写微信App解密字符串"); isChanged = true; } if (!attr.Settings.Contains("Weixin_Token")) { attr.Settings.Set("Weixin_Token", "填写微信token"); isChanged = true; } if (!attr.Settings.Contains("Weixin_ApiDomain")) { attr.Settings.Set("Weixin_ApiDomain", "填写用于对接微信的域名:如http://www.ops.cc/weixin/。"); isChanged = true; } if (!attr.Settings.Contains("Weixin_WelcomeMessage")) { attr.Settings.Set("Weixin_WelcomeMessage", "欢迎来到微信!"); isChanged = true; } if (!attr.Settings.Contains("Weixin_EnterMessage")) { attr.Settings.Set("Weixin_EnterMessage", ""); isChanged = true; } if (!attr.Settings.Contains("Weixin_MenuButtons")) { attr.Settings.Set("Weixin_MenuButtons", "填写微信自定义按钮"); isChanged = true; } if (isChanged) { attr.Settings.Flush(); } }
public PluginPackAttribute GetAttribute() { return(this._attr ?? (this._attr = PluginUtil.GetAttribute(this))); }
public static void Init(IPlugin plugin) { PluginAttr = PluginUtil.GetAttribute(plugin); InitCfg(PluginAttr); }