コード例 #1
0
        /// <summary>
        /// 创建文档
        /// </summary>
        public void Create_GET()
        {
            object data;
            string tpls,
                   nodesHtml,                                                                                 //栏目JSON
                   extendFieldsHtml = "",                                                                     //属性Html
                   extendItemsHtml  = "";

            Module module;

            int         categoryId = int.Parse(base.Request["category.id"] ?? "1");                            //分类ID
            CategoryDto category   = ServiceCall.Instance.SiteService.GetCategory(base.SiteId, categoryId);


            //获取模板视图下拉项
            StringBuilder sb2 = new StringBuilder();

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

            EachClass.EachTemplatePage(
                dir,
                sb2,
                TemplatePageType.Custom,
                TemplatePageType.Archive
                );

            tpls = sb2.ToString();
            sb2.Remove(0, sb2.Length);

            //获取该模块栏目JSON数据
            //categoryJSON = CmsLogic.Category.GetJson(m.ID);

            ServiceCall.Instance.SiteService.HandleCategoryTree(this.SiteId, 1, (_category, level) =>
            {
                sb2.Append("<option value=\"").Append(_category.Id.ToString()).Append("\"");

                if (_category.Id == category.Id)
                {
                    sb2.Append(" selected=\"selected\"");
                }

                sb2.Append(">");


                for (int i = 0; i < level; i++)
                {
                    sb2.Append(CmsCharMap.Dot);
                }

                sb2.Append(_category.Name).Append("</option>");
            });
            nodesHtml = sb2.ToString();


            //=============  拼接模块的属性值 ==============//

            /*
             * //========= 统计tab =============//
             * sb.Append("<ul class=\"dataExtend_tabs\">");
             * foreach (DataExtend e in extends)
             * {
             *  sb.Append("<li><span>").Append(e.Name).Append("</span></li>");
             * }
             * sb.Append("</ul>");
             *
             * extendItemsHtml = sb.ToString();
             *
             * sb.Capacity = 1000;
             * sb.Remove(0, sb.Length);
             */



            //======== 生成值 =============//

            StringBuilder sb = new StringBuilder(500);

            sb.Append("<div class=\"dataextend_item\">");
            PropertyUI uiType;

            foreach (IExtendField p in category.ExtendFields)
            {
                uiType = (PropertyUI)int.Parse(p.Type);

                sb.Append("<dl><dt>").Append(p.Name).Append(":</dt><dd>");

                switch (uiType)
                {
                case PropertyUI.Text:
                    sb.Append("<input type=\"text\" class=\"tb_normal\" field=\"extend_").Append(p.Id.ToString())
                    .Append("\" value=\"").Append(p.DefaultValue).Append("\"/>");
                    break;

                case PropertyUI.MultLine:
                    sb.Append("<textarea class=\"tb_normal\" field=\"extend_").Append(p.Id.ToString())
                    .Append("\">").Append(p.DefaultValue).Append("</textarea>");
                    break;

                case PropertyUI.Integer:
                    sb.Append("<input type=\"text\" class=\"tb_normal ui-validate\" isnum=\"true\" field=\"extend_").Append(p.Id.ToString())
                    .Append("\" value=\"").Append(p.DefaultValue).Append("\"/>");
                    break;

                case PropertyUI.Upload:
                    sb.Append("<input type=\"text  upload_value\" class=\"tb_normal\" id=\"extend_").Append(p.Id.ToString())
                    .Append("\" field=\"extend_").Append(p.Id.ToString())
                    .Append("\" value=\"").Append(p.DefaultValue).Append("\"/>&nbsp;&nbsp;<span id=\"upload_")
                    .Append(p.Id.ToString()).Append("\">选择文件</span>")
                    .Append("<script type=\"text/javascript\">cms.propertyUpload(")
                    .Append("'upload_").Append(p.Id.ToString()).Append("','extend_").Append(p.Id.ToString()).Append("');</script>");
                    break;
                }

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

                /*<p><span class="txt">标签:</span>
                 *  <span class="input"><input type="text" name="tags" size="30"/></span>
                 *  <span class="msg"></span></p>
                 */
            }


            sb.Append("</div>");
            extendFieldsHtml = sb.ToString();


            // extendFieldsHtml = "<div style=\"color:red;padding:20px;\">所选栏目模块不包含任何自定义属性,如需添加请到模块管理-》属性设置</div>";


            object json = new
            {
                Thumbnail = CmsVariables.FRAMEWORK_ARCHIVE_NoPhoto,
                Location  = String.Empty
            };

            data = new
            {
                extendFieldsHtml = extendFieldsHtml,
                extendItemsHtml  = extendItemsHtml,
                thumbPrefix      = CmsVariables.Archive_ThumbPrefix,
                nodes            = nodesHtml,
                url  = Request.Url.PathAndQuery,
                tpls = tpls,
                json = JsonSerializer.Serialize(json)
            };



            base.RenderTemplate(ResourceMap.GetPageContent(ManagementPage.Archive_Create), data);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <summary>
        /// 更新文档
        /// </summary>
        public void Update_GET()
        {
            object data;
            int    archiveId = int.Parse(base.Request["archive.id"]);
            string tpls,
                   nodesHtml,                                                 //栏目JSON
                   extendFieldsHtml = "",                                     //属性Html
                   extendItemsHtml  = "";

            Module module;

            int siteId = this.CurrentSite.SiteId;

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

            int categoryId = archive.Category.Id;



            #region 旧的

            //获取上次发布的栏目
            //Category category = CmsLogic.Category.Get(a => a.ID == archive.Category.ID);

            //if (base.CompareSite(category.SiteId)) return;

            //bool categoryIsNull = category == null;

            /*
             * if (!categoryIsNull)
             * {
             *
             *  module = CmsLogic.Module.GetModule(category.ModuleID);
             *
             *  //=============  拼接模块的属性值 ==============//
             *
             *  StringBuilder sb = new StringBuilder(50);
             *  IList<DataExtend> extends = null;// new List<DataExtend>(CmsLogic.DataExtend.GetExtendsByModule(module));
             *
             *  if (extends.Count > 0)
             *  {
             *
             *      //========= 统计tab =============//
             *      sb.Append("<ul class=\"dataExtend_tabs\">");
             *      foreach (DataExtend e in extends)
             *      {
             *          sb.Append("<li><span>").Append(e.Name).Append("</span></li>");
             *      }
             *      sb.Append("</ul>");
             *
             *      extendItemsHtml = sb.ToString();
             *
             *      sb.Capacity = 1000;
             *      sb.Remove(0, sb.Length);
             *
             *
             *      //======== 生成值 =============//
             *
             *      IEnumerable<DataExtendAttr> attrs;
             *      IDictionary<string, string> extendFields = null;// CmsLogic.DataExtend.GetExtendFiledDictionary(archive.ID);
             *      string attrValue;
             *
             *      foreach (DataExtend e in extends)
             *      {
             *          sb.Append("<div class=\"dataextend_item\">");
             *
             *          attrs = CmsLogic.DataExtend.GetExtendAttrs(e.ID);
             *
             *          foreach (DataExtendAttr p in attrs)
             *          {
             *
             *
             *              attrValue = extendFields.ContainsKey(p.AttrName) ? extendFields[p.AttrName] : p.AttrVal;
             *
             *              sb.Append("<dl><dt>").Append(p.AttrName).Append(":</dt><dd>");
             *
             *              if (p.AttrType == ((int)PropertyUI.Text).ToString())
             *              {
             *                  sb.Append("<input type=\"text\" class=\"tb_normal\" name=\"extend_").Append(p.ID.ToString())
             *                      .Append("\" value=\"").Append(attrValue).Append("\"/>");
             *              }
             *              else if (p.AttrType == ((int)PropertyUI.Upload).ToString())
             *              {
             *                  sb.Append("<input type=\"text\" disabled=\"disabled\" class=\"tb_normal\" id=\"extend_").Append(p.ID.ToString()).Append("\" name=\"extend_").Append(p.ID.ToString())
             *                      .Append("\" value=\"").Append(attrValue).Append("\"/><span id=\"upload_")
             *                      .Append(p.ID.ToString()).Append("\">选择文件</span>")
             *                      .Append("<script type=\"text/javascript\">cms.propertyUpload(")
             *                      .Append("'upload_").Append(p.ID.ToString()).Append("','extend_").Append(p.ID.ToString()).Append("');</script>");
             *              }
             *
             *
             *              sb.Append("</dd></dl>");
             *
             *              //<p><span class="txt">标签:</span>
             *              //    <span class="input"><input type="text" name="tags" size="30"/></span>
             *               //   <span class="msg"></span></p>
             *
             *          }
             *
             *
             *          sb.Append("</div>");
             *      }
             *
             *      extendFieldsHtml = sb.ToString();
             *  }
             *
             *  // extendFieldsHtml = "<div style=\"color:red;padding:20px;\">所选栏目模块不包含任何自定义属性,如需添加请到模块管理-》属性设置</div>";
             *
             * }
             */

            #endregion

            //=============  拼接模块的属性值 ==============//

            StringBuilder sb = new StringBuilder(50);

            string       attrValue;
            IExtendField field;

            sb.Append("<div class=\"dataextend_item\">");

            PropertyUI uiType;
            foreach (IExtendValue extValue in archive.ExtendValues)
            {
                field     = extValue.Field;
                uiType    = (PropertyUI)int.Parse(field.Type);
                attrValue = (extValue.Value ?? field.DefaultValue).Replace("<br />", "\n");

                sb.Append("<dl><dt>").Append(field.Name).Append(":</dt><dd>");


                switch (uiType)
                {
                case PropertyUI.Text:
                    sb.Append("<input type=\"text\" class=\"tb_normal\" field=\"extend_").Append(field.Id.ToString())
                    .Append("\" value=\"").Append(attrValue).Append("\"/>");
                    break;

                case PropertyUI.MultLine:
                    sb.Append("<textarea class=\"tb_normal\" field=\"extend_").Append(field.Id.ToString())
                    .Append("\">").Append(attrValue).Append("</textarea>");
                    break;

                case PropertyUI.Integer:
                    sb.Append("<input type=\"text\" class=\"tb_normal ui-validate\" isnum=\"true\" field=\"extend_")
                    .Append(field.Id.ToString()).Append("\" value=\"").Append(attrValue).Append("\"/>");
                    break;

                case PropertyUI.Upload:
                    // sb.Append("<input type=\"text\" disabled=\"disabled\" class=\"tb_normal\" id=\"extend_").Append(field.ID.ToString())
                    sb.Append("<input type=\"text\" class=\"tb_normal upload_value\" id=\"extend_").Append(field.Id.ToString())
                    .Append("\" field=\"extend_").Append(field.Id.ToString())
                    .Append("\" value=\"").Append(attrValue).Append("\"/>&nbsp;&nbsp;<span id=\"upload_")
                    .Append(field.Id.ToString()).Append("\">选择文件</span>")
                    .Append("<script type=\"text/javascript\">cms.propertyUpload(")
                    .Append("'upload_").Append(field.Id.ToString()).Append("','extend_").Append(field.Id.ToString())
                    .Append("');</script>");
                    break;
                }


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


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

            extendFieldsHtml = sb.ToString();



            //获取模板视图下拉项
            StringBuilder sb2 = new StringBuilder();

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

            EachClass.EachTemplatePage(dir,
                                       sb2,
                                       TemplatePageType.Custom,
                                       TemplatePageType.Archive
                                       );

            tpls = sb2.ToString();
            sb2.Remove(0, sb2.Length);

            ServiceCall.Instance.SiteService.HandleCategoryTree(this.SiteId, 1, (_category, level) =>
            {
                sb2.Append("<option value=\"").Append(_category.Id.ToString()).Append("\"");

                //if (_category.ModuleID != category.ModuleID)
                //{
                //    sb2.Append(" disabled=\"disabled\" class=\"disabled\"");
                //}


                sb2.Append(_category.Id == categoryId ? " selected=\"selected\"" : "").Append(">");


                for (int i = 0; i < level; i++)
                {
                    sb2.Append(CmsCharMap.Dot);
                }

                sb2.Append(_category.Name).Append("</option>");
            });
            nodesHtml = sb2.ToString();

            //标签
            Dictionary <string, bool> flags = ArchiveFlag.GetFlagsDict(archive.Flags);

            string thumbnail = !String.IsNullOrEmpty(archive.Thumbnail)
                    ? archive.Thumbnail
                    : "/" + CmsVariables.FRAMEWORK_ARCHIVE_NoPhoto;

            object json = new
            {
                IsSpecial = flags.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)) &&
                            flags[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)],

                IsSystem = flags.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)) &&
                           flags[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)],

                IsNotVisible = !(flags.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)) &&
                                 flags[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)]),

                AsPage = flags.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)) &&
                         flags[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)],

                Id           = archive.Id,
                Title        = archive.Title,
                SmallTitle   = archive.SmallTitle,
                Alias        = archive.Alias ?? String.Empty,
                Tags         = archive.Tags,
                Source       = archive.Source,
                Outline      = archive.Outline,
                Content      = archive.Content,
                TemplatePath = archive.IsSelfTemplate &&
                               !String.IsNullOrEmpty(archive.TemplatePath) ?
                               archive.TemplatePath :
                               String.Empty,
                Thumbnail = thumbnail,
                Location  = archive.Location
            };


            data = new
            {
                extendFieldsHtml = extendFieldsHtml,
                extendItemsHtml  = extendItemsHtml,
                thumbPrefix      = CmsVariables.Archive_ThumbPrefix,
                nodes            = nodesHtml,
                url  = Request.Url.PathAndQuery,
                tpls = tpls,
                json = JsonSerializer.Serialize(json)
            };

            base.RenderTemplate(
                BasePage.CompressHtml(ResourceMap.GetPageContent(ManagementPage.Archive_Update)),
                data);
        }
コード例 #4
0
        /// <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);
        }