Skip to main content
  • Create new account
  • Reset your password
张文涛的个人博客
致力于提供Drupal开发,实践等方面的精品资讯

Main navigation

  • 首页
  • 关于
  • Glossary
  • 分享

Breadcrumb

  • Home
  • drupal 7 模版文件template.php的一点使用经验及小结
By admin | 3:18 PM CST, Mon September 03, 2012

drupal 7 模版文件templates.php的一点使用经验及小结

1:在drupal里面,page.tpl.php默认是没有根据content type来定制模版的。如果想根据content type定制模版怎么办?很简单。
找到当前主题下的template.php文件。一般的主题都有。如果没有,请创建。加入下面的代码:  

function THEMENAME_preprocess_page(&$variables, $hook) {
  if (!empty($variables['node'])) {
    $node = $variables['node'];
    $variables['theme_hook_suggestions'][] = 'page__type__' . $node->type;
  }
}

注意一下,一定要用下划线。

写完,新建一个page--type--yourtype.tpl.php文件,就可以使用这个模版来控制yourtype的输出了。 

2:我想在page.tpl.php文件里面使用$submitted变量,而且这个变量可使用自定义格式。 

function dzhy_preprocess_page(&$variables, $hook) {
  if (!empty($variables['node'])) {
    $node = $variables['node'];
    $user = user_load($node->uid);
    $variables['submitted']  = '文章作者:' . $user->field_alias['und'][0]['value'] . '    ' . date('Y-m-d h:i:s',$node->created);
  }
}
运行完上面代码,然后到page.tpl.php里面

 试试。当然上面的field_alias要变成你自己的东西。。。 

 3:引申使用,比如我想在page.tpl.php里面,echo $hello,打印出 ‘hello world!';请看下面的代码片段。 

function dzhy_preprocess_page(&$variables, $hook) {
    $variables['hello']  = 'hello world';
}

  到你的page.tpl.php里面,echo $hello试试。 

 4:分享一个刚刚领悟出来的模板模式,就是根据根据用户是否登陆,呈现不同的模版方式。代码如下: 

function dzhy_preprocess_node(&$vars,$hook){
  global $user;
  if($user->uid>0 && $vars['type'] == 'qa'){
    $vars['theme_hook_suggestions'][] = 'node';
  }elseif($user->uid==0 && $vars['type'] == 'qa'){
    $vars['theme_hook_suggestions'][] = 'node__' . $vars['type'];
  }
}

 说到现在,你应该有点明白了吧?

Glossary

  • May 2023 (7)
  • March 2023 (1)
  • October 2022 (1)
  • October 2021 (2)
  • August 2021 (4)
  • June 2021 (2)
  • May 2021 (1)
  • April 2021 (2)
  • November 2020 (1)
  • June 2020 (2)
  • December 2019 (2)
  • November 2019 (1)
  • August 2019 (1)
  • February 2018 (1)
  • October 2017 (1)
  • September 2017 (1)
  • July 2017 (1)
  • June 2017 (2)
  • May 2017 (1)
  • March 2017 (3)
  • December 2016 (2)
  • November 2016 (4)
  • October 2016 (3)
  • June 2016 (1)
  • December 2015 (1)
  • November 2015 (6)
  • October 2015 (2)
  • September 2015 (1)
  • August 2015 (1)
  • July 2015 (1)
  • June 2015 (1)
  • May 2015 (1)
  • March 2015 (1)
  • January 2015 (1)
  • December 2014 (3)
  • October 2014 (5)
  • September 2014 (3)
  • August 2014 (1)
  • July 2014 (1)
  • June 2014 (1)
  • May 2014 (1)
  • April 2014 (2)
  • March 2014 (2)
  • February 2014 (2)
  • January 2014 (4)
  • December 2013 (1)
  • March 2013 (2)
  • February 2013 (2)
  • December 2012 (2)
  • November 2012 (4)
  • October 2012 (1)
  • September 2012 (6)
  • August 2012 (15)
  • July 2012 (5)
  • June 2012 (13)
  • May 2012 (9)
  • April 2012 (8)
  • March 2012 (9)
  • February 2012 (3)
  • January 2012 (1)
  • December 2011 (1)
  • November 2011 (6)
  • October 2011 (2)
  • September 2011 (17)
  • August 2011 (4)
  • July 2011 (4)
  • June 2011 (5)
  • May 2011 (4)

Copyright © 2025

苏ICP备14044171号-1