Drupal8 基本介绍

Drupal是一个高度模块化的CMS,在drupal.org上提供了数以万计的模块。使用Drupal开发网站就像搭积木一样,在社区都可以找到适合你的模块。

Drupal8 主要特点

  • 1)、node(节点)

node是Drupal系统的核心,当你想做一个博客系统的时候,可以方便的定义标题、内容、作者等信息。如果node不能满足你的要求,你也可以写扩展。

评论(comment)也是一个Drupal的一个特色,可以在内容类型设置开启或关闭评论。

  • 2)、用户权限系统

Drupal的用户权限系统设计非常精妙,可以精确到URL级别的权限。

  • 3)、区块与菜单

区块与菜单用来组织内容的显示,如热点内容区块可以将点击次数最多的内容显示在页面上,区块功能非常强大,可以配置区块的显示位置,或为某一类用户显示等等。菜单用于网站的导航。

  • 4)、模块

模块是为Drupal系统提供功能的程序集,Drupal内核自带一些基本的模块以实现站点的基本功能,Drupal的社区中有数以万计的模块可供选用,如e-commerce模块可以实现在线商店功能。

  • 5)、主题

主题层控制网站的最终外观,它包含模板引擎、资源库(CSS、JS、图像等)。

Drupal8 目录结构

project
├── autoload.php
├── composer.json
├── composer.lock
├── core                                            // Drupal8 核心代码
│   ├── assets                                      // Drupal8 - 所使用的各种扩展库
│   ├── authorize.php
│   ├── CHANGELOG.txt
│   ├── composer.json
│   ├── config
│   ├── COPYRIGHT.txt
│   ├── core.api.php
│   ├── core.libraries.yml
│   ├── core.link_relation_types.yml
│   ├── core.services.yml
│   ├── drupalci.yml
│   ├── globals.api.php
│   ├── includes                                   // Drupal8 - 模块化的底层功能函数,如模块化系统本身
│   ├── INSTALL.mysql.txt
│   ├── INSTALL.pgsql.txt
│   ├── install.php
│   ├── INSTALL.sqlite.txt
│   ├── INSTALL.txt
│   ├── lib                                        // Drupal8 - 各种核心类(classes)
│   ├── LICENSE.txt
│   ├── MAINTAINERS.txt
│   ├── misc
│   ├── modules                                    // Drupal8 - 系统核心模块
│   ├── package.json
│   ├── phpcs.xml.dist
│   ├── phpunit.xml.dist
│   ├── profiles                                   // Drupal8 - 内置安装配置文件
│   ├── rebuild.php
│   ├── scripts                                    // Drupal8 - 开发人员可用的各种命令行脚本
│   ├── tests                                      // Drupal8 - 测试用相关文件
│   ├── themes                                     // Drupal8 - 系统核心主题
│   ├── UPDATE.txt
│   └── yarn.lock
├── example.gitignore
├── index.php
├── INSTALL.txt
├── LICENSE.txt
├── modules                                        // Drupal8 - 贡献模块与自定义模块存放位置
│   └── README.txt
├── profiles
│   └── README.txt
├── README.txt
├── robots.txt
├── sites                                          // Drupal8 - 在多站点情况下,放置 [default|all|domain]/[modules|themes|files]
│   ├── default
│   ├── development.services.yml
│   ├── example.settings.local.php
│   ├── example.sites.php
│   └── README.txt
├── themes                                         // Drupal8 - 贡献主题或自定义主题
│   └── README.txt
├── update.php
└── web.config
└── vendor                                         // Drupal8 - 核心所需要的第三方库,如 Symfony2, Twig 等

基本术语介绍

  • 节点(node)

根据不同的节点类型附加不同的字段,这就是内容类型。例如’base page’类型包含标题、主体字段。还有许多内容类型如文章、书页、讨论主题、博客页等。

  • 实体类型(entity)

实体类型是包含一组字段的抽象概念。实体用于存储和显示数据,节点内容、评论、分类、用户等都是实体,模块可以自定义实体类型。

  • 评论(comment)

