Drupal模块文档

drupal devel 模块 和 drupal7主题覆写机制

日期:2014-02-26 阅读:5462

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

devel

http://drupal.org/project/devel_themer 
https://drupal.org/project/devel
http://drupal.org/project/simplehtmldom
https://drupal.org/project/devel_demo  

devel 学习文档http://ratatosk.net/drupal/tutorials/debugging-drupal.html

最强大的Views辅助模块--Views PHP, 这里也用到了devel . http://mentry.cn/module/views-php

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

drupal 7全局变量和判断--drupal主题API  http://www.tvdrupal.com/drupal7_api.html

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

两种情况:

一是不需要注册的:见drupal7主题覆写机制  https://drupal.org/node/1089656 还有views的覆写。

另一种情况:需要写代码注册覆写的情况:
一般三种注册:一是内容类型页面,二是分类页面,三是节点的分类。 (节点的内容类型不用注册,系统自带)

第一:覆写内容类型(node type)页面page.tpl

<?php
function bartik_process_page(&$variables) {     
 //pre($variables['node']);行的通
 if (isset($variables['node']->type)) {
        $variables['theme_hook_suggestions'][]='page__'.$variables['node']->type;
    }

// $variables['theme_hook_suggestions'][] = 'page__product';
  // $variables['theme_hook_suggestions'][] = 'page__news';
    pre($variables['theme_hook_suggestions']);
}

?>

注意,如果在template.php里没有bartik_process_page这个函数,新建后,要记得清缓存才生效。

=============================================

第二 suggestion taxonomy覆写分类页面:

function yourtheme_preprocess_page(&$variables, $hook) {
    if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) {
        $term = taxonomy_term_load(arg(2));
        $vocab = $term->vocabulary_machine_name;
        $variables['theme_hook_suggestions'][] = 'page__' . $vocab ; //这样,就可以 把 taxonomy suggestion 成内容类型了。
    }
}

第三:如果有必要,可以再 覆写节点 $variables['theme_hook_suggestions'][] = 'node__' . $vocab ;
参考:https://api.drupal.org/api/drupal/modules%21node%21node.module/function/template_preprocess_node/7

=========================================

前面讲了三个注册覆写,一般可以达到drupal主题覆写的要求了。

=========================

或者通过简单的php语句,也可以实现查看对象的功能:

function pre($v) {
    echo '<pre>'.print_r($v,1).'</pre>';
}  
就是print_r,我把它封装成了一个function,这样方便调用。 

----

 //dpm($variables);  //装了devel,可以这样试下。
 //dpm(get_defined_vars());
//dpm(debug_backtrace());

var_dump($view);

debug drupal  http://ratatosk.net/drupal/tutorials/debugging-drupal.html

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

 

<<点击返回

Drupal7视频教程 Drupal7主题 Drupal7最新文档 Drupal7推荐文档
  • 暂无内容!
  • 暂无内容!