public override string OnMouduleLoad(string content) { UserPrefsSaved userprefs = new UserPrefsSaved(this.Module.UserPref); int topiccount = Utils.StrToInt(userprefs.GetValueByName("topiccount"), 10); bool iselite = Utils.StrToInt(userprefs.GetValueByName("iselite"), 0) > 0; DataTable topics = Focuses.GetTopicList(topiccount, 0, 0, TopicTimeType.All, TopicOrderType.ID, iselite, 30, false); StringBuilder sb = new StringBuilder(StaticFileProvider.GetContent(jsFile).Replace("${forumpath}", BaseConfigs.GetForumPath).Replace("${themepath}", this.SpaceConfig.ThemePath)); GeneralConfigInfo config = GeneralConfigs.GetConfig(); sb.Append("\r\n<div class='dnt-theme'><ul>\r\n"); foreach (DataRow r in topics.Rows) { string img = string.Format("<img onerror='this.src=\"{0}space/modules/builtin/forum/images/item_extend.gif\";' src='{0}space/skins/themes/{1}/images/item_extend.gif' id='imgButton_{2}' onclick='showtree({2},10);' title='展开' alt='展开' style='cursor:pointer;'/>", BaseConfigs.GetForumPath, this.SpaceConfig.ThemePath, r["tid"]); if (Utils.StrToInt(r["replies"], 0) < 1) img = string.Format("<img onerror='this.src=\"{0}space/modules/builtin/forum/images/item_collapsed.gif\";' src='{0}space/skins/themes/{1}/images/item_collapsed.gif' />", BaseConfigs.GetForumPath, this.SpaceConfig.ThemePath); if (config.Aspxrewrite == 1) sb.AppendFormat("<li>{0}<a href='" + BaseConfigs.GetForumPath + "showtopic-{1}.aspx' title='{2}' target='_blank'>{2}</a></li>", img, r["tid"], r["title"]); else sb.AppendFormat("<li>{0}<a href='" + BaseConfigs.GetForumPath + "showtopic.aspx?topicid={1}' title='{2}' target='_blank'>{2}</a></li>", img, r["tid"], r["title"]); sb.AppendFormat("<div id='divTopic{0}'></div>", r["tid"]); } sb.Append("\r\n</ul></div>\r\n"); content = sb.ToString(); return base.OnMouduleLoad (content); }
/// <summary> /// 自定义编辑设置框内容 /// </summary> /// <param name="editbox">编辑框原内容</param> /// <returns></returns> public override string OnEditBoxLoad(string editbox) { if (GeneralConfigs.GetConfig().Enablealbum != 1) { this.Editable = false; return ""; } this.Editable = true; UserPrefsSaved userprefs = new UserPrefsSaved(this.Module.UserPref); editbox = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"95%\" align=\"center\">"; //显示的相册Id,0为全部相册 string value = userprefs.GetValueByName("albumid"); value = value == string.Empty ? "0" : value; int albumid = Utils.StrToInt(value, 0); List<AlbumInfo> albumlist = DTOProvider.GetSpaceAlbumList(this.Module.Uid, 0, Utils.StrToInt(AlbumConfigs.GetConfig().MaxAlbumCount, 0), 1); string options = string.Empty; if (albumid == 0) options += "<option value=\"0\" selected>全部" + GeneralConfigs.GetConfig().Albumname + "</option>"; else options += "<option value=\"0\">全部" + GeneralConfigs.GetConfig().Albumname + "</option>"; foreach (AlbumInfo album in albumlist) { if (album.Albumid == albumid) { options += string.Format("<option value=\"{0}\" selected>{1}</option>", album.Albumid, album.Title); this.ModulePref.Title = album.Title; } else { options += string.Format("<option value=\"{0}\">{1}</option>", album.Albumid, album.Title); } } editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"><nobr>{0}{3}</nobr></td><td colspan=\"2\" align=\"left\" nowrap=\"nowrap\" width=\"65%\"> <select id=\"m___MODULE_ID___0\" name=\"m___MODULE_ID___up_{1}\">{2}</select></td></tr>", "选择" + GeneralConfigs.GetConfig().Albumname + ": ", "albumid", options, ""); //显示图片数 value = userprefs.GetValueByName("photocount"); value = value == "" ? "10" : value; int photocount = Utils.StrToInt(value, 10); if (photocount > 10 || photocount < 3) photocount = 10; options = string.Empty; for (int i = 3; i <= 10; i++) { if (photocount == i) options += string.Format("<option value=\"{0}\" selected>{0} 张</option>", i); else options += string.Format("<option value=\"{0}\">{0} 张</option>", i); } editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"><nobr>{0}{3}</nobr></td><td colspan=\"2\" align=\"left\" nowrap=\"nowrap\" width=\"65%\"> <select id=\"m___MODULE_ID___0\" name=\"m___MODULE_ID___up_{1}\">{2}</select></td></tr>", "展示图片数量: ", "photocount", options, ""); editbox += "</table>"; return base.OnEditBoxLoad(editbox); }
public ifr() { HttpContext.Current.Response.ContentType = "text/html"; // if (ForumUtils.IsCrossSitePost(DNTRequest.GetUrlReferrer(), DNTRequest.GetHost())) // return; // if (userid < 1) // return; string url = DNTRequest.GetQueryString("url"); int mid = DNTRequest.GetQueryInt("mid", 0); int uid = DNTRequest.GetQueryInt("uid", 0); ModuleInfo moduleinfo = Spaces.GetModuleById(mid, uid); if (moduleinfo == null) { return; } if (url != moduleinfo.ModuleUrl) { return; } UserPrefsSaved ups = new UserPrefsSaved(moduleinfo.UserPref); string path = BaseConfigs.GetForumPath + "space/modules/" + url; string modulefilepath = Utils.GetMapPath(path); ModulePref mp = ModuleXmlHelper.LoadModulePref(modulefilepath); ModuleContent mc = ModuleXmlHelper.LoadContent(modulefilepath); #if NET1 UserPrefCollection upc = ModuleXmlHelper.LoadUserPrefs(modulefilepath); #else UserPrefCollection<UserPref> upc = ModuleXmlHelper.LoadUserPrefs(modulefilepath); #endif StringBuilder registScript = new StringBuilder("<script type=\"text/javascript\">"); foreach (UserPref up in upc) { string userprefvalue = ups.GetValueByName(up.Name); userprefvalue = userprefvalue == string.Empty ? up.DefaultValue : userprefvalue; registScript.AppendFormat(PREF_SCRIPT_FORMAT, mid, up.Name, userprefvalue); } registScript.Append(ModuleXmlHelper.GetModuleRequireScript(mp, mc.Type == ModuleContentType.HtmlInline)); registScript.Append("</script>"); string html = string.Format(IFRAME_HTML, registScript.ToString(), mc.ContentHtml, BaseConfigs.GetForumPath); html = html.Replace("__MODULE_ID__", mid.ToString()).Replace("_IG_", "_DS_"); HttpContext.Current.Response.Write(html); HttpContext.Current.Response.End(); }
/// <summary> /// 自定义模块加载时的行为 /// </summary> /// <param name="content"></param> /// <returns></returns> public override string OnMouduleLoad(string content) { content = StaticFileProvider.GetContent(filename); string showborder = "0"; if (UserID == this.Module.Uid) { showborder = "1"; } else { UserPrefsSaved ups = new UserPrefsSaved(this.Module.UserPref); showborder = ups.GetValueByName("showborder"); } content = content.Replace("{showborder}", showborder == string.Empty ? "1" : showborder); content = content.Replace("{customizepanelcontent}", Spaces.GetCustomizePanelContent(this.ModuleID, this.Module.Uid)); content = content.Replace("{themepath}", this.SpaceConfig.ThemePath); content = content.Replace("{forumpath}", BaseConfigs.GetForumPath); return base.OnMouduleLoad(content); }
public override string OnEditBoxLoad(string editbox) { this.Editable = true; UserPrefsSaved userprefs = new UserPrefsSaved(this.Module.UserPref); string value = userprefs.GetValueByName("showaddons"); value = value == "" ? "0" : value; string checkedvalue = ""; if (value == "1") checkedvalue = "checked"; editbox = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"95%\" align=\"center\">"; editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"><nobr>{0}{4}</nobr></td><td colspan=\"2\" align=\"left\" nowrap=\"nowrap\" width=\"65%\"> <input id=\"m___MODULE_ID___0\" name=\"m___MODULE_ID___up_{3}\" value=\"{1}\" type=\"hidden\" /><input type=\"checkbox\" {2} onclick=\"_gel('m___MODULE_ID___0').value = this.checked ? '1' : '0';\" /></td></tr>", "显示附加信息", value, checkedvalue, "showaddons", ""); value = userprefs.GetValueByName("isvertical"); value = value == "" ? "0" : value; if (value == "1") checkedvalue = "checked"; else checkedvalue = ""; editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"><nobr>{0}{4}</nobr></td><td colspan=\"2\" align=\"left\" nowrap=\"nowrap\" width=\"65%\"> <input id=\"m___MODULE_ID___1\" name=\"m___MODULE_ID___up_{3}\" value=\"{1}\" type=\"hidden\" /><input type=\"checkbox\" {2} onclick=\"_gel('m___MODULE_ID___1').value = this.checked ? '1' : '0';\" /></td></tr>", "竖排显示", value, checkedvalue, "isvertical", ""); editbox += "</table>"; return base.OnEditBoxLoad (editbox); }
public override string OnEditBoxLoad(string editbox) { this.Editable = true; UserPrefsSaved userprefs = new UserPrefsSaved(this.Module.UserPref); editbox = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"95%\" align=\"center\">"; //显示主题条数 string value = userprefs.GetValueByName("topiccount"); value = value == "" ? "10" : value; string options = string.Empty; for (int i = 10; i <= 50; i += 10) { if (value == i.ToString()) options += string.Format("<option value=\"{0}\" selected>{0} 条 </option>", i); else options += string.Format("<option value=\"{0}\">{0} 条 </option>", i); } editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"><nobr>{0}{3}</nobr></td><td colspan=\"2\" align=\"left\" nowrap=\"nowrap\" width=\"65%\"> <select id=\"m___MODULE_ID___0\" name=\"m___MODULE_ID___up_{1}\">{2}</select></td></tr>", "显示主题数: ", "topiccount",options ,""); //是否是精华 value = userprefs.GetValueByName("iselite"); value = value == "" ? "0" : value; string checkedvalue = ""; if (value == "1") checkedvalue = "checked"; editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"><nobr>{0}{4}</nobr></td><td colspan=\"2\" align=\"left\" nowrap=\"nowrap\" width=\"65%\"> <input id=\"m___MODULE_ID___1\" name=\"m___MODULE_ID___up_{3}\" value=\"{1}\" type=\"hidden\" /><input type=\"checkbox\" {2} onclick=\"_gel('m___MODULE_ID___1').value = this.checked ? '1' : '0';\" /></td></tr>", "仅显示精华帖: ", value, checkedvalue, "iselite", ""); // //是否仅显示自己的 // value = userprefs.GetValueByName("ismine"); // value = value == "" ? "0" : value; // checkedvalue = ""; // if (value == "1") // checkedvalue = "checked"; // editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"><nobr>{0}{4}</nobr></td><td colspan=\"2\" align=\"left\" nowrap=\"nowrap\" width=\"65%\"> <input id=\"m___MODULE_ID___2\" name=\"m___MODULE_ID___up_{3}\" value=\"{1}\" type=\"hidden\" /><input type=\"checkbox\" {2} onclick=\"_gel('m___MODULE_ID___2').value = this.checked ? '1' : '0';\" /></td></tr>", "仅显示我的主题: ", value, checkedvalue, "ismine", ""); editbox += "</table>"; return base.OnEditBoxLoad (editbox); }
/// <summary> /// 自定义编辑框行为 /// </summary> /// <param name="editbox"></param> /// <returns></returns> public override string OnEditBoxLoad(string editbox) { this.Editable = true; UserPrefsSaved userprefs = new UserPrefsSaved(this.Module.UserPref); string value = userprefs.GetValueByName("showborder"); value = value == string.Empty ? "0" : value; string checkvalue = string.Empty; if (value == "1") checkvalue = "checked"; editbox = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"95%\" align=\"center\">"; editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"><nobr>{0}{4}</nobr></td><td colspan=\"2\" align=\"left\" nowrap=\"nowrap\" width=\"65%\"> <input id=\"m___MODULE_ID___0\" name=\"m___MODULE_ID___up_{3}\" value=\"{1}\" type=\"hidden\" /><input type=\"checkbox\" {2} onclick=\"_gel('m___MODULE_ID___0').value = this.checked ? '1' : '0';\" /></td></tr>", "显示边框: ", value, checkvalue, "showborder", ""); value = userprefs.GetValueByName("moduletitle"); if (value != string.Empty) { this.ModulePref.Title = value; } editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"><nobr>{0}{3}</nobr></td><td colspan=\"2\" align=\"left\" nowrap=\"nowrap\" width=\"65%\"> <input type=\"text\" size=\"20\" maxlen=\"200\" id=\"m___MODULE_ID___1\" name=\"m___MODULE_ID___up_{2}\" value=\"{1}\" /></td></tr>", "设置标题: ", value, "moduletitle", ""); editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"> </td><td colspan=\"1\" align=\"right\" width=\"65%\"><nobr><a id=\"DD_tg___cp___MODULE_ID__\" href=\"###\" onclick=\"_DS_popup(event,'__cp___MODULE_ID__');editpanel___MODULE_ID__();_gel('DD___cp___MODULE_ID__').style.zIndex = 2;\">点此编辑面板内容</a></nobr></td></tr>"); editbox += "</table>"; return base.OnEditBoxLoad(editbox); }
public override string OnMouduleLoad(string content) { UserPrefsSaved userprefs = new UserPrefsSaved(this.Module.UserPref); string value = userprefs.GetValueByName("showaddons"); string vertical = userprefs.GetValueByName("isvertical"); string[] score = Scoresets.GetValidScoreName(); UserInfo ui = Users.GetUserInfo(this.Module.Uid); UserGroupInfo group = UserGroups.GetUserGroupInfo(ui.Groupid); content = StaticFileProvider.GetContent(contentTemplate); if (vertical == "1") { content = Regex.Replace(content, @"<div id=""UserInfo""([\s\S]+?)</div>\r\n</div>", ""); } else { content = Regex.Replace(content, @"<div id=""UserInfo2""([\s\S]+?)</div>\r\n</div>", ""); } content = content.Replace("${username}", ui.Username); string avatar = string.Empty; //if (ui.Avatar != string.Empty) //{ // if (Regex.IsMatch(ui.Avatar, @"^(http://)?([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?")) // avatar = string.Format("<img src='{0}'", ui.Avatar); // else if (ui.Avatar.StartsWith("avatars")) // avatar = string.Format("<img src='{0}'", BaseConfigs.GetForumPath + ui.Avatar.Replace('\\','/')); // else // avatar = string.Format("<img src='{0}'", ui.Avatar.Replace('\\', '/')); // if (ui.Avatarwidth > 0) // avatar += string.Format(" width='{0}' height='{1}' ", ui.Avatarwidth, ui.Avatarheight); // avatar += "/>"; //} content = content.Replace("${useravatar}", avatar); content = content.Replace("${userid}", ui.Uid.ToString()); content = content.Replace("${nickname}", ui.Nickname); content = content.Replace("${usergroup}", group.Grouptitle); content = content.Replace("${usercredits}", ui.Credits.ToString()); content = content.Replace("${forumpath}", BaseConfigs.GetForumPath); string addoninfo = string.Empty; if (value == "1") { if (score[1] != "") addoninfo += string.Format("<li><span>{0}: </span>{1}</li>", score[1], ui.Extcredits1); if (score[2] != "") addoninfo += string.Format("<li><span>{0}: </span>{1}</li>", score[2], ui.Extcredits2); if (score[3] != "") addoninfo += string.Format("<li><span>{0}: </span>{1}</li>", score[3], ui.Extcredits3); if (score[4] != "") addoninfo += string.Format("<li><span>{0}: </span>{1}</li>", score[4], ui.Extcredits4); if (score[5] != "") addoninfo += string.Format("<li><span>{0}: </span>{1}</li>", score[5], ui.Extcredits5); if (score[6] != "") addoninfo += string.Format("<li><span>{0}: </span>{1}</li>", score[6], ui.Extcredits6); if (score[7] != "") addoninfo += string.Format("<li><span>{0}: </span>{1}</li>", score[7], ui.Extcredits7); if (score[8] != "") addoninfo += string.Format("<li><span>{0}: </span>{1}</li>", score[8], ui.Extcredits8); } content = content.Replace("${addoninfo}", addoninfo); return base.OnMouduleLoad (content); }
/// <summary> /// 自定义模块加载时的行为 /// </summary> /// <param name="content"></param> /// <returns></returns> public override string OnMouduleLoad(string content) { if (AlbumPluginProvider.GetInstance() == null || GeneralConfigs.GetConfig().Enablealbum != 1) return "相册插件未安装,模块暂不可用"; UserPrefsSaved userprefs = new UserPrefsSaved(this.Module.UserPref); int photocount = Utils.StrToInt(userprefs.GetValueByName("photocount"), 10); int albumid = Utils.StrToInt(userprefs.GetValueByName("albumid"), 0); List<PhotoInfo> photolist = DTOProvider.GetPhotoListByUserId(this.Module.Uid, albumid, photocount); StringBuilder sb = new StringBuilder(StaticFileProvider.GetContent(jsFile)); StringBuilder sbImgList = new StringBuilder(); for (int i = 0; i < photolist.Count; i++) { sbImgList.AppendFormat("data[\"-1_{0}\"] = \"img: {1}; url: {2}; target: _blank; \"\r\n", i+1, BaseConfigs.GetForumPath + Discuz.Album.Globals.GetSquareImage(photolist[i].Filename), BaseConfigs.GetForumPath + "showalbumlist.aspx?uid=" + this.Module.Uid); } sb.Replace("{$templatepath}", BaseConfigs.GetForumPath + "templates/" + Templates.GetTemplateItem(GeneralConfigs.GetConfig().Templateid).Directory); sb.Replace("{$photolist}", sbImgList.ToString()); content = sb.ToString(); return base.OnMouduleLoad(content); }
/// <summary> /// 获取模块内容区html,不包括内置模块 /// </summary> /// <returns>内容区html</returns> private string GetModuleBoxin() { switch(_module.ModuleType) { case ModuleType.Remote : return "此类模块暂不支持"; case ModuleType.Rss : return GetRssBoxin(); case ModuleType.Error : return "此类模块暂不支持"; } //如果是内建类型则进行其他处理 UserPrefsSaved ups = new UserPrefsSaved(_module.UserPref); string parms = "", returnStr = ""; switch (_moduleContent.Type) { case ModuleContentType.Html : foreach (UserPref up in _userPrefCollection) { string userprefvalue = ups.GetValueByName(up.Name); userprefvalue = userprefvalue == string.Empty ? up.DefaultValue : userprefvalue; parms += string.Format("&up_{0}={1}", up.Name, Utils.UrlEncode(userprefvalue)); } //{0}代表模块url,{1}代表render_inline,{2}代表当前站点路径 returnStr = "<script><!--\r\nremote_modules.push(new RemoteModule(\"{0}\",\"__MODULE_ID__\",\"{1}\",\"{4}space/ifr.aspx?url={0}&nocache=1&uid={2}&mid=__MODULE_ID__&parent={3}\",false));// -->\r\n</script><div id=remote___MODULE_ID__ style=\"border:0px;padding:0px;margin:0px;width:100%\"><iframe id=remote_iframe___MODULE_ID__ style=\"border:0px;padding:0px;margin:0px;width:100%;height:200px;overflow:hidden;background:transparent;\" allowtransparency=\"yes\" frameborder=0 scrolling=no></iframe></div>"; returnStr = string.Format(returnStr, _module.ModuleUrl, _modulePref.RenderInline, _module.Uid, GeneralConfigs.GetConfig().Forumurl + parms, BaseConfigs.GetForumPath); break; case ModuleContentType.HtmlInline : returnStr = _moduleContent.ContentHtml; break; case ModuleContentType.Url : //这里要对ContentHtml(这里一开始它的值与Href相同)进行进一步的处理,因为需要传递参数,参数是UserPref foreach (UserPref up in _userPrefCollection) { string userprefvalue = ups.GetValueByName(up.Name); userprefvalue = userprefvalue == string.Empty ? up.DefaultValue : userprefvalue; parms += string.Format("&up_{0}={1}", up.Name, Utils.UrlEncode(userprefvalue)); } if (parms.StartsWith("&")) parms = parms.TrimStart('&'); returnStr = string.Format(_moduleContent.ContentHtml, parms); break; } return returnStr; }
/// <summary> /// Get the content area's html 内建模块专有功能 /// </summary> /// <returns>模块内容区的html</returns> public string GetModuleHtml() { string prefScriptFormat = "_DS_Prefs._add(\"{0}\",\"up_{1}\",\"{2}\");"; UserPrefsSaved ups = new UserPrefsSaved(_module.UserPref); StringBuilder registScript = new StringBuilder("<script type=\"text/javascript\">"); string root = BaseConfigs.GetForumPath; Hashtable ht = new Hashtable(); if (_module.ModuleDefID == 0) _editable = _userPrefCollection == null ? false : _userPrefCollection.VisibleItemCount > 0; if (_module.ModuleType == ModuleType.Rss) _editable = true; string boxin = OnMouduleLoad(GetModuleBoxin()); string editbox = OnEditBoxLoad(GetModuleEditBox()); string moduleTitle = "<span id=\"m___MODULE_ID___title\" class=\"modtitle_text\"></span>"; if (_module.ModuleType == ModuleType.Local) moduleTitle = _modulePref.TitleUrl == string.Empty ? "<span id=\"m___MODULE_ID___title\" class=\"modtitle_text\">" + _modulePref.Title + "</span>" : "<a class=\"mtlink\" id=\"m___MODULE_ID___url\" href=\"" + _modulePref.TitleUrl + "\" target=\"_blank\"><span id=\"m___MODULE_ID___title\" class=\"modtitle_text\">" + _modulePref.Title + "</span></a>"; if (_moduleContent != null && _moduleContent.Type != ModuleContentType.Url) { //在内容区用js加载UserPref设置,并且将UserPref值加载到TemplateEngine的需要替换的集合里 foreach (UserPref up in _userPrefCollection) { string userprefvalue = ups.GetValueByName(up.Name); userprefvalue = userprefvalue == string.Empty ? up.DefaultValue : userprefvalue; registScript.AppendFormat(prefScriptFormat, Module.ModuleID, up.Name, userprefvalue); string upName = "__UP_" + up.Name + "__"; boxin = boxin.Replace(upName, userprefvalue); editbox = editbox.Replace(upName, userprefvalue); moduleTitle = moduleTitle.Replace(upName, userprefvalue); } } ht.Add("modboxin", registScript.Append("</script>").Append(boxin).ToString()); ht.Add("meditbox", editbox); ht.Add("title", moduleTitle); ht.Add("editable", _editable ? _module.Uid == _userid : false);//还需要加权限判断 ht.Add("scalable", _scalable); ht.Add("deletable", _module.Uid == _userid && _userid > 0); string html = ModuleTemplate.Instance.GetHtml(ht);//te.MergeTemplate(); html = html.Replace("__MODULE_ID__", _moduleID.ToString()); html = html.Replace("__TAB_ID__", _module.TabID.ToString()); if (_userPrefCollection != null) { html = html.Replace("__USERPREF_COUNT__", _userPrefCollection.Count.ToString()); } return html; }
public override string OnEditBoxLoad(string editbox) { this.Editable = true; UserPrefsSaved userprefs = new UserPrefsSaved(this.Module.UserPref); string value = userprefs.GetValueByName("moduletitle"); //标题 if (value != string.Empty) this.ModulePref.Title = value; editbox = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"95%\" align=\"center\">"; editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"><nobr>{0}{3}</nobr></td><td colspan=\"2\" align=\"left\" nowrap=\"nowrap\" width=\"65%\"> <input type=\"text\" size=\"20\" maxlen=\"200\" id=\"m___MODULE_ID___0\" name=\"m___MODULE_ID___up_{2}\" value=\"{1}\" /></td></tr>", "设置标题: ", value, "moduletitle", ""); //底色 value = userprefs.GetValueByName("bgcolor"); value = value == string.Empty ? "#ffffcc" : value; string options = string.Empty; #region 颜色选项 if (value == "#ffffcc") options += "<option value='#ffffcc' selected>Yellow</option>"; else options += "<option value='#ffffcc'>Yellow</option>"; if (value == "#e5ecf9") options += "<option value='#e5ecf9' selected>Blue</option>"; else options += "<option value='#e5ecf9'>Blue</option>"; if (value == "white") options += "<option value='white' selected>White</option>"; else options += "<option value='white'>White</option>"; if (value == "#e0eee0") options += "<option value='#e0eee0' selected>Green</option>"; else options += "<option value='#e0eee0'>Green</option>"; if (value == "#fff0f5") options += "<option value='#fff0f5' selected>Pink</option>"; else options += "<option value='#fff0f5'>Pink</option>"; if (value == "#fff5ee") options += "<option value='#fff5ee' selected>Orange</option>"; else options += "<option value='#fff5ee'>Orange</option>"; #endregion editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"><nobr>{0}{3}</nobr></td><td colspan=\"2\" align=\"left\" nowrap=\"nowrap\" width=\"65%\"> <select id=\"m___MODULE_ID___1\" name=\"m___MODULE_ID___up_{1}\">{2}</select></td></tr>", "背景颜色: ", "bgcolor", options, ""); //文字颜色 value = userprefs.GetValueByName("txtcolor"); value = value == string.Empty ? "Black" : value; #region 颜色选项 if (value == "Black") options = "<option value='Black' selected>Black</option>"; else options = "<option value='Black'>Black</option>"; if (value == "blue") options += "<option value='blue' selected>Blue</option>"; else options += "<option value='blue'>Blue</option>"; if (value == "green") options += "<option value='green' selected>Green</option>"; else options += "<option value='green'>Green</option>"; if (value == "red") options += "<option value='red' selected>Red</option>"; else options += "<option value='red'>Red</option>"; if (value == "#ff007f") options += "<option value='#ff007f' selected>Pink</option>"; else options += "<option value='#ff007f'>Pink</option>"; if (value == "#ff3300") options += "<option value='#ff3300' selected>Orange</option>"; else options += "<option value='#ff3300'>Orange</option>"; #endregion editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"><nobr>{0}{3}</nobr></td><td colspan=\"2\" align=\"left\" nowrap=\"nowrap\" width=\"65%\"> <select id=\"m___MODULE_ID___2\" name=\"m___MODULE_ID___up_{1}\">{2}</select></td></tr>", "文字颜色: ", "txtcolor", options, ""); editbox += "</table>"; return base.OnEditBoxLoad(editbox) ; }
public override string OnMouduleLoad(string content) { UserPrefsSaved ups = new UserPrefsSaved(this.Module.UserPref); string savedContent = ups.GetValueByName("content"); savedContent = Utils.HtmlEncode(ForumUtils.BanWordFilter(savedContent)); content = StaticFileProvider.GetContent(filename); if (this.UserID == this.Module.Uid) { content = content.Replace("${ContentArea}", string.Format("<textarea class=\"notepadcontent\" style=\"background-color: {1}; color: {2};\" id=\"content__MODULE_ID__\" onkeyup=\"setRows__MODULE_ID__();\" onblur=\"saveResult__MODULE_ID__();\">{0}</textarea>", savedContent, ups.GetValueByName("bgcolor") == string.Empty ? "#ffffcc" : ups.GetValueByName("bgcolor"), ups.GetValueByName("txtcolor"))); } else { savedContent = savedContent.Replace("\n","<br />"); content = content.Replace("${ContentArea}", string.Format("<div class=\"notepadcontent\" style=\"background-color: {1}; color: {2};padding: 8px;\">{0}</div>", savedContent, ups.GetValueByName("bgcolor") == string.Empty ? "#ffffcc" : ups.GetValueByName("bgcolor"), ups.GetValueByName("txtcolor"))); } return base.OnMouduleLoad (content); }
/// <summary> /// 将UserPrefs组织成Table表现形式 /// </summary> /// <param name="defaultUserPrefs">默认设置</param> /// <param name="personalUserPrefs">用户的个性化设置</param> /// <returns></returns> public static string GetUserPrefsTable(UserPrefCollection<UserPref> defaultUserPrefs, UserPrefsSaved personalUserPrefs) { StringBuilder sb = new StringBuilder("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"95%\" align=\"center\">"); bool scriptAdded = false; for (int i = 0; i < defaultUserPrefs.Count; i++) { string value = personalUserPrefs.GetValueByName(defaultUserPrefs[i].Name); //此处不需要进行判断value的差异是因为当value为string.empty时ToHtml方法会自动按默认值输出 sb.Append(defaultUserPrefs[i].ToHtml(value).Replace("__ITEM_INDEX__", i.ToString())); if (!scriptAdded && defaultUserPrefs[i].DataType == UserPrefDataType.ListType) { scriptAdded = true; sb.Insert(0,"<script>var listcontrol___MODULE_ID__ = new Array();function checklist___MODULE_ID__() {for (var i = 0; i < listcontrol___MODULE_ID__.length; i ++) {var inputFld = listcontrol___MODULE_ID__[i][0];var checkFunc = listcontrol___MODULE_ID__[i][1];if (inputFld.value &&inputFld.value.length > 0) {if(!checkFunc || checkFunc()) {inputFld.listApp.add();} else {inputFld.focus();inputFld.select();return false;}}}return true;};var checklist_submit___MODULE_ID__ = function(event) {if (!checklist___MODULE_ID__()) {return false;}return this.prev_submit(event);};var reset_list___MODULE_ID__ = function() {this.prev_reset();for (var i = 0; i < this.elements.length; i ++) {if (this.elements[i].listApp) {this.elements[i].listApp.reset();}}};_gel(\"m___MODULE_ID___form\").prev_reset = _gel(\"m___MODULE_ID___form\").reset;_gel(\"m___MODULE_ID___form\").reset = reset_list___MODULE_ID__;if (!_gel(\"m___MODULE_ID___form\").prev_submit) {_gel(\"m___MODULE_ID___form\").prev_submit = _gel(\"m___MODULE_ID___form\").onsubmit;_gel(\"m___MODULE_ID___form\").onsubmit = checklist_submit___MODULE_ID__;}</script>"); } } if (defaultUserPrefs.ShowRequired) sb.Append("<tr><td colspan=\"3\" align=\"left\"><font color=\"red\">* 为必填项</font></td></tr>"); sb.Append("</table>"); return sb.ToString(); }
/// <summary> /// 自定义模块加载时的行为 /// </summary> /// <param name="content"></param> /// <returns></returns> public override string OnMouduleLoad(string content) { UserPrefsSaved ups = new UserPrefsSaved(this.Module.UserPref); int charcount = Utils.StrToInt(ups.GetValueByName("charcount"), 500); //去掉http地址中的文件名称 if (forumurl.ToLower().IndexOf("http://") == 0) forumurlnopage = forumurl.Substring(0, forumurl.LastIndexOf('/')) + "/"; else forumurl = "../" + forumurl; if (configspaceurlnopage.ToLower().IndexOf("http://") < 0) configspaceurlnopage = forumurlnopage; else configspaceurlnopage = configspaceurlnopage.ToLower().Substring(0, configspaceurlnopage.LastIndexOf('/')) + "/"; string templateContent = Utilities.Globals.GetFileContent(templateFile);//StaticFileProvider.GetContent(templateFile); StringBuilder sbMainTemplate = new StringBuilder(); StringBuilder sbItemTemplate = new StringBuilder(); StringBuilder sbTimeTemplate = new StringBuilder(); StringBuilder sbLinkTemplate = new StringBuilder(); StringBuilder sbTagTemplate = new StringBuilder(); StringBuilder sbTagItem = new StringBuilder(); StringBuilder sbContentTemplate = new StringBuilder(); StringBuilder sbMoreContentTemplate = new StringBuilder(); string[] templates = Utils.SplitString(templateContent, "/*Discuz Separator*/"); if (templates.Length < 8) content = "模板文件加载出错, 请检查"; else { sbMainTemplate.Append(templates[0]); sbItemTemplate.Append(templates[1]); sbTimeTemplate.Append(templates[2]); sbLinkTemplate.Append(templates[3]); sbTagTemplate.Append(templates[4]); sbTagItem.Append(templates[5]); sbContentTemplate.Append(templates[6]); sbMoreContentTemplate.Append(templates[7]); SpacePostInfo[] spaceposts = GetSpacePosts(); string[] postids = new string[spaceposts.Length]; for (int i = 0; i < spaceposts.Length; i++) { postids[i] = spaceposts[i].Postid.ToString(); } Dictionary<string, Dictionary<string, string>> categorys = null; if (postids.Length > 0) { categorys = Spaces.GetSpacePostCategorys(string.Join(",", postids)); //获取分类 } StringBuilder sbItemList = new StringBuilder(); #region 循环遍历 foreach (SpacePostInfo post in spaceposts) { StringBuilder sbTemp = new StringBuilder(sbItemTemplate.ToString()); sbTemp.Replace("{$TimeTemplate}", ParseTimeTemplate(sbTimeTemplate.ToString(), post)); sbTemp.Replace("{$LinkTemplate}", ParseLinkTemplate(sbLinkTemplate, post, categorys)); StringBuilder sbTempTag = new StringBuilder(sbTagTemplate.ToString()); string tagItem = ParseTagItem(sbTagItem, post); if (tagItem != string.Empty) sbTemp.Replace("{$TagTemplate}", sbTempTag.Replace("{$TagItem}", tagItem).ToString()); else sbTemp.Replace("{$TagTemplate}", string.Empty); string postcontent = post.Content; if (charcount == 0)//不显示正文 postcontent = string.Empty; else if (charcount > 0)//截断 { postcontent = Utils.GetTextFromHTML(Utils.HtmlDecode(postcontent)); if (postcontent.Length > charcount) { StringBuilder sbTempMoreContentTemplate = new StringBuilder(sbMoreContentTemplate.ToString()); sbTempMoreContentTemplate.Replace("{$Root}", configspaceurlnopage); sbTempMoreContentTemplate.Replace("{$PostId}", post.Postid.ToString()); sbTempMoreContentTemplate.Replace("{$SpaceId}", SpaceConfig.SpaceID.ToString()); postcontent = postcontent.Substring(0, charcount) + "..." + sbTempMoreContentTemplate.ToString(); } } StringBuilder sbTempContent = new StringBuilder(sbContentTemplate.ToString()); sbTemp.Replace("{$ContentTemplate}", sbTempContent.Replace("{$Content}", postcontent).ToString()); sbItemList.Append(sbTemp); } #endregion sbMainTemplate.Replace("{$ItemTemplate}", sbItemList.ToString()); sbMainTemplate.Replace("{$ForumPath}", forumurlnopage); sbMainTemplate.Replace("{$Skin}", base.SpaceConfig.ThemePath); content = sbMainTemplate.ToString() + "<div style='border-top:1px dashed #ccc; padding:10px 0; padding-left:10px;font-weight:bold;'><a href=\"viewspacepostlist.aspx?spaceid=" + base.SpaceConfig.SpaceID + "\">查看更多</a></div>"; } return base.OnMouduleLoad(content); }
public override string OnEditBoxLoad(string editbox) { this.Editable = true; UserPrefsSaved userprefs = new UserPrefsSaved(this.Module.UserPref); editbox = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"95%\" align=\"center\">"; string value = userprefs.GetValueByName("charcount"); int charcount = Utils.StrToInt(value, 500); editbox += string.Format("<tr><td colspan=\"1\" align=\"right\" width=\"35%\"><nobr>{0}{3}</nobr></td><td colspan=\"2\" align=\"left\" nowrap=\"nowrap\" width=\"65%\"> <input type=\"text\" size=\"20\" maxlen=\"200\" id=\"m___MODULE_ID___1\" name=\"m___MODULE_ID___up_{2}\" value=\"{1}\" /></td></tr>", "显示正文字数: ", charcount, "charcount", ""); editbox += "</table>"; return base.OnEditBoxLoad(editbox); }