Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal升级::需要将pagerquery重写为版本7_Drupal - Fatal编程技术网

Drupal升级::需要将pagerquery重写为版本7

Drupal升级::需要将pagerquery重写为版本7,drupal,Drupal,我需要重写pagerquery,我尝试了几种添加标记的选项,extendPagerDefault,但都不管用: 请帮忙 我的版本6代码是: $sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n '.$sort_join.' WHERE n.uid = %d AND n.type = "case" AND n.status = 1 ORDER BY '. $order; $sql_count='从{n

我需要重写pagerquery,我尝试了几种添加标记的选项,extendPagerDefault,但都不管用: 请帮忙

我的版本6代码是:

$sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n '.$sort_join.' WHERE n.uid = %d AND n.type = "case" AND n.status = 1 ORDER BY '. $order;
$sql_count='从{node}n中选择COUNTDISTINCTn.nid,其中n.uid=%d,n.type=case,n.status=1'

$args = array('uid' => $user->uid);

$sql = db_rewrite_sql($sql);

$sql_count = db_rewrite_sql($sql_count);

if ($pager) {

$result = pager_query($sql, variable_get('default_nodes_main', 10), 0, $sql_count, $args);
dsm($result);

}

else {

$result = db_query_range($sql, $args, 0, variable_get('feed_default_items', 10));
}


$num_rows = FALSE;
while ($node = db_fetch_object($result)) {
$output .= node_view(node_load($node->nid), 1);
$num_rows = TRUE;
}

在不知道联接表的名称的情况下,这是不完整的,但应该让您开始:

$query = db_select('node', 'n')
  ->fields('n', array('nid', 'sticky', 'title', 'created'))
  ->condition('n.uid', $user->uid)
  ->condition('n.type', 'case')
  ->condition('n.status', 1)
  ->extend('PagerDefault')
  ->limit(variable_get('default_nodes_main', 10))
  ->addTag('node_access')
  ->orderBy('col_name');

$query->join('table_to_join', 'table_alias', 'table_alias.nid = n.nid');

foreach ($query->execute() as $row) {
  // Do what you need to
}

在上面的Drupal6代码中,我已经更新了查询,该查询给出了结果,但node_视图和主题不起作用

嗨,克莱夫,谢谢你的回复。我没有从节点视图中获得结果。我附上了完整的代码。它应该是主题“寻呼机”和$output.=rendernode\u view$node,$view\u mode;其中$view\u mode是要显示的节点视图模式的名称
if ($vidw == 'my_cases' or $vidw == 'my') {                   // including private
    switch ($sort_by) {
        case 'rated':
            $order = 'n.sticky DESC, vc.value DESC';
            $sort_join = 'LEFT OUTER JOIN {votingapi_cache} vc ON n.nid = vc.content_id AND vc.content_type = "node" AND vc.function = "average"';
            break;
        case 'discussed':
            $order = 'n.sticky DESC, nc.comment_count DESC';
            $sort_join = 'LEFT OUTER JOIN {node_comment_statistics} nc ON n.nid = nc.nid';
            break;
        case 'viewed':
            $order = 'n.sticky DESC, nc.totalcount DESC';
            $sort_join = 'LEFT OUTER JOIN {node_counter} nc ON n.nid = nc.nid';
            break;
        case 'recent':
        default:
            $order = 'n.sticky DESC, n.created DESC';
            $sort_join = '';
            break;
    }
    // from taxonomy_select_nodes
    $sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n '.$sort_join.' WHERE n.uid = %d AND n.type = "case" AND n.status = 1 ORDER BY '. $order;
    $sql_count = 'SELECT COUNT(DISTINCT(n.nid)) FROM {node} n WHERE n.uid = %d AND n.type = "case" AND n.status = 1';
    $args = array('uid' => $user->uid);
    $sql = db_rewrite_sql($sql);
    $sql_count = db_rewrite_sql($sql_count);
    if ($pager) {
        $result = pager_query($sql, variable_get('default_nodes_main', 10), 0, $sql_count, $args);
    }
    else {
        $result = db_query_range($sql, $args, 0, variable_get('feed_default_items', 10));
    }
    // $output .= taxonomy_render_nodes($result);
    $num_rows = FALSE;
    while ($node = db_fetch_object($result)) {
        $output .= node_view(node_load($node->nid), 1);
        $num_rows = TRUE;dsm($output);
    }
    if ($num_rows) {
        $output .= theme('pager', NULL, variable_get('default_nodes_main', 10), 0);
    }
    else {
        $output .= '<p>'. t('There are currently no visible cases in this category.') .'</p>';
    }
}