Lugir 2017-02-22 10:42
与开发 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