第5章内容类型 每个站点系统都有一个或多个统一的内容格式,例如,文章、视频、相册内容等。在底层系统设计中,就是我们说的实体(Entity),实体对应于关系型数据库中的一张表。Drupal的内容类型就是数据库的表,创建一个内容类型就是构建一个输入数据的表单,每个表单的数据提交,就保存到数据库表中,每条数据就是一个节点(Node)。 5.1内容类型的创建 本节通过一个新闻的内容类型创建,来学习Drupal的内容类型管理方式。这里的新闻内容类型,要求有新闻标题,新闻内容和1~3张新闻图片。 5.1.1创建内容类型 打开系统菜单“管理”|“结构”|“内容类型”,打开内容类型管理页面,单击“+添加内容类型”按钮,给这个内容类型取名为“新闻”,并填写描述,让用户知道这个内容类型是做什么的。如图51所示。 图51创建一个新的内容类型 5.1.2内容类型的设置 接着,继续下面五个方面的设置。 1. 提交表单设置 给标题字段重新取一个标签名,提交前预览,选择“可选”单选按钮,表示在一个新闻发布时,会多出一个“预览”按钮,可以先预览一下效果,再正式发布,如图52所示。 图52提交表单设置 2. 发布选项 默认选项有Published,表示内容已经发布,“推荐到首页”表示返回到系统默认首页,马上可以看到发布的内容,“置顶”表示永远把内容放到最前面,“创建新的修订版本”表示内容每一次的修改都会保存旧的版本,如图53所示。 图53发布选项 3. 语言设置 语言设置表示发布内容所使用的语言,一般会选择站点默认语言,如图54所示。因为Drupal支持多语种,多语种的站点设置会在后面介绍。 图54语言设置 4. 显示设置 这里仅指内容的作者和发布时间是否在内容中显示,有些单独由管理员创建的内容,可以不需要显示作者和发布时间,如图55所示。 图55显示设置 5. 菜单设置 菜单设置表示在创建内容的时候,可以直接将内容添加到某一个菜单栏里面,目前列出的是系统现有的菜单,如果想把所有的新闻内容放到一个“新闻”菜单下面,就需要事先在系统菜单的菜单管理中添加一个“新闻”菜单。目前默认的是创建的新闻内容可以添加到主导航菜单中,如图56所示。 图56菜单设置 5.2字段管理 新闻内容类型创建后,系统默认自动添加了一个body字段作为内容的正文,可以通过编辑将标签“body”修改为“正文”,如图57所示。 图57修改body字段 每一个字段,系统会从用户定义的字段标签中自动生成一个机读名称作为 PHP代码的变量,所以这个机读名称不能重复,如果有重复,需要手动修改名称。每一个字段定义,系统都会有一个“帮助文本”“默认值”和“必填字段”的设置。 (1) “帮助文本”是当用户输入内容时,作为内容输入的提示。 (2) “默认值”是用户在输入的时候,如果没有输入内容,系统会使用默认值。 (3) “必填字段”是表单输入时,要求用户必须输入内容,否则不允许提交表单。 此外,这里的正文(body)字段的内容,系统还会默认附加一个摘要内容输入,用来在摘要显示时,替换系统自动裁剪的正文摘要。除非是一本书或论文有专门的摘要,对于一般文章,系统会自动把第一段文字裁剪出来作为摘要。所以,我们的新闻内容不需要专门的摘要,可以取消勾选“摘要输入”复选框。内容输入的窗口,还可以通过拖曳窗口右下角“三角”图标,调整窗口的高度。关于文本输入窗口的“文本格式”选项,已经在富文本编辑器部分做了介绍,如图58所示。 图58字段的设置 接着,为了让新闻图文并茂,添加一个新的图片字段,作为发布新闻的图片。回到“字段管理”,单击“+添加字段”,这里有两种方式添加字段,一个是“重用已有字段”,从系统现有的字段中选择一个字段; 或者选择“添加一个新字段”,添加一个新字段。可以从“选择一个字段类型”列表中找一个字段类型,字段类型除了HTML表单的所有类型外,还有外部定义的变量引用类型,这里选择图片(Image)引用类型,如图59所示。 接着,和正文字段一样,给图片字段取一个标签名,及做一些与图片有关的设置,例如,允许上传的图片文件扩展名,图片保存的文件目录格式,上传图片的分辨率和文件的大小,等等。 图59添加字段类型选择 5.3管理表单显示 内容类型创建好以后,可以通过这个内容类型添加新内容。新内容添加是通过HTML的表单输入完成的,可以对这个表单的显示格式进行一些调整。内容类型管理里面有一个“管理表单显示”选项,这里可以看到一个内容类型的表单所包含的字段,有些字段是系统默认自动创建的,如“作者”“发布于”等。通过“齿轮”图标,可以对每个字段做进一步设置,例如,修改正文字段输入窗口的行数,如图510所示。 或者,可以通过拖动字段前面的“十字”图标,移动到“已禁用”栏,把不需要的表单字段隐藏起来。这样可以减少在输入表单界面出现复杂输入选项,例如,把语言(Language)字段拖放到“已禁用”栏,当用户在输入新闻内容的表单界面上,就不会出现语言的输入选择,让输入界面简洁些,如图511所示。 图510管理表单显示设置 图511禁用语言(Language)字段显示 5.4管理内容显示 进入到“管理显示”选项,如图512所示,可以对显示的内容页面做一些调整。例如,要求先显示新闻的正文,再显示图片,通过拖动十字图标,简单地排列字段的显示次序; 还可以设置让字段的标签是否出现在内容中,或者出现在内容的前面及上方; 还可以修改字段的显示格式,如“新闻图片”的格式选择为Image,显示的图片为原始图像。 图512管理内容显示字段的设置 注意,显示的方式有: 摘要、全文、打印、RSS及自定义显示方式,可以针对某种显示方式进行设置,如图513所示。这里选择了Full content和“摘要”两种显示方式进行显示设置。 图513自定义显示方式 第6章内容分类 内容分类(Taxonomy)就是给每一个内容贴上标签(Tag),分类也可以成为内容的关键词、标签或菜单。 6.1创建一个Drupal文章分类 首先,创建一个分类表。打开系统菜单“管理”|“结构”|“分类”,单击“添加词汇表”按钮,如图61所示。 图61创建分类 1. 创建“Drupal文章分类” 填写分类表名称和描述,如图62所示。 图62创建一个Drupal文章分类 2. 添加术语 通过单击“添加术语”按钮,如图63所示,添加Drupal的文章分类关键词,这里仅添加关键词的名称,可以连续输入关键词术语。 如图64所示是添加的文章分类关键词列表。 图63添加术语 图64Drupal文章分类术语列表 6.2引用分类表 创建好的分类表是一个独立的数据库表,需要把它引用到具体的内容类型中,这就是前面创建好的文章内容类型。 打开系统菜单“管理”|“结构”|“内容类型”,选择“文章”内容类型,单击“管理字段”,打开编辑“字段管理”,删除系统默认的“标签”分类术语,添加创建好的文章分类术语。单击“添加字段”,如图65所示。在“添加一个新字段”下拉菜单中,选择“引用”|“分类术语”,并给分类一个标签名称“文章分类”。 图65给文章内容类型添加分类术语 接着,进入“字段设置”,设置分类术语的使用次数。选择“2”,表示一篇文章可以使用两个关键词分类术语,如图66所示。 然后,进一步设置“引用类型”中,勾选“Drupal文章分类”复选框,如图67所示。 图66分类术语的引用次数 图67选择分类字段具体的分类表 6.3修改分类表表单显示 给文章内容类型引入分类表以后,每一次创建文章内容,都会在内容表单输入中多出一个文章分类的输入选项,但是这个选项要求用户自己输入文章的分类词,显然不是很好。我们希望用户从分类词列表中选择,所以需要修改“文章分类”字段的“管理表单显示”的设置。如图68所示,“文章分类”字段的WIDGET默认的是“自动完成”,这里有多种选择,例如,选择列表或复选框等方式,这里选择的是“选择列表”。 图68分类字段表单显示修改 6.4在文章中使用分类 现在,当创建一篇新文章时,可以在内容输入中,通过“文章分类”下拉列表,及按住Ctrl键,给文章选择添加两个分类标签,如图69所示。 图69给一篇新文章添加分类标签