评论是一种内容类型,它由Drupal核心Comment模块开启。每一条评论是用户写的一段内容,这段内容被附加到评论的节点。例如论坛中的评论被附加到特定的话题。

  • 分类(taxonomy)

Drupal系统使用taxonomy来对内容进行分类。它是由Drupal的核心模块Taxonomy提供。你可以定义词汇并在词汇下添加术语。每一个词汇能附加到一个或多个内容类型,节点内容使用分类、标签等进行分组。

  • 用户(user)

这里的用户是指访问你站点的真正访问者,它是一个实体类型。一般地用户具有用户名、密码、角色、e-mail地址等属性。贡献模块也可以自定义其它的用户属性。例如你可以为用户的Twitter地址增加一个”Link”。

  • 模块(module)

Drupal模块是扩展Drupal系统功能的软件集合。模块可以分为以下三类:

核心模块:核心模块是包含在Drupal的发布版本中,不需要下载其它的组件就可以开启或关闭它们,如Blog、Book、Taxonomy等。

贡献模块:贡献模块是由Drupal的模块开发者开发的模块,它们被提交到Drupal官网统一管理,并可以通过Drupal站点模块管理界面进行在线安装,如Pathauto、Metatag、Rule等等。

自定义模块:自定义模块是指你自已开发的模块。这需要你深入理解Drupal、熟悉PHP编程、掌握Drupal API等等。

  • 区域与区块(block)

Drupal站点的页面由区域构成。核心主题Bartik包含header,footer,sidebars,featured top,featured bottom,main content等等区域。你可以通过主题定义区域。区块用来在网站页面的区域中显示内容,它可以是HTML代码,也可以是文章列表,或者你定义的其它信息。

  • 菜单(menu)

Drupal使用菜单来导航网站,方便用户访问内容。如页面头部显示网站主导航菜单,站点创建者可以对主导航菜单进行配置。又比如用户菜单用来查看用户资料或退出网站。你可以自己创建菜单并显示它们,也可以创建文章时为它们指定一个菜单等。

  • 主题(theme)

Drupal的主题层与数据层、模块层是相分离的,主题层决定站点的外观,控制图像样式,菜单显示,网站页面布局,网站配色等。主题包含模板文件与资源文件,模板文件将HTML标签、CSS类、内容等组织在一起,CSS文件控制页面内容如何显示。

  • 视图(view)

视图是一个创建动态页面的强大工具,Drupal 8 已经将视图模块集成到内核中。用户可以使用视图工具创建页面、区块、RSS等。比如我们想将最新内容显示在网站主页的某一位置上,就可以利用视图创建这一区块,然后在相应区域中开启就行了。

  • 数据库(database)

Drupal将数据存入数据库中。在数据库中,每一种信息都有相应的数据表,例如节点信息有节点表,每一种字段存储数据在它们自己的表中,这些表由Drupal自动创建。评论、用户、角色、权限等也有相应的数据表。一般来说Drupal使用MySQL数据库,但它也支持其它数据库如PostgreSQL、SQLite等。

  • URL路径

Drupal站点的URL路径是指站点的基本URL后的部份,如 http://example.com/node/1,Drupal路径是node/1。当你访问Drupal站点时,Drupal根据路径寻找需要返回给访客的信息,Drupal会检测路由信息或菜单项以找到定义这个路径的模块,然后交由模块响应。正如上例,定义路径的是node模块,Drupal会让节点模块决定如何处理这一路径。

  • Bootstrap

Bootstrap是Drupal系统的CPU(中央处理器),主要用来处理请求。

  • 权限(permission)

Drupal拥有强大的权限系统,通过配置用户权限规定用户能做什么、不能做什么。权限系统按照用户角色(用户组)进行分配,具有相同权限的用户就是一个用户组。模块可以定义权限,以规定哪些用户可以使用这一项功能。


本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

Drupal8 主题介绍和开发 上一篇
Docker 安装部署 Drupal 下一篇