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