经常会使用 theme api,比如 theme('image',xxxx),theme('item_list', $items);等等。有事需要自己定义这样的theme. 简单步骤:
1 在使用hook_theme 注册登记一下。叫什么名字。
- <?php
- /**
- *注册theme
- */
- function modulename_theme() {
- return array(
- 'hot_news' => array(
- 'arguments' => array('title' => NULL),//传递给模板里的参数,数字型,对象,数组等等
- 'template' => 'hot-news',//模板名称,不需要加.tpl.php,程序会自动检索。如果不指定模板路径,默认搜索模块同位置
- ),
- 'good_news' => array(
- 'arguments' => array('cotent' => NULL),
- ),
- );
- }
- ?>
2、定义theme的输出格式
- <?php
- function theme_good_news($content){
- return '<div>'.$content .'</div>';
- }
- ?>
3 也可以使用preprocess来先定义好变量。
- <?php
- function template_preprocess_hot_news($variables){
- $variables['output'] = $content;
- }
- ?>
4.这样你就可以使用theme('hot_news',$var);来处理你想要的数据了。
- <?php
- $output = "xxxxx";
- print theme('hot_news',$output);
- ?>