Exemplo n.º 1
0
        /// <summary>
        /// search文档列表
        /// </summary>
        public void Search_GET()
        {
            HttpRequest request = HttpContext.Current.Request;

            const int __pageSize = 10;

            object data;            //返回的数据

            int pageSize,
                pageIndex,
                recordCount,
                pages;


            string _keyword   = request["keyword"],
                   _pageIndex = request["page"] ?? "1",
                   _pageSize  = request["size"];


            if (String.IsNullOrEmpty(_keyword))
            {
                data = new
                {
                    keyword         = _keyword ?? "",
                    headerText      = "",
                    archiveListHtml = "",
                    pagerHtml       = ""
                };
            }
            else
            {
                StringBuilder sb = new StringBuilder();
                string        pagerHtml,            //分页链接
                              tableHeaderText,      //表头字段
                              archiveListHtml;      //文档列表HTML

                //获取表头
                bool isMaster = (UserGroups)UserState.Administrator.Current.GroupID == UserGroups.Master;
                tableHeaderText = isMaster ? "<th>发布人</th>" : String.Empty;


                //处理页码大小并保存

                if (!Regex.IsMatch(_pageIndex, "^(?!0)\\d+$"))
                {
                    pageIndex = 1;                                              //If pageindex start with zero or lower
                }
                else
                {
                    pageIndex = int.Parse(_pageIndex);
                }

                if (String.IsNullOrEmpty(_pageSize))
                {
                    int.TryParse(HttpContext.Current.Session["archivelist_pagesize"] as string, out pageSize);
                }
                else
                {
                    int.TryParse(_pageSize, out pageSize);
                    HttpContext.Current.Session["archivelist_pagesize"] = pageSize;
                }
                if (pageSize == 0)
                {
                    pageSize = __pageSize;
                }



                //文档数据表,并生成Html
                DataTable dt = null;// CmsLogic.Archive.Search(this.CurrentSite.SiteId, _keyword, pageSize, pageIndex, out recordCount, out pages, null);


                IDictionary <string, bool> flagsDict;

                bool isSpecial,
                     isSystem,
                     isVisible,
                     isPage;

                foreach (DataRow dr in dt.Rows)
                {
                    flagsDict = ArchiveFlag.GetFlagsDict(dr["flags"].ToString());
                    isSpecial = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)) &&
                                flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)];

                    isSystem = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)) &&
                               flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)];

                    isVisible = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)) &&
                                flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)];

                    isPage = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)) &&
                             flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)];

                    //编号
                    sb.Append("<tr><td align=\"center\">").Append(dr["id"].ToString()).Append("</td>");
                    //标题
                    sb.Append("<td").Append(isSpecial ? " class=\"special\">" : ">").Append(dr["title"].ToString()).Append("</td>");

                    //管理员可以查看发布人
                    if (isMaster)
                    {
                        sb.Append("<td><a href=\"?module=archive&amp;action=list&amp;moduleID=&amp;author=")
                        .Append(dr["author"].ToString()).Append("\" title=\"查看该用户发布的文档\">").Append(dr["Author"].ToString()).Append("</a></td>");
                    }

                    sb.Append("<td>").Append(String.Format("{0:yyyy/MM/dd HH:mm}", Convert.ToDateTime(dr["CreateDate"]))).Append("</td><td align=\"center\">")
                    .Append(dr["ViewCount"].ToString()).Append("</td><td><button class=\"refresh\" /></td><td><button class=\"file\" /></td><td><button class=\"edit\" /></td><td><button class=\"delete\" /></td></tr>");
                }

                archiveListHtml = sb.ToString();



                string format = String.Format("?module=archive&action=search&keyword={1}&page={0}&size={2}", "{0}", HttpUtility.UrlEncode(_keyword), pageSize);

                //pagerHtml = Helper.BuildPagerInfo(format, pageIndex, recordCount, pages);

                data = new
                {
                    keyword         = _keyword ?? "",
                    headerText      = tableHeaderText,
                    archiveListHtml = archiveListHtml,
                    // pagerHtml = pagerHtml
                };
            }
            base.RenderTemplate(ResourceMap.SearchArchiveList, data);
        }
