2010-02-10 83 views
0

我想用特定节点列表产生一个页面,但是node_view返回一个空字符串。Drupal 6 node_view empty

这是我的查询:

function events_upcoming() { 
    $output = ''; 
    $has_events = false; 

    $res = pager_query(db_rewrite_sql("SELECT n.nid, n.created FROM {node} n WHERE n.type = 'events' AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC"), variable_get('default_nodes_main', 10)); 

    while ($n = db_fetch_object($res)) { 
    $output .= node_view(node_load($n->nid), 1); 

    $has_events = true; 
    } 

    if ($has_events) { 
    $output .= theme('pager', NULL, variable_get('default_nodes_main', 10)); 
    } 

    return $output; 
} 

hook_menu(部分):

'events/upcoming' => array(
     'title' => t('Upcoming Events'), 
     'page callback' => 'events_upcoming', 
     'access arguments' => array('access content'), 
     'type' => MENU_SUGGESTED_ITEM 
    ), 

hook_view执行:

function events_view($node, $teaser = false, $page = false) { 
    $node = node_prepare($node, $teaser); 

    if ($page) { 
    // TODO: Handle breadcrump 
    } 

    return $node; 
} 

现在,如果我添加的var_dump($节点)里面events_view节点是存在的,我可以看到我想要的值,如果我添加一个var_dump while循环在events_upcomi ng我也从查询中获得节点ID。

奇怪的是,当我加载本地主机/事件/即将到来时,我看到的是寻呼机,没有别的。

我已经使用blog.module作为参考,但是我在这里错过了什么?

回答

0

这里的线程,其中有一个补丁,还有我的另一个答案。

http://drupal.org/node/229411

你可以在你想要做的node_view每个点使用node_load,但似乎浪费你的处理器。

检出补丁,尽管它位于核心节点模块上。