【发布时间】:2011-11-05 18:27:05
【问题描述】:
我需要在 drupal 中显示一个由模板创建的页面,该页面基于我表中的特定记录。
我创建了模块“item”(例如)。
我制作了 item_menu 钩子:
$items['items/%item'] = array(
'title' => 'Items',
'page callback' => 'drupal_get_form',
'page arguments' => array('show_item', 1),
'access callback' => true,
'access arguments' => array(),
);
我为项目创建了一个加载函数:
function item_load($itemid)
{
$sql = 'SELECT * FROM {items} it WHERE it.id = :itemid';
$result = db_query(
$sql,
array(':itemid' => $itemid),
array( 'target' => 'mydatabase' ));
$item = $result->fetchObject();
return $item;
}
现在我想用一个模板来显示物品的细节,所以我做了一个物品模块 item.tpl.php。和一个 item_theme 钩子来注册模板:
function item_theme($existing, $type, $theme, $path)
{
return array(
'show_item' => array(
'template' => 'item',
'variables' => array(),
),
);
}
我需要做的最后一件事是将项目对象传递给 item.tpl.php,以便我可以显示项目属性。
但我不知道该怎么做。如何使该项目在模板中为人所知??
我希望问题足够清楚。提前致谢。
[编辑]
我发现 arg(1) 包含来自菜单页面参数的通配符的值,我应该使用 arg(1) 在数据库中查找该项目吗?
【问题讨论】:
标签: drupal