コード例 #1
0
ファイル: C_Link.cs プロジェクト: jackjet870/cms
        /// <summary>
        /// 更新链接
        /// </summary>
        public void Edit_GET()
        {
            object data;
            int    linkId = int.Parse(base.Request.QueryString["linkId"]);
            string plinks = "";

            SiteLinkDto link = ServiceCall.Instance.SiteService.GetLinkById(this.SiteId, linkId);

            string bindTitle = String.Empty;

            string[] binds = (link.Bind ?? "").Split(':');
            if (binds.Length != 2 || binds[1] == String.Empty)
            {
                binds = null;
            }
            else
            {
                if (binds[0] == "category")
                {
                    CategoryDto cate = ServiceCall.Instance.SiteService.GetCategory(this.SiteId, int.Parse(binds[1]));

                    bindTitle = cate.ID > 0 ?
                                String.Format("栏目:{0}", cate.Name) :
                                null;
                }
                else if (binds[0] == "archive")
                {
                    int archiveId;
                    int.TryParse(binds[1], out archiveId);

                    ArchiveDto archive = ServiceCall.Instance.ArchiveService
                                         .GetArchiveById(this.SiteId, archiveId);

                    if (archive.Id <= 0)
                    {
                        binds = null;
                    }
                    else
                    {
                        bindTitle = String.Format("文档:{0}", archive.Title);
                    }
                }
            }

            string linkTypeName,
                   resouce;

            switch ((SiteLinkType)link.Type)
            {
            case SiteLinkType.FriendLink: linkTypeName = "友情链接";
                resouce = ResourceMap.GetPageContent(ManagementPage.Link_SiteLinkEdit);
                break;

            default:
            case SiteLinkType.CustomLink: linkTypeName = "自定义链接";
                resouce = ResourceMap.GetPageContent(ManagementPage.Link_SiteLinkEdit);
                break;

            case SiteLinkType.Navigation: linkTypeName = "网站导航";
                resouce = ResourceMap.GetPageContent(ManagementPage.Link_SiteLinkEdit_Navigator);
                break;
            }

            //plinks
            StringBuilder             sb          = new StringBuilder();
            IEnumerable <SiteLinkDto> parentLinks = ServiceCall.Instance.SiteService
                                                    .GetLinksByType(this.SiteId, link.Type, true);

            foreach (SiteLinkDto _link in parentLinks)
            {
                if (_link.Pid == 0)
                {
                    sb.Append("<option value=\"").Append(_link.ID.ToString())
                    .Append("\">").Append(_link.Text).Append("</option>");
                }
            }
            plinks = sb.ToString();


            int categoryId = -1;

            if (link.Bind != null && link.Bind.StartsWith("category:"))
            {
                categoryId = int.Parse(binds[1]);
            }

            string json = JsonSerializer.Serialize(
                new
            {
                ID         = link.ID,
                Text       = link.Text,
                Uri        = link.Uri,
                OrderIndex = link.OrderIndex,
                Btn        = "保存",
                BindId     = binds == null ? "" : binds[1],
                BindType   = binds == null ? "" : binds[0],
                BindTitle  = bindTitle == String.Empty ? "未绑定" : bindTitle,
                Target     = link.Target,
                Type       = (int)link.Type,
                ImgUrl     = link.ImgUrl,
                Visible    = link.Visible.ToString(),
                pid        = '0'
            });

            base.RenderTemplate(resouce, new
            {
                entity        = json,
                LinkType      = (int)link.Type,
                linkTypeName  = linkTypeName,
                categoryNodes = this.GetCategorySelector(this.SiteId, -1),
                plinks        = plinks
            });
        }
コード例 #2
0
ファイル: C_Link.cs プロジェクト: jackjet870/cms
        /// <summary>
        /// 创建链接
        /// </summary>
        public void Create_GET()
        {
            object data;
            string plinks = "";


            SiteLinkType type = (SiteLinkType)Enum.Parse(typeof(SiteLinkType), base.Request["type"], true);
            string       linkTypeName,
                         resouce;

            switch (type)
            {
            case SiteLinkType.FriendLink: linkTypeName = "友情链接"; resouce = ResourceMap.GetPageContent(ManagementPage.Link_SiteLinkEdit); break;

            default:
            case SiteLinkType.CustomLink: linkTypeName = "自定义链接"; resouce = ResourceMap.GetPageContent(ManagementPage.Link_SiteLinkEdit); break;

            case SiteLinkType.Navigation: linkTypeName = "网站导航"; resouce = ResourceMap.GetPageContent(ManagementPage.Link_SiteLinkEdit_Navigator); break;
            }


            //plinks
            StringBuilder sb     = new StringBuilder();
            int           siteID = base.CurrentSite.SiteId;

            IEnumerable <SiteLinkDto> parentLinks = ServiceCall.Instance.SiteService
                                                    .GetLinksByType(this.SiteId, type, true);

            foreach (SiteLinkDto _link in parentLinks)
            {
                if (_link.Pid == 0)
                {
                    sb.Append("<option value=\"").Append(_link.ID.ToString())
                    .Append("\">").Append(_link.Text).Append("</option>");
                }
            }
            plinks = sb.ToString();

            string json = JsonSerializer.Serialize(
                new
            {
                ID         = 0,
                Text       = String.Empty,
                Uri        = String.Empty,
                OrderIndex = "0",
                Btn        = "添加",
                BindId     = String.Empty,
                BindType   = String.Empty,
                BindTitle  = "未绑定",
                Target     = String.Empty,
                Type       = Request["type"],
                ImgUrl     = String.Empty,
                pid        = '0',
                Visible    = "True"
            });

            base.RenderTemplate(resouce, new
            {
                entity        = json,
                LinkType      = Request["type"],
                linkTypeName  = linkTypeName,
                categoryNodes = this.GetCategorySelector(siteID, -1),
                plinks        = plinks
            });
        }