Exemplo n.º 2
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\">");


            foreach (IExtendValue extValue in archive.ExtendValues)
            {
                field = extValue.Field;

                attrValue = extValue.Value ?? field.DefaultValue;

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

                if (field.Type == ((int)PropertyUI.Text).ToString())
                {
                    sb.Append("<input type=\"text\" class=\"tb_normal\" field=\"extend_").Append(field.ID.ToString())
                    .Append("\" value=\"").Append(attrValue).Append("\"/>");
                }
                else if (field.Type == ((int)PropertyUI.Upload).ToString())
                {
                    sb.Append("<input type=\"text\" disabled=\"disabled\" class=\"tb_normal\" id=\"extend_").Append(field.ID.ToString())
                    .Append("\" field=\"extend_").Append(field.ID.ToString())
                    .Append("\" value=\"").Append(attrValue).Append("\"/><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>");
                }


                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,
                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
            };


            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);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 文档列表
        /// </summary>
        public void List_GET()
        {
            HttpRequest request = HttpContext.Current.Request;

            const int __pageSize = 10;

            object data;            //返回的数据

            int pageSize,
                pageIndex,
                recordCount,
                pages;

            bool?visible,
                special,
                system,
                aspage;

            int?categoryID = null,
               moduleID    = null;

            string _categoryId = request["category.id"],    //只有这个参数为必传
                   _moduleId   = request["moduleId"],
                   _pageIndex  = request["page"] ?? "1",
                   _pageSize   = request["size"],
                   _author     = request["author"],
                   _visible    = request["visible"],
                   _special    = request["special"],
                   _system     = request["system"],
                   _aspage     = request["aspage"];

            StringBuilder sb = new StringBuilder();
            string        categoryOpts,         //栏目Options
                          pagerHtml,            //分页链接
                          tableHeaderText,      //表头字段
                          archiveListHtml;      //文档列表HTML


            goto result;


            //处理页码大小并保存

            if (!Regex.IsMatch(_pageIndex, "^(?!0)\\d+$"))
            {
                pageIndex = 1;                                              //If pageindex start with zero or lower
            }
            else
            {
                pageIndex = int.Parse(_pageIndex);
            }

            if (String.IsNullOrEmpty(_pageSize))
            {
                object o = HttpContext.Current.Session["archivelist_pagesize"];
                int.TryParse(HttpContext.Current.Session["archivelist_pagesize"] as string, out pageSize);
            }
            else
            {
                int.TryParse(_pageSize, out pageSize);
                HttpContext.Current.Session["archivelist_pagesize"] = pageSize;
            }
            if (pageSize == 0)
            {
                pageSize = __pageSize;
            }



            //文档显示选项
            #region
            if (String.IsNullOrEmpty(_visible))
            {
                visible = null;
            }
            else
            {
                visible = String.Compare(_visible, String.Intern("true"), true) == 0;
            }

            if (String.IsNullOrEmpty(_special))
            {
                special = null;
            }
            else
            {
                special = String.Compare(_special, String.Intern("true"), true) == 0;
            }

            if (String.IsNullOrEmpty(_system))
            {
                system = null;
            }
            else
            {
                system = String.Compare(_system, String.Intern("true"), true) == 0;
            }


            if (String.IsNullOrEmpty(_aspage))
            {
                aspage = null;
            }
            else
            {
                aspage = String.Compare(_aspage, String.Intern("true"), true) == 0;
            }

            #endregion


            //获取表头
            bool isMaster = (UserGroups)UserState.Administrator.Current.GroupID == UserGroups.Master;
            tableHeaderText = isMaster ? "<th style=\"width:60px\" class=\"center\">发布人</th>" : String.Empty;

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

            categoryOpts = sb.ToString();
            sb.Remove(0, sb.Length);


            string[,] flags = new string[, ] {
                { ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem), system == null?"":(system.Value?"1":"0") },
                { ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial), special == null?"":(special.Value?"1":"0") },
                { ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible), visible == null?"":(visible.Value?"1":"0") },
                { ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage), aspage == null?"":(aspage.Value?"1":"0") }
            };

            //文档数据表,并生成Html
            DataTable dt = ServiceCall.Instance.ArchiveService.GetPagedArchives(this.SiteId, categoryID, _author, flags, null, false, pageSize, pageIndex, out recordCount, out pages);


            //moduleID == null ? CmsLogic.Archive.GetPagedArchives(categoryID, _author,flags, null, false, pageSize, pageIndex, out recordCount, out pages)
            //: CmsLogic.Archive.GetPagedArchives((SysModuleType)(moduleID ?? 1), _author, flags,null, false, pageSize, pageIndex, out recordCount, out pages);


            IDictionary <string, bool> flagsDict;

            bool isSpecial,
                 isSystem,
                 isVisible,
                 isPage;

            foreach (DataRow dr in dt.Rows)
            {
                flagsDict = ArchiveFlag.GetFlagsDict(dr["flags"].ToString());
                isSpecial = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)) &&
                            flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)];

                isSystem = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)) &&
                           flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)];

                isVisible = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)) &&
                            flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)];

                isPage = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)) &&
                         flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)];


                //编号
                sb.Append("<tr indent=\"").Append(dr["id"].ToString()).Append("\"><td align=\"center\">").Append(dr["id"].ToString()).Append("</td>");
                //标题
                sb.Append("<td").Append(isSpecial ? " class=\"special\">" : ">").Append(dr["title"].ToString());

                if (!String.IsNullOrEmpty(dr["alias"] as string))
                {
                    sb.Append("&nbsp;<span style=\"color:#777\">( 别名:").Append(dr["alias"].ToString()).Append(" )</span>");
                }
                sb.Append("</td>");

                //管理员可以查看发布人
                if (isMaster)
                {
                    sb.Append("<td class=\"center\"><a href=\"?module=archive&amp;action=list&amp;moduleID=").Append(_moduleId).Append("&amp;author=")
                    .Append(dr["author"].ToString()).Append("\" title=\"查看该用户发布的文档\">").Append(dr["Author"].ToString()).Append("</a></td>");
                }

                sb.Append("<td>").Append(String.Format("{0:yyyy/MM/dd HH:mm}", Convert.ToDateTime(dr["CreateDate"]))).Append("</td><td align=\"center\">")
                .Append(dr["ViewCount"].ToString()).Append("</td><td><button class=\"refresh\" /></td><td><button class=\"file\" /></td><td><button class=\"edit\" /></td><td><button class=\"delete\" /></td></tr>");
            }

            archiveListHtml = sb.ToString();



            string format = String.Format("?module=archive&action=list&categoryID={0}&moduleID={1}&page={2}&size={3}&author={4}&visible={5}&special={6}&system={7}",
                                          _categoryId, _moduleId, "{0}", pageSize, _author, _visible, _special, _system);

            pagerHtml = Helper.BuildPagerInfo(format, pageIndex, recordCount, pages);


