欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Drupal模板建议template suggestion 顺序

shiping1 的头像

Drupal模板建议template suggestion(上) - 基本概念

上图来自著名的好莱坞电影get smart,我觉得用强大和灵活这类词汇并不能完全体现Drupal的魅力,用smart这个词也许更合适。我打算花两天时间为大家介绍一下能够充分体现samrt特点的一个重要的Drupal特性——模板建议。

Drupal的模板建议(template suggestion)在Drupal主题开发工作中经常遇到,本文旨在帮助大家厘清这一重要的概念。

模板建议是基于Drupal中已经存在的.tpl.php模板文件的替换模板。这个定义主要有两个要点:(1)模板建议是.tpl.php模板;(2)模板建议用于替换已经存在的.tpl.php模板。

通过这个定义可以引申出一个问题:既然Drupal中已经有存在的模板了,那么我们为什么还要替换它们?这是因为我们经常需要在不同的条件下使用模板的不同变体。让我来举一个block.tpl.php模板的例子来说明。

block.tpl.php是一个Drupal内核中定义的基模板,用于区块的显示,同时还定义了一些模板建议。通过实现这些模板建议,我们可以针 对不同的区块条件使用特定的模板。如block--block--1.tpl.php模板用于Drupal网站中的第一个区块,block-- sidebar_first.tp.php模板则用于Drupal网站中左边栏中的区块。

Drupal的内核,主题,主题引擎和模块都可以提供模板建议,这可以使Drupal的开发工作更加smart。

来自 http://mydrupal.org/drupal%E6%A8%A1%E6%9D%BF%E5%BB%BA%E8%AE%AEtemplate-suggestion%EF%BC%88%E4%B8%8A%...

Drupal模板建议template suggestion(下) - 使用预处理函数添加模板建议

作者:老梁 日期:2012年11月28日

 

今天继续smart!

o(∩∩)o

昨天为大家简单说了说Drupal模板建议的基本概念,今天讲一下怎样添加自定义模板建议。为什么要添加自定义的模板建议呢?Drupal内核和很 多contrib projects不是已经提供了非常多的模板建议了吗?这是因为我们有时需要根据自己的特定条件应用某个模板,而这些条件是Drupal内核和 contrib projects的作者所没有顾及到的。这不正是smart的充分体现吗?

马上要去开会,就不细写了。下面这个函数没有实际使用意义,只是为了更简单清晰的说明添加模板建议的方法。

1
2
3
4
5
function mytheme_preprocess_node(&$variables) {
  if ($variables['type'] == 'page') {
    $variables['theme_hook_suggestions'][] = 'node__custom';
  }
}

没错!我们的自定义模板建议通过Drupal的主题预处理函数添加。对这方面不太熟悉的朋友可以查看我以前写的有关Drupal预处理函数的几篇文章,文章链接在本文下方的相关文章列表里。

这个函数的作用:添加了名为node--custom.tpl.php的模板建议。if中的条件$variables['type'] == 'page'可以根据你的需求进行扩展......

好了,没时间了。明天再见......

 

来自 http://mydrupal.org/drupal%E6%A8%A1%E6%9D%BF%E5%BB%BA%E8%AE%AEtemplate-suggestion%EF%BC%88%E4%B8%8B%...

 

普通分类: