图片 14

帝国CMS灵动标签调用当前栏目下子栏目列表

灵动标签调用当前栏目下子栏目,支持栏目自定义排序。

项目地址:

[e:loop={"select classname,classpath,classid from phome_enewsclass where bclassid='$GLOBALS[navclassid]' and showclass=0 order by myorder,classid desc",0,24,0}]dda href="/?=$bqr[classpath]?/"?=$bqr[classname]?/a/dd[/e:loop]

移动端栏目管理

 

栏目是系统频道某一类内容的集合体。

您可以在频道中设置多个一级栏目,在一级栏目中添加多个二级栏目……。FreeCMS的栏目设置具有无级分类功能。

1. 添加一级栏目

从左侧管理菜单点击栏目管理进入。

图片 1 

点击“添加根栏目”

图片 2 

图片 3 

输入相关属性点击“保存”即可。

2. 编辑栏目

选择需要编辑的栏目。

图片 4 

点击“编辑”

图片 5 

图片 6 

 

输入相关属性点击“保存”即可。

3. 添加下级栏目

点击需要添加下级栏目的栏目

图片 7 

点击“添加下级”

图片 8 

图片 9 

图片 10 

 

填写相关属性后点击“保存”即可。

4. 转移栏目

为了方便用户使用,FreeCMS提供了改变栏目结构的简便方法,使您在想对栏目结构作出调整时不需要删除重建栏目。

选择需要改变所属栏目的栏目

图片 11 

点击“转移”

图片 12 

选择需要调整的位置,直接点击即可。

注意

1) 如果选择设置为根目录,则此栏目会变为一级栏目。

2) 在改变所属栏目时,此栏目的子栏目会随此栏目转移。

5. 删除栏目

删除栏目功能将删除指定栏目及子栏目,此操作不可恢复,请慎重操作。

选择需要删除的栏目

图片 13 

点击“删除”按钮

图片 14 

为防止用户误操作,系统会提示用户确认,点击“确定”按钮即可。

6. 栏目属性说明

移动端栏目管理只提供基本的属性设置,如果要设置其它属性请登录pc版管理中心进行设置。

属性

说明

栏目id

此栏目数据id

栏目名称

栏目名称

页面标识

在制作模板时,用于获取此栏目的标识

有效

有效性

导航

在提取栏目列表时,可根据此参数只提取导航的栏目。

序号

显示顺序

链接地址

如果想让此栏目直接链接到其它页面可以在这里设置。

栏目图片

此栏目的图片

栏目描述

此栏目的描述信息。

 

 

一、用户

二、用户组

三、栏目

3.1添加栏目

3.2浏览栏目

3.3更新栏目

3.4删除栏目

3.5前台栏目浏览

……

栏目模型;

模型应有一下字段:栏目名称,父栏目id,栏目类型,内容模型,栏目视图,内容视图,链接地址,栏目排序。暂时先想到这么多,先这这么写着。

栏目名称和父栏目id不用说很简单。

栏目类型有三种:普通栏目-就是一般的栏目;单页栏目——是指栏目就是一个页面,像公司介绍,联系地址等;外部链接—是指栏目点一下就跳转到一个链接。

内容模型——是指栏目为普通栏目时,栏目的内容,像新闻,文章,留言等。

栏目视图——是栏目使用的视图名称,在栏目类型为链接时无效。

内容视图——是指栏目的具体内容的视图,像栏目模型为新闻时,打开栏目下的新闻时使用的视图,仅在栏目类型为普通栏目时有效。

链接地址—点击跳转到的地址,在栏目类型为链接时有效。

栏目排序—栏目排序的依据,同级栏目数字越小排序越靠前。

字段确定后在Models文件夹点右键添加Category类

using System.ComponentModel.DataAnnotations;

