public XmlDocument MLLoadTreeXML(string editFormatUrl, bool ismenu, int PortalID, int source, string codes, string Locale)
        {
            DataTable dt = null;

            if (source == 0)
            {
                dt = LoadTree(ismenu, PortalID);
            }
            else if (source == 1)
            {
                dt = LoadTreeByCode(ismenu, PortalID, codes);
            }

            XmlDocument doc = new XmlDocument();

            doc.LoadXml("<newsgroups></newsgroups>");
            XmlElement root = doc.DocumentElement;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                XmlElement NewsGroup = doc.CreateElement("newsgroup");
                int        tabid     = Convert.ToInt32(dt.Rows[i]["DesktopListID"]);
                string     link      = DotNetNuke.Common.Globals.NavigateURL(tabid, "", "newsgroupid/" + dt.Rows[i]["NewsGroupID"].ToString());
                string     url_edit  = editFormatUrl.Replace("@@groupid", dt.Rows[i]["NewsGroupID"].ToString());
                DotNetNuke.NewsProvider.Utils.AddNode(doc, NewsGroup, "Img", DotNetNuke.Common.Globals.ApplicationPath + "/images/action_right.gif");
                DotNetNuke.NewsProvider.Utils.AddNode(doc, NewsGroup, "ImgLevel2", DotNetNuke.Common.Globals.ApplicationPath + "/images/edit.gif");
                DotNetNuke.NewsProvider.Utils.AddNode(doc, NewsGroup, "OrderNumber", dt.Rows[i]["OrderNumber"].ToString());

                MLNewsGroupInfo fMLGroup = MLNewsGroupController.GetNewsGroup(dt.Rows[i]["NewsGroupID"].ToString(), Locale, false);
                if (fMLGroup != null)
                {
                    if (fMLGroup.MLGroupName != null)
                    {
                        DotNetNuke.NewsProvider.Utils.AddNode(doc, NewsGroup, "NewsGroupName", fMLGroup.MLGroupName.StringTextOrFallBack);
                    }
                    else
                    {
                        DotNetNuke.NewsProvider.Utils.AddNode(doc, NewsGroup, "NewsGroupName", fMLGroup.NewsGroupName);
                    }
                }
                else
                {
                    DotNetNuke.NewsProvider.Utils.AddNode(doc, NewsGroup, "NewsGroupName", dt.Rows[i]["NewsGroupName"].ToString());
                }
                DotNetNuke.NewsProvider.Utils.AddNode(doc, NewsGroup, "NewsGroupCode", dt.Rows[i]["NewsGroupCode"].ToString());
                DotNetNuke.NewsProvider.Utils.AddNode(doc, NewsGroup, "PortalID", dt.Rows[i]["PortalID"].ToString());
                DotNetNuke.NewsProvider.Utils.AddNode(doc, NewsGroup, "link", link);
                DotNetNuke.NewsProvider.Utils.AddNode(doc, NewsGroup, "url_edit", url_edit);
                if (i % 2 == 1)
                {
                    DotNetNuke.NewsProvider.Utils.AddNode(doc, NewsGroup, "odd", "true");
                }
                root.AppendChild(NewsGroup);
            }
            return(doc);
        }
        public DataTable LoadTreeForMenu(int PortalID, int source, string codes, string Locale)
        {
            DataTable dt = null;

            if (source == 0)
            {
                dt = LoadTree(true, PortalID);
            }
            else if (source == 1)
            {
                dt = LoadTreeByCode(true, PortalID, codes);
            }
            dt.Columns.Add(new DataColumn("Name", typeof(string)));
            dt.Columns.Add(new DataColumn("Link", typeof(string)));
            dt.Columns.Add(new DataColumn("Level", typeof(int)));
            dt.Columns.Add(new DataColumn("Target", typeof(string)));
            dt.Columns.Add(new DataColumn("Image", typeof(string)));

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                dt.Rows[i]["Target"] = "_self";
                dt.Rows[i]["Image"]  = "";
                dt.Rows[i]["Level"]  = 1;
                int tabid = Convert.ToInt32(dt.Rows[i]["DesktopListID"]);
                dt.Rows[i]["Link"] = DotNetNuke.Common.Globals.NavigateURL(tabid, "", "newsgroupid/" + dt.Rows[i]["NewsGroupID"].ToString());
                MLNewsGroupInfo fMLNewsGroup = MLNewsGroupController.GetNewsGroup(dt.Rows[i]["NewsGroupID"].ToString(), Locale, false);
                if (fMLNewsGroup != null)
                {
                    if (fMLNewsGroup.MLGroupName != null)
                    {
                        dt.Rows[i]["Name"] = fMLNewsGroup.MLGroupName.StringText;
                    }
                    else
                    {
                        dt.Rows[i]["Name"] = fMLNewsGroup.NewsGroupName;
                    }
                }
                else
                {
                    dt.Rows[i]["Name"] = dt.Rows[i]["NewsGroupName"].ToString();
                }
            }
            return(dt);
        }