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 如何在产品更多信息页面中进行分页导航_Drupal_E Commerce_Pager - Fatal编程技术网

Drupal 如何在产品更多信息页面中进行分页导航

Drupal 如何在产品更多信息页面中进行分页导航,drupal,e-commerce,pager,Drupal,E Commerce,Pager,我将Drupal 7与Commerce模块一起使用,并使产品更多信息页面与产品类别中的上一个/下一个产品和其他页面链接 产品预览/发布位于类别页面 使用寻呼机查看页面很容易,每页的项目数等于1。但我如何才能正确地从产品预览页面跳转到产品更多信息?在这种情况下,需要导航到寻呼机中的特定页码。这怎么可能?或者可能存在更合适的方法来解决它的任务 在寻呼机API中,我找到了唯一的函数Pager\u find\u page,它甚至没有指向Pager\u set\u page的线索。也许是因为它被描述在某

我将Drupal 7与Commerce模块一起使用,并使产品更多信息页面与产品类别中的上一个/下一个产品和其他页面链接

产品预览/发布位于类别页面

使用寻呼机查看页面很容易,每页的项目数等于1。但我如何才能正确地从产品预览页面跳转到产品更多信息?在这种情况下,需要导航到寻呼机中的特定页码。这怎么可能?或者可能存在更合适的方法来解决它的任务

在寻呼机API中,我找到了唯一的函数
Pager\u find\u page
,它甚至没有指向
Pager\u set\u page
的线索。也许是因为它被描述在某个地方,但我找不到任何方法。

回答自己的问题。 (不确定版本)

其他一些有用的信息

混合这些信息后,我为Drupal7编写了简单的解决方案

当用户转到产品节点时,他可以跳转到当前类别中的任何其他产品。 这就是为什么我使用支持ajax的上下文过滤器创建视图,该过滤器通过传递当前页面节点id返回来自同一产品类别的所有节点id

$n_id = intval(arg(1));
$nnm = db_query("select t.nid from {taxonomy_index} t left join {node} n on n.nid = t.nid where t.tid = (select t2.tid from {taxonomy_index} t2 where t2.nid = :vid) order by n.title", array(':vid' => $n_id));
$res= array();
if ($nnm->rowCount()) {
foreach ($nnm as $row) $res[]= $row->nid;
 $handler->argument= implode('+', $res);
return true;
} else {
return false;
}
在我的产品完整信息视图的自定义模块中,我添加了hook\u views\u query\u alter。 仅在查询中,$view->query->where参数可用且$view->query页面尚未定义。这意味着无需重写pager->current_页面和产品类别的NID的默认值

function [modulename]_views_query_alter(&$view) {
//$_GET['wtf'] -- variable to check first view load 
    if ($view->name == "view_name" && $view->current_display == 'view_display' && !isset($_GET['wtf'])) {
        //Search current node id ($view->args[0]) in all category's nodes 
        $res= array_search($view->args[0], $view->query->where[0]['conditions'][0]['value'][':node_nid']);
        if ($res) {
            //$view->set_current_page($res);
            //Set page id for pager
            $_GET['page']= $res;
        }
        $_GET['wtf']= 2;
    }
}
奇怪的是,没有提到这种提供寻呼机->当前页面值的方式。 与pager->set_current_page方法不同,它可以在任何视图挂钩上设置页面值,即使$view->pager尚未初始化。对我来说,这听起来很土生土长

谢谢你纠正我的错误,我很抱歉我的英语不好