result:

            data = new
            {
                moduleID   = _moduleId ?? String.Empty,
                categoryID = _categoryId ?? String.Empty,
                username   = _author
            };

            base.RenderTemplate(ResourceMap.GetPageContent(ManagementPage.Archive_List), data);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 更新文档
        /// </summary>
        public void Update_GET()
        {
            object data;
            int    archiveId = int.Parse(base.Request["archive.id"]);
            string tpls, nodesHtml,
            //栏目JSON
                   extendFieldsHtml = "";                                     //属性Html

            Module module;

            int siteId = this.CurrentSite.SiteId;

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

            int categoryId = archive.Category.Id;

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

            StringBuilder sb = new StringBuilder(50);

            string       attrValue;
            IExtendField field;

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

            foreach (IExtendValue extValue in archive.ExtendValues)
            {
                field     = extValue.Field;
                attrValue = (extValue.Value ?? field.DefaultValue).Replace("<br />", "\n");
                this.AppendExtendFormHtml(sb, field, attrValue);
            }


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

            extendFieldsHtml = sb.ToString();



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

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

            IDictionary <String, String> names = Cms.TemplateManager.Get(base.CurrentSite.Tpl).GetNameDictionary();

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

            tpls = sb2.ToString();

            nodesHtml = Helper.GetCategoryIdSelector(this.SiteId, categoryId);

            //标签
            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,
                extend_cls       = archive.ExtendValues.Count == 0 ? "hidden" : "",
                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);
        }