Drupal8 page.html.twig模板变量一览

Drupal page.html.twig

通用变量

  • base_path:Drupal安装的基URL路径,通常是“/”,除非你将Drupal安装到一个子目录。
  • is_front:如果当前页面是首页,其值为TRUE。
  • logged_in:如果用户已登录,其值为TRUE。
  • is_admin:如果用户有权访问管理页面,其值为TRUE。

网站个性变量

  • front_page:首页的URL。链接首页时,用其替换base_path。它包括语言域或前缀。
  • logo:logo图像的URL,它在主题设置中定义。
  • site_name:网站的名字。如果在主题设置中禁用它,则显示为空。
  • site_slogan:网站的口号。如果在主题设置中禁用它,则显示为空。

导航变量

为Drupal整合第三方评论系统Disqus

Disqus

Drupal自带的评论功能相当简洁,如果在此基础上定制开发更丰富的评论特性,需要花费大量的时间和精力。好在我们可以为Drupal整合第三方评论系统,让这一工作变得简单。在这些系统中最常用的当属Disqus,它拥有很多令人惊叹的特性和强大的工具,可以帮助我们为网站的用户构建一个活跃的评论社区。

Drupal8模块自动升级脚本 - Drupal Module Upgrader

升级

在今年二月份的Acquia Build Week上,团队Upgrade Roboto(成员都是大牛:webchick、Wim Leers、Gábor Hojtsy、xjm、japerry、estha)发布了Drupal Module Upgrader项目

该项目是个脚本,用于扫描Drupal7模块的源代码,标记需要更新到Drupal8的所有代码,并尝试自动转换Drupal7代码为Drupal8版本。本质上这是一个代码升级工具。由于它构建于PHP_CodeSniffer之上,因此可以和大多数IDE很好的集成。它可以帮助开发者自动完成很多枯燥乏味的机械工作,从而节省大量的时间。

亚马逊成为Acquia公司新的投资者 - Drupal的明天会更好

Acquia Amazon

来自Drupal创始人,Acquia公司首席技术官Dries Buytaert博客的消息:亚马逊成为Acquia公司新的投资者。不过具体资本数量尚未公布。

这是继5月份Acquia公司获得5000万美元融资之后,得到的又一项重要投资。此前Acquia公司通过融资已经获得了总计1亿1860万美元的资本。

Acquia公司的Drupal基础设施构建在超过8000个亚马逊AWS实例上,消耗带宽333TB,服务于4000多家客户。

美国洛杉矶20个政府网站从Oracle Stellent迁移到Drupal

洛杉矶

美国第二大城市洛杉矶市市政府于上周4与全球Drupal行业的领袖企业Acquia签订了一份重要商业合约,后者将帮助洛杉矶20个政府网站迁移到Drupal。

洛杉矶市信息技术局(Information Technology Agency)为这些使用Oracle Stellent搭建的项目重新选择了Acquia云网站工厂(Acquia Cloud Site Factory),用于改善为市民提供的数字服务。

Acquia公司公共部门副总裁Todd Akers说:“这个合约是加利福尼亚州与Acquia合作计划的一个重要组成部分。我们会帮助洛杉矶市构建一个内容平台,它不但能够显著改善各个城市服务之间的联系效率,还能够提供更高的可扩展性......”

CSS扩展语言Sass简介以及安装与使用教程

Sass

Sass是世界上最成熟、稳定和强大的专业级CSS扩展语言。它有如下特点:

  • 兼容CSS:Sass完全兼容CSS的所有版本。因此可以使用任何CSS库。
  • 丰富的特性:Sass团队的辛勤工作,使得Sass拥有比其他CSS扩展语言更多的特性和能力。
  • 成熟:Sass已经拥有超过7年的历史。
  • 行业认可:业界屡次选择Sass作为首选的CSS扩展语言。
  • 大型社区:Sass由数个技术公司和数百位开发者组成的社区共同维护开发。
  • 框架:有很多框架使用Sass构建,其中比较有名的是Compass,Bourbon和Susy。

Sass可以使创建的样式表更加高效和聪明。它的动态组件可以使代码更小,重用性更强,更具可扩展性。而且它的语法理解起来也相当容易呢。

Drupal8 Twig模板入门教程

Twig

引子

Twig模板是简单的文本文件,其中包含变量(variables)、表达式(expressions)和标记(tags),前两者在模板执行时被相应的值所替换,后者用于控制模板的逻辑。

Twig有两类分隔符:{% ... %}和{{ ... }}。前者用于执行如for循环那样的语句,后者在模板中打印表达式的结果。

变量

应用程序传递变量给模板,用于模板的操作。变量拥有可访问的属性或元素(即:PHP对象的方法或属性,或PHP数组项)。可以使用点或方括号访问它们:

{{ foo.bar }}
{{ foo['bar'] }}

如果属性包含特殊字符(如下面的减号)会无法正常工作,需使用attribute函数访问该属性:

{# 等于foo.data-foo #}
{{ attribute(foo, 'data-foo') }}

全局变量

下列变量在模板中总是可用:

在Drupal8的Twig模板中调试变量

drupal8 Twig 调试

Twig提供了一个dump函数用于在模板中调试变量。在twig_debug功能被启用之后,dump函数可以输出有关模板变量的信息。启用该功能的方法如下:

用文本编辑器打开Drupal8安装的settings.php文件

vim settings.php

添加下面这行

$settings['twig_debug'] = TRUE;

下面是一些例子。

dump模板中的某个变量,如title:

{{ dump(title) }}

dump模板中所有可用变量的键:

{{ dump(_context|keys) }}

另一种可读性更好的方法。

dump模板中的所有变量:

Drupal8主题层的主要变化

变化

模板处理层(Template process layer)没有了。

主题函数(Theme functions)转换为Twig模板。

主题建议钩子(Theme suggestions hooks)的变化。

Drupal7:

/**
 * Implements hook_preprocess_HOOK() for node templates.
 */
function MYTHEME_preprocess_node(&$variables) {
  $variables['theme_hook_sugesstions'][] = 'node__' . 'my_first_suggestion';
  $variables['theme_hook_sugesstions'][] = 'node__' . 'my_second_more_specific_suggestion';
}

Drupal8:

Headless Drupal让前端开发享受充分的自由

Headless Drupal

对于一个前端开发者或设计者,无论你怎样抱怨Drupal主题系统的巨大改变,都会对Drupal8采用Twig模板引擎点个赞。

毫无疑问这是一个很大的升级。然而,你可能更喜欢在前端完全手工书写HTML、CSS和JavaScript。也可能已经尝试过一些很酷的东东——AngularJS或Backbone,如何让它们与Drupal一起工作,以享受充分的自由呢?

幸运的是,有一些不甘寂寞的黑客们正在做一个被称为Headless Drupal的项目,这是一种使用Drupal作为后端内容仓库和REST服务的方法。

REST服务使得读取和更新其他应用程序的数据成为可能。典型的例子是Drupal不仅用于存储和管理内容,还可以和通过Angular、backbone、Ember等构建的App进行数据交换。

下面是一些重要的Headless Drupal资源:

Pages