コード例 #3
0
ファイル: C_Category.cs プロジェクト: jackjet870/cms
        /// <summary>
        /// 所有栏目
        /// </summary>
        public void All_GET()
        {
            /*
             * string categoryRowsHtml;            //栏目行HTML
             *
             * StringBuilder sb = new StringBuilder();
             * ModuleBLL mb = new ModuleBLL();
             * Module m;
             *
             * var allCate = CmsLogic.Category.GetCategories();
             *
             *
             * if (allCate != null && allCate.Count != 0)
             * {
             *  //根节点
             *  Category root = CmsLogic.Category.Root;
             *
             *  CmsLogic.Category.HandleCategoryTree(root.Name, (c, level) =>
             *  {
             *      m = mb.GetModule(c.ModuleID);
             *      sb.Append("<tr><td class=\"hidden\">").Append(c.Lft).Append("</td>")
             *            .Append("<td><span class=\"pnode\"></span>");
             *
             *      for (var i = 0; i < level; i++)
             *      {
             *          sb.Append("&nbsp;&nbsp;");
             *      }
             *
             *      sb.Append(c.Name).Append("</td>")
             *      .Append("<td class=\"center\">").Append(c.Tag).Append("</td>")
             *      .Append("<td class=\"center\">").Append(m == null ? "-" : m.Name).Append("</td><td class=\"center\">")
             *              .Append(c.Keywords)
             *              .Append("</td><td class=\"center\"><button class=\"draw\" onclick=\"location.href='?module=archive&action=create&moduleID=").Append(c.ModuleID.ToString())
             *      .Append("&categoryID=").Append(c.ID).Append("'\" /></td><td class=\"center\"><button class=\"edit\" /></td><td class=\"center\"><button class=\"delete\" /></td></tr>");
             *
             *  });
             */
            /*
             * foreach (Category parentCategory in CmsLogic.Category.GetCategories(a => a.PID == 0))
             * {
             *  m = mb.GetModule(parentCategory.ModuleID);
             *
             *  sb.Append("<tr class=\"row\"><td class=\"hidden\">").Append(parentCategory.ID).Append("</td>")
             *      .Append("<td style=\"padding-left:10px\"><span class=\"pnode\"></span>").Append(parentCategory.Name).Append("</td>")
             *      .Append("<td class=\"center\">").Append(parentnode.tag).Append("</td>")
             *      .Append("<td class=\"center\">").Append(m == null ? "-" : m.Name).Append("</td><td class=\"center\">")
             *              .Append(parentCategory.Keywords)
             *              .Append("</td><td class=\"center\"><button class=\"draw\" onclick=\"location.href='?module=archive&action=create&moduleID=").Append(parentCategory.ModuleID.ToString())
             *      .Append("&categoryID=").Append(parentCategory.ID).Append("'\" /></td><td class=\"center\"><button class=\"edit\" /></td><td class=\"center\"><button class=\"delete\" /></td></tr>");
             *
             *  childCategories = new List<global::Spc.Category>(CmsLogic.Category.GetCategories(a => a.PID == parentCategory.ID));
             *  if (childCategories.Count != 0)
             *  {
             *      // sb.Append("<tr><td colspan=\"8\"><table class=\"childCategories\" cellspacing=\"0\">");
             *
             *      foreach (global::Spc.Category childCategory in childCategories)
             *      {
             *          m = mb.GetModule(childCategory.ModuleID);
             *          sb.Append("<tr><td class=\"hidden\">").Append(childCategory.ID).Append("</td><td style=\"padding-left:10px\"><span class=\"cnode\"></span>")
             *              .Append(childCategory.Name).Append("</td>")
             *              .Append("<td class=\"center\">").Append(childnode.tag).Append("</td><td class=\"center\">")
             *              .Append(m == null ? "-" : m.Name)
             *              .Append("</td><td class=\"center\">")
             *              .Append(childCategory.Keywords)
             *              .Append("</td><td class=\"center\"><button class=\"draw\" onclick=\"location.href='?module=archive&action=create&moduleID=")
             *              .Append(childCategory.ModuleID).Append("&categoryID=").Append(childCategory.ID).Append("'\" /></td>")
             *              .Append("<td class=\"center\"><button class=\"edit\" /></td>")
             *              .Append("<td class=\"center\"><button class=\"delete\" /></td></tr>");
             *      }
             *
             *      //sb.Append("</table></td></tr>");
             *  }
             *
             * }
             */



            //模块JSON
            //categoryTypeJSON = CmsLogic.Module.GetModuleJson();

            base.RenderTemplate(ResourceMap.GetPageContent(ManagementPage.Category_List), new
            {
                //categoryRowsHtml = categoryRowsHtml,
                //categoryTypeJSON = categoryTypeJSON,
                //count=allCate.Count.ToString()
            });
        }
