2017-09-20

猎数博客

数据挖掘,机器学习

drupal6中的theme函数及主题结构

作者:江航 / 2011-06-22 / (阅读 1,840 次) /



在前文中提到了 theme这个函数最后用来显示整个页面。在drupal文档中进一步提到了这个函数在整个drupal6中被调用了两百多次。于是进去看了看这个函数都是怎么被调用的,随便看了几个,这个函数的调用方式有下面一些:

 $block[‘content’] = theme(‘comment_block’);

 $form[$theme][‘screenshot’][#value’] = theme(‘image’, $screenshot, ”, ”, array(‘class’ => ‘screenshot’), FALSE);

 $stored_feed_links[$url] = theme(‘feed_icon’, $url, $title);

 $output .= theme(‘menu_item’, $link, $data[‘link’][‘has_children’],, $data[‘link’][‘in_active_trail’], $extra_class);

 return theme(‘node_add_list’, $content);

由此猜测,drupal中所有显示相关的都通过这个函数来调用,第一个参数表示要调用的函数,后面是该函数要用到的参数。因此theme实际上是一个函数集,定义了各种构件是如何进行显示的。如果要实现一个theme,必须要实现各种各样的显示函数,同时个函数的参数要预先定义好,总体来说,要做的事情还是很多的。不过我想,drupal本身应该有一些缺省的定义在里面。目前还不知道这些缺省的定义在哪里。

目前可以确定的是,theme中的函数只与显示相关,估计里面不会直接牵涉到什么content type,node的访问什么的,因为在需要显示的时候,这些数据会通过参数传进来,而theme本身是不需要知道数据到底从哪里拿到,只管显示传进来的数据即可。因此theme似乎是个比较简单的结构。要了解content type, node的管理,在theme相关的代码中肯定没有,要在别的地方去找。

看了下drupal内核自带的一些主题,(在themes目录下)。每个主题至少有一个page.tpl.php,其内容和一般的模板差不多,用html将很多固定元素写进去,变量利用php打印出来。还有有些有node.tpl.php,有的有comment.tpl.php用来显示节点和评论,这些文件的基本结构就是html加上php打印,因此,在调用这些函数或者模板的时候,传入的参数是很重要的,比如说要打印page.tpl.php,其中有很多参数要打印,究竟参数是怎么传进来的,有哪些参数要传呢?对于wordpress的每个模板来说,传入的参数基本上是固定的,就是一个主循环。这里还不确定drupal参数如何传递,有那些需要传递,基于drupal的一般性考虑,估计这里要传入的参数是可以开发者自定义的,并不像wordpress那样是固定的一些内容。



本文地址: http://www.bagualu.net/wordpress/archives/1045 转载请注明






相关文章

  • drupal hook_menu和添加一个新页面( 2,883 )
  • 用debug_backtrace来打印drupal中theme函数的调用堆栈( 2,233 )
  • drupal源码阅读方法( 2,146 )
  • drupal 6.20 安装时register_globals问题( 2,037 )
  • drupal6中theme处理流程小结( 1,888 )
  • 怎样清除drupal cache( 1,883 )
  • drupal6中的theme函数及主题结构( 1,840 )
  • 继续看theme之page( 1,818 )
  • drupal 6源码阅读(2)( 1,797 )
  • drupal 6源码阅读(1)( 1,791 )
  • Leave a Reply

    您必须登录以发表评论,

    沪ICP备11036560号
    联系我: jianghang at bagualu.net