namespace Ninesky.Models
{
    /// <summary>
    /// 栏目模型
    /// </summary>
    public class Category
    {
        [Key]
        public int CategoryId { get; set; }
        /// <summary>
        /// 栏目名称
        /// </summary>
        [Display(Name="栏目名称",Description="2-20个字符")]
        [Required(ErrorMessage="×")]
        [StringLength(20,MinimumLength=2,ErrorMessage="×")]
        public string Name { get; set; }
        /// <summary>
        /// 父栏目编号
        /// </summary>
        [Display(Name="父栏目")]
        [Required(ErrorMessage="×")]
        public int ParentId { get; set; }
        /// <summary>
        /// 栏目类型【0-普通栏目;1-单页栏目;2-外部链接】
        /// </summary>
        [Display(Name="栏目类型")]
        [Required(ErrorMessage = "×")]
        public int Type { get; set; }
        /// <summary>
        /// 内容模型【仅在栏目为普通栏目时有效】
        /// </summary>
        [Display(Name="内容模型")]
        public string Model { get; set; }
        /// <summary>
        /// 栏目视图
        /// </summary>
        [Display(Name = "栏目视图", Description = "栏目页的视图,最多255个字符。。")]
        [StringLength(255, ErrorMessage = "×")]
        public string CategoryView { get; set; }
        /// <summary>
        /// 内容页视图
        /// </summary>
        [Display(Name = "内容视图", Description = "内容页视图,最多255个字符。。")]
        [StringLength(255, ErrorMessage = "×")]
        public string ContentView { get; set; }
        /// <summary>
        /// 链接地址
        /// </summary>
        [Display(Name="链接地址",Description="点击栏目时跳转到的链接地址,最多255个字符。")]
        [StringLength(255,ErrorMessage = "×")]
        public string Navigation { get; set; }
        /// <summary>
        /// 栏目排序
        /// </summary>
        [Display(Name="栏目排序",Description="数字越小顺序越靠前。")]
        public int Order { get; set; }
    }
}

在Category类下面添加栏目类型枚举

public enum CategoryType
    {
        一般栏目, 单页栏目, 外部链接
    }

打开NineskyContext.cs 在上面添加public DbSet<Category> Categorys {
get; set; }这么一句代码,完成后文件如下:。

using Ninesky.Models;
using System.Data.Entity;

namespace Ninesky.Repository
{
    public class NineskyContext:DbContext
    {
        public DbSet<User> Users { get; set; }
        public DbSet<UserGroup> UserGroups { get; set; }
        public DbSet<Category> Categorys { get; set; }
        public NineskyContext()
            : base()
        {
            Database.CreateIfNotExists();
        }
    }
}

在Repository文件夹添加CategoryRepository类,该类继承自RepositoryBase<Category>,在类中写上添加,删除,修改,查找等函数。完成如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Ninesky.Models;

namespace Ninesky.Repository
{
    public class CategoryRepository:RepositoryBase<Category>
    {
        /// <summary>
        /// 添加栏目
        /// </summary>
        /// <param name="category">栏目</param>
        /// <returns></returns>
        public override bool Add(Category category)
        {
            dbContext.Categorys.Add(category);
            if (dbContext.SaveChanges() > 0) return true;
            else return false;
        }
        /// <summary>
        ///  更新栏目
        /// </summary>
        /// <param name="category">栏目</param>
        /// <returns></returns>
        public override bool Update(Category category)
        {
            dbContext.Categorys.Attach(category);
            dbContext.Entry<Category>(category).State = System.Data.EntityState.Modified;
            if (dbContext.SaveChanges() > 0) return true;
            else return false;
        }

        /// <summary>
        ///  删除栏目
        /// </summary>
        /// <param name="category">栏目</param>
        /// <returns></returns>
        public bool Delete(Category category)
        {
            dbContext.Categorys.Remove(category);
            if (dbContext.SaveChanges() > 0) return true;
            else return false;
        }
        /// <summary>
        /// 删除栏目
        /// </summary>
        /// <param name="CategoryId">栏目Id</param>
        /// <returns></returns>
        public override bool Delete(int CategoryId)
        {
            var _category = dbContext.Categorys.SingleOrDefault(c => c.CategoryId == CategoryId);
            if (_category == null) return false;
            else return Delete(_category);
        }

        /// <summary>
        ///  查找制定栏目
        /// </summary>
        /// <param name="CategoryId">栏目id</param>
        /// <returns></returns>
        public override Category Find(int CategoryId)
        {
            return dbContext.Categorys.SingleOrDefault(c => c.CategoryId == CategoryId);
        }
        /// <summary>
        /// 获取跟栏目
        /// </summary>
        /// <returns></returns>
        public IQueryable<Category> Root()
        {
            return Children(0);
        }
        /// <summary>
        /// 获取子栏目
        /// </summary>
        /// <param name="CategoryId">栏目Id</param>
        /// <returns></returns>
        public IQueryable<Category> Children(int CategoryId)
        {
            return dbContext.Categorys.Where(c => c.ParentId == CategoryId).OrderBy(c => c.Order);
        }
        /// <summary>
        /// 栏目列表
        /// </summary>
        /// <param name="model">模型名称</param>
        /// <returns></returns>
        public IQueryable<Category> List(string model)
        {
            return dbContext.Categorys.Where(c => c.Model == model).OrderBy(c => c.Order);
        }
    }
}

准备工作到此,OK!

========================

3.1添加栏目代码包:

3.2修改栏目代码包:

3.4删除栏目代码包:

3.5前台栏目浏览代码包:

发表评论

电子邮件地址不会被公开。 必填项已用*标注