Example #1
0
        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);
        }
Example #2
0
        } // 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]);
        }
Example #3
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());
        }