drupal主题开发

drupal8主题 -- twig用法

日期:2016-07-15 阅读:3354

dmandwp系统 - wordpress系统和DM系统区块建站>>


进入网易云课堂播放
    |    更多视频教程>

twig文档: http://twig.sensiolabs.org/documentation 

twig的作者是 Fabien Potencier,同时也是 Symfony framework的作者. Twig 遵守开源协义: new BSD license.

--------------------

在这里,我们说过,可以开启twig主题文件的方法。

twig的语法:

{# ... #}  --这是用来注释的
{{ ... }}  --用来输出,像php里的echo
{% ... %}  --用来写逻辑的,比如if else ,loop等

更多:http://valuebound.com/node/222

比如:

{# Setting a variable #}   -- 这是注释
{% set name = 'Drupal' %}    --- 设置变量
{# This is a comment in Twig #}
<h1>Welcome to {{ name }}</h1>    -- 输出变量

Dumping variables
<pre>{{ dump(name, is_front) }}</pre>

Filters

<p>{{ name|upper }} Rocks.</p>

{% filter upper %}
<p>{{ name }} is the best cms around.</p>
{% endfilter %}

 

Control structures
 

{# Conditional logic #}
{% set offline = true %}
{% if offline == true %}
<p>Website is in maintenance mode.</p>
{% endif %}

{# Looping #}
{% for i in 0 ..10 %}
{{ i }}
{% endfor %}

----------

Using attributes in templates

{% set classes = ['red', 'green', 'blue'] %}
{% set my_id = 'specific-id' %}
{% set image_src = 'https://www.drupal.org/files/powered-blue-135x42.png' %}
<img{{ attributes.addClass(classes).removeClass('green').setAttribute('id', my_id).setAttribute('src', image_src) }}>
outputs <img id="specific-id" class="red blue" src="https://www.drupal.org/files/powered-blue-135x42.png">

addClass,removeClass 有点像jquery一样。

更多 : https://www.drupal.org/node/2513632

-------------------

首页和翻译:

<a href="{{ url('<front>') }}" title="{{ 'Home'|t }}" rel="home" class="site-logo"></a>

https://www.drupal.org/node/2357633 

---------------

通过  {{ dump() }} 在twig里查看变量

https://www.drupal.org/node/1906780

---------------------

 关于摘要:

twig目前不支持 truncate 。
 比如: {{"A long text should be truncated":truncate(8)}}
 可以装这个模块
 https://www.drupal.org/project/twig_extender 

但其实可以用显示模式设置字段为trimmed。然后在node里再 {{content.node}}

---------------

使用include
主题里有头部和底部,每个页面都有,都要调用header,footer
就可以这样操作:
先创建这个文件: THEME_NAME/includes/header.html.twig
 
然后在page.html.twig里调用:
{% include directory ~ '/includes/header.html.twig' %}

-----------------

 

<<点击返回

Drupal8主题开发视频教程 (进入专题>)