Drupal的7 - 如何从加载模块的模板文件?

我试图建立自己的模块在Drupal 7。

所以我创建了一个名为“月亮”一个简单的模块

function moon_menu() { $items = array(); $items['moon'] = array( 'title' => '', 'description' => t('Detalle de un Programa'), 'page callback' => 'moon_page', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK ); return $items; } function moon_page(){ $id = 3; $content = 'aa'; }

在moon_page()函数,我想从我的主题文件加载自定义模板“moon.tpl.php”。

这可能吗?

--------------解决方案-------------

为了你自己的东西(不重写从另一个模块模板)?

当然,你只需要:

  • 与hook_theme注册您的模板()
  • 呼叫主题('月亮',$参数)

的$ args是包含参数模板由您hook_theme()执行指定的数组。

/*
* Implementation of hook_theme().
*/
function moon_theme($existing, $type, $theme, $path){
return array(
'moon' => array(
'variables' => array('content' => NULL),
'file' => 'moon', // place you file in 'theme' folder of you module folder
'path' => drupal_get_path('module', 'moon') .'/theme'
)
);
}

function moon_page(){

// some code to generate $content variable

return theme('moon', $content); // use $content variable in moon.tpl.php template
}

为Drupal 7,它并没有为我工作。 我在hook_theme取代线

'file' => 'moon', by 'template' => 'moon'

现在它为我工作。

在Drupal 7使用我时居然也得到了以下错误:

return theme('moon', $content);

是造成“致命错误:不支持的操作类型drupal_install \包括\ theme.inc在线1071”

这是使用固定的:

theme('moon', array('content' => $content));

分类:Drupal的 时间:2015-03-15 人气:0
本文关键词: Drupal的,Drupal的主题化
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.303 (s). 10 q(s)