コード例 #4
0
ファイル: C_Category.cs プロジェクト: jackjet870/cms
        /// <summary>
        /// 左侧栏目树
        /// </summary>
        public void Tree_GET()
        {
            TreeNode node = ServiceCall.Instance.SiteService.GetCategoryTreeNode(this.SiteId, 1);

            BuiltCacheResultHandler <String> bh = () =>
            {
                string        _treeHtml = "";
                StringBuilder sb        = new StringBuilder();


                //var allCate = CmsLogic.Category.GetCategories();

                sb.Append("<dl><dt class=\"tree-title\"><img src=\"/framework/assets/sys_themes/default/icon_trans.png\" width=\"24\" height=\"24\" class=\"tree-title\"/>")
                .Append(this.CurrentSite.Name ?? "默认站点").Append("</dt>");



                //从根目录起循环
                ServiceCall.Instance.SiteService.ItrCategoryTree(sb, this.SiteId, 1);

                //ItrTree(CmsLogic.Category.Root, sb,siteID);


                sb.Append("</dl>");

                _treeHtml = sb.ToString();


                _treeHtml = Regex.Replace(_treeHtml, "(<img[^>]+>)+<span([^>]+)>([^<]+)</span></dd></dl>", m =>
                {
                    string returnStr = m.Value.Replace("tree-item", "tree-item-last");

                    MatchCollection mcs = Regex.Matches(m.Value, "<img class=\"tree-line\"[^>]+>");
                    if (mcs.Count > 0)
                    {
                        //returnStr = returnStr.Replace(mcs[mcs.Count - 1].Value, mcs[mcs.Count - 1].Value.Replace("tree-line", "tree-line-last"));
                    }
                    return(returnStr);
                });

                return(_treeHtml);
            };


            try
            {
                string json = JsonSerializer.Serialize(node);

                /*
                 * string treeHtml = CacheFactory.Sington.GetResult<String>(
                 *  String.Format("{0}_{1}_admin_tree", CacheSign.Category.ToString(), this.SiteId.ToString()),
                 *  bh);
                 */

                base.RenderTemplate(ResourceMap.GetPageContent(ManagementPage.Category_LeftBar_Tree), new
                {
                    tree    = json,
                    treeFor = base.Request["for"]
                });
            }
            catch (Exception exc)
            {
                this.Response.Write("<script>parent.M.alert('站点栏目异常!这可能是由于数据不正确导致。<br />具体错误信息:");
                this.Response.Write(exc.Message);
                this.Response.Write("')</script>");
            }
        }
