private void MyToolWindow_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) { if ((bool)e.NewValue != true) { return; } EnvName.Text = "CodeMark"; EnvValue.SelectAll(); }
EnvValue GetMacroValue( #if NO out string strStyleDirName, out string strTitleText, out string strReaderName #endif ) { string strError = ""; #if NO strStyleDirName = ""; strTitleText = ""; strReaderName = ""; #endif OpacApplication app = (OpacApplication)this.Page.Application["app"]; if (app == null) { strError = "app == null"; goto ERROR1; } SessionInfo sessioninfo = (SessionInfo)this.Page.Session["sessioninfo"]; if (sessioninfo == null) { strError = "sessioninfo == null"; goto ERROR1; } // 面板上选择的馆代码 string strSelectedLibraryCode = (string)this.Page.Session["librarycode"]; string strLibraryStyleDir = ""; // 分馆的风格目录 if (string.IsNullOrEmpty(strSelectedLibraryCode) == false) { XmlNode nodeLibrary = app.WebUiDom.DocumentElement.SelectSingleNode("libraries/library[@code='" + strSelectedLibraryCode + "']"); if (nodeLibrary != null) { strLibraryStyleDir = DomUtil.GetAttr(nodeLibrary, "style"); if (string.IsNullOrEmpty(strLibraryStyleDir) == true) strLibraryStyleDir = DomUtil.GetAttr(nodeLibrary, "code"); } } /* 单语种 <userType type="librarian" titletext="一切为了读者" style="0" name="欢迎你:%userid%" /> <userType type="notlogin" titletext="请先登录" style="0" /> <userType type="public" titletext="图书馆是知识的海洋" style="0" /> * */ /* 多语种 <userType type="librarian" style="0" > <titletext lang='zh'>一切为了读者</titletext> <name lang='zh'>欢迎你:%userid%</name> </userType> <userType type="notlogin" style="0" > <titletext lang='zh'>请先登录</titletext> </userType> <userType type="public" style="0" > <titletext lang='zh'>图书馆是知识的海洋</titletext> </userType> * * */ LoginState loginstate = GlobalUtil.GetLoginState(this.Page); if (loginstate == LoginState.NotLogin) { #if NO XmlNode nodeUserType = app.WebUiDom.DocumentElement.SelectSingleNode( "titleBarControl/userType[@type='notlogin']"); if (nodeUserType != null) { strStyleDirName = DomUtil.GetAttr(nodeUserType, "style"); strStyleDirName = LinkControl.MakeDir(strLibraryStyleDir, strStyleDirName); if (nodeUserType.Attributes["titletext"] != null) { strTitleText = DomUtil.GetAttr(nodeUserType, "titletext"); } else { // 多语种 strTitleText = DomUtil.GetLangedNodeText( this.Lang, nodeUserType, "titletext"); } if (nodeUserType.Attributes["name"] != null) { strReaderName = DomUtil.GetAttr(nodeUserType, "name"); } else { // 多语种 strReaderName = DomUtil.GetLangedNodeText( this.Lang, nodeUserType, "name"); } } if (String.IsNullOrEmpty(strReaderName) == true) strReaderName = this.GetString("quoted_未登录"); // "[未登录]" return; #endif return GetEnvValue(app, strLibraryStyleDir, "notlogin", this.GetString("quoted_未登录")); } if (loginstate == LoginState.Public) { #if NO XmlNode nodeUserType = app.WebUiDom.DocumentElement.SelectSingleNode( "titleBarControl/userType[@type='public']"); if (nodeUserType != null) { strStyleDirName = DomUtil.GetAttr(nodeUserType, "style"); strStyleDirName = LinkControl.MakeDir(strLibraryStyleDir, strStyleDirName); // strTitleText = DomUtil.GetAttr(nodeUserType, "titletext"); // strReaderName = DomUtil.GetAttr(nodeUserType, "name"); if (nodeUserType.Attributes["titletext"] != null) { strTitleText = DomUtil.GetAttr(nodeUserType, "titletext"); } else { // 多语种 strTitleText = DomUtil.GetLangedNodeText( this.Lang, nodeUserType, "titletext"); } if (nodeUserType.Attributes["name"] != null) { strReaderName = DomUtil.GetAttr(nodeUserType, "name"); } else { // 多语种 strReaderName = DomUtil.GetLangedNodeText( this.Lang, nodeUserType, "name"); } } if (String.IsNullOrEmpty(strReaderName) == true) strReaderName = this.GetString("quoted_访客"); // "[访客]" return; #endif return GetEnvValue(app, strLibraryStyleDir, "public", this.GetString("quoted_访客")); } if (loginstate == LoginState.Librarian) { #if NO XmlNode nodeUserType = app.WebUiDom.DocumentElement.SelectSingleNode( "titleBarControl/userType[@type='librarian']"); if (nodeUserType != null) { strStyleDirName = DomUtil.GetAttr(nodeUserType, "style"); strStyleDirName = LinkControl.MakeDir(strLibraryStyleDir, strStyleDirName); //strTitleText = DomUtil.GetAttr(nodeUserType, "titletext"); //strReaderName = DomUtil.GetAttr(nodeUserType, "name"); if (nodeUserType.Attributes["titletext"] != null) { strTitleText = DomUtil.GetAttr(nodeUserType, "titletext"); } else { // 多语种 strTitleText = DomUtil.GetLangedNodeText( this.Lang, nodeUserType, "titletext"); } if (nodeUserType.Attributes["name"] != null) { strReaderName = DomUtil.GetAttr(nodeUserType, "name"); } else { // 多语种 strReaderName = DomUtil.GetLangedNodeText( this.Lang, nodeUserType, "name"); } } if (String.IsNullOrEmpty(strReaderName) == true) strReaderName = this.GetString("quoted_图书馆员") // "[图书馆员]" + sessioninfo.UserID; else { // 配置的值中可以用%userid%宏 strReaderName = strReaderName.Replace("%userid%", sessioninfo.UserID); } return; #endif EnvValue env = GetEnvValue(app, strLibraryStyleDir, "librarian", ""); if (String.IsNullOrEmpty(env.ReaderName) == true) env.ReaderName = this.GetString("quoted_图书馆员") // "[图书馆员]" + sessioninfo.UserID; else { // 配置的值中可以用%userid%宏 env.ReaderName = env.ReaderName.Replace("%userid%", sessioninfo.UserID); } env.TitleText = env.TitleText.Replace("%userid%", sessioninfo.UserID); return env; } { EnvValue env = new EnvValue(); XmlDocument readerdom = null; // 获得当前session中已经登录的读者记录DOM // return: // -2 当前登录的用户不是reader类型 // -1 出错 // 0 尚未登录 // 1 成功 int nRet = sessioninfo.GetLoginReaderDom( out readerdom, out strError); if (nRet == -1 || nRet == -2) goto ERROR1; if (nRet == 0) { goto ERROR1; } env.ReaderName = DomUtil.GetElementText(readerdom.DocumentElement, "name"); XmlNode preference = readerdom.DocumentElement.SelectSingleNode("preference"); if (preference != null) { XmlNode webui = preference.SelectSingleNode("webui"); if (webui != null) { string strStyleDirName = DomUtil.GetAttr(webui, "style"); env.StyleDirName = LinkControl.MakeDir(strLibraryStyleDir, strStyleDirName); env.TitleText = DomUtil.GetAttr(webui, "titletext"); return env; } } env = GetEnvValue(app, strLibraryStyleDir, "reader", ""); string strReaderName = ""; if (sessioninfo.ReaderInfo != null) { strReaderName = sessioninfo.ReaderInfo.DisplayName; if (string.IsNullOrEmpty(strReaderName) == true) strReaderName = sessioninfo.ReaderInfo.Name; if (string.IsNullOrEmpty(strReaderName) == true) strReaderName = sessioninfo.UserID; } if (String.IsNullOrEmpty(env.ReaderName) == true) env.ReaderName = strReaderName; else { // 配置的值中可以用%userid%宏 env.ReaderName = env.ReaderName.Replace("%userid%", strReaderName); } env.TitleText = env.TitleText.Replace("%userid%", strReaderName); return env; } return new EnvValue(); ERROR1: return new EnvValue(); }
EnvValue GetEnvValue(OpacApplication app, string strLibraryStyleDir, string strTypeName, string strDefaultReaderName) { EnvValue env = new EnvValue(); string strStyleDirName = ""; string strTitleText = ""; string strReaderName = ""; XmlNode nodeUserType = app.WebUiDom.DocumentElement.SelectSingleNode( "titleBarControl/userType[@type='"+strTypeName+"']"); if (nodeUserType != null) { strStyleDirName = DomUtil.GetAttr(nodeUserType, "style"); strStyleDirName = LinkControl.MakeDir(strLibraryStyleDir, strStyleDirName); if (nodeUserType.Attributes["titletext"] != null) { strTitleText = DomUtil.GetAttr(nodeUserType, "titletext"); } else { // 多语种 strTitleText = DomUtil.GetLangedNodeText( this.Lang, nodeUserType, "titletext"); } if (nodeUserType.Attributes["name"] != null) { strReaderName = DomUtil.GetAttr(nodeUserType, "name"); } else { // 多语种 strReaderName = DomUtil.GetLangedNodeText( this.Lang, nodeUserType, "name"); } } else { // 2015/1/26 给出一个缺省值 strStyleDirName = LinkControl.MakeDir(strLibraryStyleDir, "0"); } if (String.IsNullOrEmpty(strReaderName) == true) strReaderName = strDefaultReaderName; // this.GetString("quoted_未登录"); // "[未登录]" env.StyleDirName = strStyleDirName; env.ReaderName = strReaderName; env.TitleText = strTitleText; return env; }