Drupal 8 主题开发:使用 .info.yml 文件定义主题

与开发 Drupal 8 模块相同,创建 Drupal 8 主题时,也需要通过 .info.yml 文件声明主题的基本信息,以便 Drupal 8 能够识别和发现主题。

出于示例作用,我们将使用 d8theme 作为主题名称(有关名称的命名规则可参考《Drupal 8 模块开发入门教程》中“确定模块名称”部分)

在 Drupal 根目录下创建主题目录 themes/custom/d8theme,在主题目录下创建 d8theme.info.yml,并向启用填入以下内容:

name: Drupal 8 Theme
type: theme
description: 'An example theme for Drupal 8.'
core: 8.x
regions:
  header: Header
  content: Content
  sidebar_first: Sidebar First
  footer: Footer
stylesheets:
  - css/d8theme.css
script:
  - js/d8theme.js

除此之外,主题的 .info.yml 文件还可以包含很多其它的属性,各属性名称及说明如下,大家进行主题开发时根据需要进行使用:

  • name(必填):在主题管理(管理 > 外观)页面显示的主题名称
  • type(必填):固定值 theme
  • description(必填):在主题管理页面显示的主题描述信息
  • core(必填):兼容的 Drupal 版本,此处固定值 8.x
  • stylesheets(常用):主题所使用的 CSS 文件列表
  • scripts(常用):主题所使用的 JS 文件列表
  • screenshot(常用):主题缩略图。图片尺寸为 588 x 438,填写与 .info.yml 文件的相对路径
    screenshot: screenshot.png
  • regions(常用):主题中包含的区域列表(子键不包含前缀 -)
    regions:
      header: Header
      content: Content
      sidebar_first: 'First sidebar'
  • regions_hidden:需要移除的区域列表(子键包含前缀 -),用于移除从父主题或默认区域继承过来的区域
    regions_hidden:
      - sidebar_last
  • features(常用):设置项列表。添加的特性会出现在主题的设置页面
  • features:
      - comment_user_verification
      - comment_user_picture
      - favicon
      - logo
      - node_user_picture
  • libraries:主题CSS/JS资源列表,在此定义的资源会在使用此主题的所有页面中显示
    libraries:
      - d8theme/global-style
  • libraries-override:定义需要覆盖的资源列表
    libraries-override:
      contextual/drupal.contextual-links:
        css:
          component:
            /core/themes/stable/css/contextual/contextual.module.css: false
  • base theme:基主题名称。如果此主题是基于其它主题进行衍生开发,可以在此加入基主题名称,使用 Drupal 提供的基主题特性
  • package:主题分组名称,具有相同分组名称的主题会在管理页面显示在同一分组中,便于查找和管理
  • php:运行此主题所需的最低 PHP 版本,默认值常量 DRUPAL_MINIMUM_PHP 的值
  • version:主题的版本号信息,如果主题会上传到 Drupal.org 官网,则无需进行设置,因为在主题发布过程中会被自动设置。如果只是项目内部使用的主题,可以设置用于进行版本标示
  • engine:主题所使用的模板引擎名称,默认为 twig
  • hidden:true:在模块管理页面中隐藏此主题,可用于隐藏测试主题或其它需要隐藏主题的情况
  • ckeditor_stylesheets:CKEditor frame 将用到的 CSS 列表
    ckeditor_stylesheets:
      - css/base/elements.css

 

看完了?还不过瘾?点此向作者提问
打赏一下,鼓励Ta创作更多好内容!