コード例 #5
0
ファイル: C_Category.cs プロジェクト: jackjet870/cms
        /// <summary>
        /// 创建栏目
        /// </summary>
        public void Update_GET()
        {
            string categoryOptions,            //栏目下拉列表
                   categoryTypeOptions,        //栏目类型下拉列表
                   categoryTpl,
                   archiveTpl,
                   archiveTplOpts,
                   categoryTplOpts;

            StringBuilder sb = new StringBuilder();

            //获取栏目
            int         leftID   = int.Parse(base.Request["lft"]);
            CategoryDto category = ServiceCall.Instance.SiteService.GetCategoryByLft(this.SiteId, leftID);


            //检验站点
            if (!(category.ID > 0))
            {
                return;
            }

            //获取父栏目pleft
            int         pleft = 1;
            CategoryDto pc    = ServiceCall.Instance.SiteService.GetParentCategory(this.SiteId, category.Lft);

            if (pc.ID > 0)
            {
                pleft = pc.Lft;
            }

            /*
             * //加载模块
             * foreach (var m in CmsLogic.Module.GetSiteAvailableModules(this.SiteId))
             * {
             *  if (!m.IsDelete)
             *  {
             *      sb.Append("<option value=\"").Append(m.ID.ToString()).Append("\">").Append(m.Name).Append("</option>");
             *  }
             * }
             * categoryTypeOptions = sb.ToString();
             * sb.Remove(0, sb.Length);
             *
             */

            //加载栏目(排除当前栏目)
            ServiceCall.Instance.SiteService.HandleCategoryTree(this.SiteId, 1, (c, level) =>
            {
                if (c.Lft != leftID)
                {
                    sb.Append("<option value=\"").Append(c.Lft.ToString()).Append("\">");
                    for (var i = 0; i < level; i++)
                    {
                        sb.Append(CmsCharMap.Dot);
                    }
                    sb.Append(c.Name).Append("</option>");
                }
            });

            categoryOptions = sb.ToString();



            //获取模板视图下拉项
            sb.Remove(0, sb.Length);

            //模板目录
            DirectoryInfo dir = new DirectoryInfo(
                String.Format("{0}templates/{1}",
                              AppDomain.CurrentDomain.BaseDirectory,
                              Settings.TPL_MultMode ? "" : base.CurrentSite.Tpl + "/"
                              ));

            EachClass.EachTemplatePage(dir, sb, TemplatePageType.Archive);
            archiveTplOpts = sb.ToString();

            sb.Remove(0, sb.Length);

            EachClass.EachTemplatePage(dir, sb, TemplatePageType.Category);
            categoryTplOpts = sb.ToString();


            //获取栏目及文档模板绑定
            categoryTpl = String.IsNullOrEmpty(category.CategoryTemplate) ? "" : category.CategoryTemplate;
            archiveTpl  = String.IsNullOrEmpty(category.CategoryArchiveTemplate) ? "" : category.CategoryArchiveTemplate;

            object data = new
            {
                entity     = JsonSerializer.Serialize(category),
                url        = base.Request.RawUrl,
                categories = categoryOptions,
                //categoryTypes = categoryTypeOptions,
                parentLft       = pleft,
                categoryTplPath = categoryTpl,
                archiveTplPath  = archiveTpl,
                category_tpls   = categoryTplOpts,
                archive_tpls    = archiveTplOpts
            };

            base.RenderTemplate(ResourceMap.GetPageContent(ManagementPage.Category_EditCategory), data);
        }
コード例 #6
0
ファイル: C_Category.cs プロジェクト: jackjet870/cms
        /// <summary>
        /// 创建栏目
        /// </summary>
        public void Create_GET()
        {
            string categoryOptions,             //栏目下拉列表
                   categoryTypeOptions,         //栏目类型下拉列表
                   archiveTplOpts,
                   categoryTplOpts;

            StringBuilder sb     = new StringBuilder();
            int           siteID = base.CurrentSite.SiteId;

            //当前站点
            var site = base.CurrentSite;

            //加载模块

            /*
             * foreach (var m in CmsLogic.Module.GetSiteAvailableModules(siteID))
             * {
             *  if (!m.IsDelete)
             *  {
             *      sb.Append("<option value=\"").Append(m.ID.ToString()).Append("\">").Append(m.Name).Append("</option>");
             *  }
             * }
             * categoryTypeOptions = sb.ToString();
             * sb.Remove(0, sb.Length);
             */

            //加载栏目
            ServiceCall.Instance.SiteService.HandleCategoryTree(this.SiteId, 1, (category, level) =>
            {
                sb.Append("<option value=\"").Append(category.Lft.ToString()).Append("\">");
                for (var i = 0; i < level; i++)
                {
                    sb.Append(CmsCharMap.Dot);
                }
                sb.Append(category.Name).Append("</option>");
            });

            categoryOptions = sb.ToString();



            //获取模板视图下拉项
            sb.Remove(0, sb.Length);

            //模板目录
            DirectoryInfo dir = new DirectoryInfo(
                String.Format("{0}templates/{1}",
                              AppDomain.CurrentDomain.BaseDirectory,
                              Settings.TPL_MultMode ? "" : base.CurrentSite.Tpl + "/"
                              ));

            EachClass.EachTemplatePage(dir, sb, TemplatePageType.Archive);
            archiveTplOpts = sb.ToString();

            sb.Remove(0, sb.Length);

            EachClass.EachTemplatePage(dir, sb, TemplatePageType.Category);
            categoryTplOpts = sb.ToString();

            object entity = new
            {
                ParentLft = Request["lft"]
            };

            object data = new
            {
                url           = base.Request.RawUrl,
                categories    = categoryOptions,
                tpls          = sb.ToString(),
                category_tpls = categoryTplOpts,
                archive_tpls  = archiveTplOpts,
                entity        = JsonSerializer.Serialize(entity)
            };

            base.RenderTemplate(ResourceMap.GetPageContent(ManagementPage.Category_CreateCategory), data);
        }