private GlossaryData dataFromRow(DataRow dr) { GlossaryData d = new GlossaryData(); d.Id = Convert.ToInt32(dr["GlossaryDataId"]); d.placeholderGlossaryId = Convert.ToInt32(dr["phGlossaryId"]); d.isAcronym = Convert.ToBoolean(dr["isAcronym"]); d.word = dr["word"].ToString(); d.description = dr["description"].ToString(); return(d); }
} // RenderEdit private GlossaryData[] fromJSON(string jsonString) { JsonFx.Json.JsonReader r = new JsonFx.Json.JsonReader(jsonString); object o = r.Deserialize(); if (o is Dictionary <string, object> ) { List <GlossaryData> ret = new List <GlossaryData>(); Dictionary <string, object> dict = (o as Dictionary <string, object>); foreach (string dictKey in dict.Keys) { if (dict[dictKey] is Dictionary <string, object> ) { Dictionary <string, object> dictObj = (dict[dictKey] as Dictionary <string, object>); GlossaryData newGData = new GlossaryData(); foreach (string objParam in dictObj.Keys) { if (string.Compare(objParam, "word", true) == 0) { newGData.word = dictObj[objParam].ToString(); } else if (string.Compare(objParam, "text", true) == 0) { newGData.description = dictObj[objParam].ToString(); } else if (string.Compare(objParam, "isAcronym", true) == 0) { newGData.isAcronym = Convert.ToBoolean(dictObj[objParam].ToString()); } } // foreach ret.Add(newGData); } } // foreach return(ret.ToArray()); } return(new GlossaryData[0]); }
public static string GetHtmlDisplay(CmsPage page, GlossaryData[] items, GlossaryPlaceholderData placeholderData, string[] charactersWithData, string letterToDisplay) { StringBuilder html = new StringBuilder(); html.Append("<div class=\"Glossary\">" + Environment.NewLine); // -- output JumpLinks html.Append("<div class=\"JumpLinks\">"); string JumpLinksSeperator = " | "; List <string> jumpLinks = new List <string>(); if (placeholderData.ViewMode == GlossaryPlaceholderData.GlossaryViewMode.PagePerLetter && letterToDisplay != "") { jumpLinks.Add("<a href=\"" + page.Url + "\" title=\"view entire glossary\">[all]</a>"); } char startChar = 'A'; char lastChar = 'Z'; lastChar++; char currentChar = startChar; do { string link = ""; bool outputA = false; if (StringUtils.IndexOf(charactersWithData, currentChar.ToString(), StringComparison.CurrentCultureIgnoreCase) > -1) { outputA = true; string url = ""; if (placeholderData.ViewMode == GlossaryPlaceholderData.GlossaryViewMode.PagePerLetter) { NameValueCollection pageParams = new NameValueCollection(); pageParams.Add("l", currentChar.ToString()); url = CmsContext.getUrlByPagePath(page.Path, pageParams); } else if (placeholderData.ViewMode == GlossaryPlaceholderData.GlossaryViewMode.SinglePageWithJumpList) { url = "#letter_" + currentChar.ToString(); } link += "<a href=\"" + url + "\">"; } link += currentChar.ToString(); if (outputA) { link += "</a>"; } jumpLinks.Add(link); currentChar++; }while (currentChar != lastChar); string jumpLinksHtml = String.Join(JumpLinksSeperator, jumpLinks.ToArray()); html.Append(jumpLinksHtml); html.Append("</div>"); // JumpLinks // -- output terms switch (placeholderData.ViewMode) { case GlossaryPlaceholderData.GlossaryViewMode.PagePerLetter: if (letterToDisplay == "") { startChar = 'A'; lastChar = 'Z'; lastChar++; } else { startChar = letterToDisplay[0]; lastChar = letterToDisplay[0]; lastChar++; } break; case GlossaryPlaceholderData.GlossaryViewMode.SinglePageWithJumpList: startChar = 'A'; lastChar = 'Z'; lastChar++; break; default: throw new ArgumentException("invalid GlossaryViewMode"); } // switch viewmode currentChar = startChar; html.Append("<table class=\"glossaryitems\">"); do { html.Append("<tr><td class=\"LetterHeading\" colspan=\"2\">"); html.Append("<a name=\"letter_" + currentChar.ToString() + "\"></a>"); html.Append("<h2>" + currentChar + "</h2>"); html.Append("</td></tr>" + Environment.NewLine); GlossaryData[] itemsToDisplay = new GlossaryData[0]; if (placeholderData.ViewMode == GlossaryPlaceholderData.GlossaryViewMode.SinglePageWithJumpList || letterToDisplay == "") { itemsToDisplay = GlossaryData.getItemsStartingWithChar(items, currentChar); } else if (placeholderData.ViewMode == GlossaryPlaceholderData.GlossaryViewMode.PagePerLetter) { itemsToDisplay = items; } bool oddRow = true; foreach (GlossaryData item in itemsToDisplay) { string cssClass = "even"; if (oddRow) { cssClass = "odd"; } html.Append("<tr class=\"" + cssClass + "\">"); html.Append("<td class=\"word " + cssClass + "\">" + item.word + "</td>"); html.Append("<td class=\"description " + cssClass + "\">" + item.description + "</td>"); html.Append("</tr>" + Environment.NewLine); oddRow = !oddRow; } // foreach glossarydata item currentChar++; } while (currentChar != lastChar); html.Append("</table>"); html.Append("</div>"); // glossary return(html.ToString()); }