Drupal中hook_theme函数用法
在开发的时候不免要使用到drupal theme 定义。
举个简单的例子:
代码如下:
function modulename_theme() { //开始定义自己的theme 使用api hook_theme
return array( //返回theme 数组
'hot_news' => array( // 给定义的theme 定义一个名称
'arguments' => array('title' => NULL, 'teaser' => NULL,
'link' => NULL), //这些都是要传递的参数,具体是在使用
theme('hot_news',arg1,arg2,arg3),这时使用到。
'template' => 'hot_news', //模板名称,它会自动搜索hot_news.tpl.php模板文件
'file' => 'get_page.inc', //这个是定义相关函数的文件,根据需要自行定义。
'path' =>drupal_get_path('module', 'modulename'),
//得到文件路径,如果theme('hot_news',arg)在template.php里面使用,需要告诉drupal具体位置,不定义,如果在
template使用,它只能在template.php同目录下查找。默认和主题同目录。
),
);
?>
每个参数都会写入变量里。 variables.,比如:$variables['title'], $variables['teaser'] and $variables['link'].
接下去就可以使用:
代码如下:
$output = theme('hot_news', '这是标题','haha,teaser','yes, 这是link');//使用这个时候,他会输出定义的hot_news.tlp.php模板内容样式。、。
?>
还有一个功能就是预处理机制。
代码如下:
function template_preprocess_hot_news(&$variables) {
// $variables['title'] 的值可以使用 $title 在你的hot_news.tpl.php里面输出
$variables['title'] = '在处理一次,让它显示别的title';
$variables['teaser'] = 'strng......';
$variables['link'] = l(eeeee, 'node/'.1);
}
?>
理解hook_theme,就可以自己随心所欲来定制自己的theme。感觉到drupal的强大和灵活了。
总结:
当告知drupal使用theme('hook',arg)时,
它需要找到hook_theme的定义,如果没有preprocess,那直接把参数送给你tpl.php文件里。如果有,它就把
theme('hook',arg)的来参数,传递给preprocess里面,可以直接用$variables['arg']得到值,看看没有重新赋
值,如果有,那就使用新的$variables['arg'],最后输出到tpl.php里面。
原文链接:http://www.jb51.net/cms/242822.html
Drupal中hook_theme函数用法的更多相关文章
- Oracle 中 decode 函数用法
Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译 ...
- php中opendir函数用法实例
这篇文章主要介绍了php中opendir函数用法,以实例形式详细讲述了opendir函数打开目录的用法及相关的注意事项,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例分析了php中opendi ...
- php中setcookie函数用法详解(转)
php中setcookie函数用法详解: php手册中对setcookie函数讲解的不是很清楚,下面是我做的一些整理,欢迎提出意见. 语法: bool set ...
- 【313】python 中 print 函数用法总结
参考:python 中 print 函数用法总结 参考:Python print() 函数(菜鸟教程) 参考:Python 3 print 函数用法总结 目录: 字符串和数值类型 变量 格式化输出 p ...
- PHP中is_*() 函数用法
PHP中is_*() 函数用法 is_a - 如果对象属于该类或该类是此对象的父类则返回 TRUE is_array - 检测变量是否是数组 is_bool - 检测变量是否是布尔型 is_calla ...
- PHP中 spl_autoload_register() 函数用法
这篇文章主要介绍了PHP中spl_autoload_register()函数用法,结合实例形式分析了__autoload函数及spl_autoload_register函数的相关使用技巧,需要的朋友可 ...
- PHP中spl_autoload_register()函数用法实例详解
本文实例分析了PHP中spl_autoload_register()函数用法.分享给大家供大家参考,具体如下: 在了解这个函数之前先来看另一个函数:__autoload. 一.__autoload 这 ...
- mysql中FIND_IN_SET函数用法
本篇文章主要介绍mysql中FIND_IN_SET函数用法,用来精确查询字段中以逗号分隔的数据 以及其与 like 和 in 的区别 1.问题发现 之前在做工作任务时有这么一个需求:需要用接口所传的服 ...
- SQL中CONVERT()函数用法详解
SQL中CONVERT函数格式: CONVERT(data_type,expression[,style]) 参数说明: expression 是任何有效的 Microsoft® SQL Server ...
随机推荐
- docker 自定义镜像
step1:自定义镜像 原镜像 registry.aspider.avlyun.org/library/php-apache docker run -d --name xz_apache regist ...
- linux 查看当前目录下包含某个字符串的文件
$ grep -rn '字符串' 很好用~
- QDU_组队训练(ABEFGHKL)
A - Accurately Say "CocaCola"! In a party held by CocaCola company, several students stand ...
- matlab实用教程
苏金明.2005.电子工业 1 语句末尾加 : 可以不显示到屏. who 查看变量 whos 列出变量信息 exist t 判断变量是否在空间中. help 函数 doc 函数 : doc f ...
- Mysql 忘记密码----修改Navicat的连接密码--以及--(加入安装Navicat时没设置密码)有时新建连接设置密码,连接不成功---的问题解决方法
密码忘记的解决 可以参考http://jingyan.baidu.com/article/454316ab4e9e65f7a7c03ad1.html 1.安装路径(复制安装路径) 2.打开cmd命令提 ...
- [转]【NODE】用WS模块创建加密的WS服务(WSS)
[From] https://luojia.me/2015/07/21/%E3%80%90node%E3%80%91%E7%94%A8ws%E6%A8%A1%E5%9D%97%E5%88%9B%E5% ...
- Hash算法总结
1. Hash是什么,它的作用 先举个例子.我们每个活在世上的人,为了能够参与各种社会活动,都需要一个用于识别自己的标志.也许你觉得名字或是身份证就足以代表你这个人,但是这种代表性非常脆弱,因为重名的 ...
- resty-limit-multiple-strategy.lua
--[[ 执行过载限流策略 --]] -- 当执行限流时,Nginx 返回的状态码 err_code = local limit_config = { user_limit = {rate = , b ...
- GreenPlum 大数据平台--运维(二)
.如何获取查询运行时和已用时间. 例子: Select tstart, tfinish, (tfinish-tstart) as total_time, trim(query_text) from q ...
- Beam概念学习系列之Pipeline Runners
不多说,直接上干货! https://beam.apache.org/get-started/beam-overview/ 在 Beam 管道上运行引擎会根据你选择的分布式处理引擎,其中兼容的 API ...