Пример #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()
        {

            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);
        }
Пример #3
0
        /// <summary>
        /// 文档评论
        /// </summary>
        public void Comment_GET()
        {
            string commentListHtml;

            int id = int.Parse(base.Request["archive.id"]);
            ArchiveDto archive = ServiceCall.Instance.ArchiveService.GetArchiveById(this.SiteId, id);

            bool desc = base.Request["desc"] == "true";

            CategoryDto category = archive.Category;

            StringBuilder sb = new StringBuilder();
            DataTable table = CmsLogic.Comment.GetArchiveComments(archive.StrId, desc);


            int i = 1;
            bool isGuest = false;
            string nickName, content, avatar;
            Match match;
            foreach (DataRow dr in table.Rows)
            {
                //筛选出游客的昵称和内容
                if (dr["memberid"].ToString() != "0")
                {
                    nickName = dr["nickname"].ToString();
                    content = dr["content"].ToString();
                    avatar = dr["avatar"].ToString();
                    isGuest = false;
                }
                else
                {
                    content = dr["content"].ToString();
                    match = Regex.Match(content, "\\(u:'(?<user>.+?)'\\)");

                    if (match != null)
                    {
                        nickName = match.Groups["user"].Value;
                        content = Regex.Replace(content, "\\(u:'(.+?)'\\)", String.Empty);
                    }
                    else
                    {
                        nickName = "游客";
                    }

                    avatar = "?module=file&action=guestavatar";
                    isGuest = true;
                }


                sb.Append("<p class=\"comment\"><img src=\"").Append(avatar).Append("\" /><span class=\"time\">")
                .Append(String.Format("{0:yyyy-MM-dd HH:mm:ss}", dr["createdate"])).Append("</span><span class=\"details\"><a href=\"#\">")
                .Append(nickName).Append("</a><br />").Append(content).Append("</span><span class=\"floor\">")
                .Append(i.ToString()).Append("楼</span><span class=\"control\"><a href=\"javascript:;\" onclick=\"remove(this,'").Append(dr["id"].ToString()).Append("')\">删除</a></span></p>");
                ++i;
            }

            commentListHtml = sb.Length == 0 ? "暂无评论!" : sb.ToString();

            object data = new
            {
                archiveID = archive.StrId,
                archiveTitle = archive.Title,
                author = archive.Author,
                publishDate = String.Format("{0:yyyy-MM-dd HH:mm:ss}", archive.CreateDate),
                commentListHtml = commentListHtml
            };

            base.RenderTemplate(ResourceMap.CommentList, data);
        }
Пример #4
0
        public void Forword_GET()
        {
            int id = int.Parse(base.Request["archive.id"]);
            ArchiveDto archive = ServiceCall.Instance.ArchiveService.GetArchiveById(this.SiteId, id);
            string fullDomain = this.CurrentSite.FullDomain;
            if (fullDomain.IndexOf("#") != -1)
            {
                fullDomain = fullDomain.Replace("#", AtNet.Cms.Cms.Context.Host);
            }
            string url = fullDomain + archive.Url;


            if(String.IsNullOrEmpty(archive.Outline))
            {
                archive.Outline = ArchiveUtility.GetOutline(archive.Content,100);
            }
            
            //Cms.Context.SiteDomain

            object data = new
            {
                title = archive.Title,
                outline =  archive.Outline,
                url= url,
                forword_content =String.Format("<a href=\"{0}\" target=\"_blank\"><strong>{1}</strong><br />{2}</a>",
                    url,
                    archive.Title,
                    archive.Outline),
                link_content = ""
            };

            base.RenderTemplate(ResourceMap.GetPageContent(ManagementPage.Archive_Forword), data);
        }
Пример #5
0
        /// <summary>
        /// 系统设置
        /// </summary>
        public void AppConfig_GET()
        {
            object data = new
            {
                license_name = Settings.License_NAME,
                license_key = Settings.License_KEY,
                site_domain = Request.Url.Host,
                sys_autowww = Settings.SYS_AUTOWWW,
                sys_admin_tag = Settings.SYS_ADMIN_TAG,
                db_prefix = Settings.DB_PREFIX,
                opti_IndexCacheSeconds = (Settings.Opti_IndexCacheSeconds / 60).ToString(),
                opti_ClientCacheSeconds = (Settings.Opti_ClientCacheSeconds / 60).ToString(),
                Opti_GC_Collect_Interval = (Settings.Opti_GC_Collect_Interval / 3600000),
                opti_debug = Settings.Opti_Debug,
                server_static = Settings.SERVER_STATIC,
                server_static_enabled = Settings.SERVER_STATIC_ENABLED,
                tpl_usefullpath = Settings.TPL_UseFullPath,
                tpl_usecompress = Settings.TPL_UseCompress

            };
            base.RenderTemplate(ResourceMap.GetPageContent(ManagementPage.App_Config), new
            {
                json = JsonSerializer.Serialize(data)
            });
        }