0

对于当前项目,我需要设置一个特定视图来显示画廊详细信息页面。它应该像这样工作:

1. User clicked a node (costum-post-type: gallery)
2. User received an overview page with linked images
3. User clicked an image
4. User received the gallery page (gallerific view)

步骤 1-3 完成。但是我怎样才能让 Drupal 使用概览页面的数据来构建详细信息页面呢?

例如像这样的东西:http://example.com/gallery-1/detailhttp://example.com/gallery-2/detail

/gallery-n是带有链接图像的概述页面,并且detail是 的详细信息页面/gallery-n

希望你能明白我的意思?!

编辑

在概述页面上,我有一堆缩略图,每个都链接到详细信息库(jquery galleriffic)页面。

4

2 回答 2

1

您可以在您制作(或可能已经拥有)的自定义模块中尝试这样的事情:您在菜单中设置所需页面的路径并将其设置为调用函数的回调,然后您可以渲染任何您想要的想要,或者打电话给你想要的任何东西。

function MODULENAME_menu() {
  $items = array();
  $items['gallery/%/detail'] = array(
    'title' => 'Gallery Detail',
    'page callback' => 'MODULENAME_gallery_detail_page',
    'page arguments' => array(1),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK
  );
  return $items;
}

function MODULENAME_gallery_detail_page($gallery_id) {
  // Here you can render the view as a page, using the gallery
  // id which you passed as a parameter to this function.
  // So Change MYCUSTOMVIEW to the view you want to render
  $view = views_get_view('MYCUSTOMVIEW');
  print views_build_view('page', $view, array(), false, false);
}

只需将 MODULENAME 更改为您的模块名称即可。调用views_build_view 时您可能需要做一些工作,但这应该是一个开始,如果您愿意,可以提出更多问题,我会提供帮助。

于 2010-10-05T07:55:37.100 回答
1

如果我正确理解您的问题,您应该这样做。

 1. Create view1 for page with linked images. It should be page display with http://example.com/images/%nid
   where %nid is nid argument of gallery. 
 2. Create view2 for gallery detailed page. it should be page display with http://example.com/%nid/detail 
 3. Theme that views as you want.
 4. For view1 for image field use override output in field settings to make it links to %nid/detail

PS 在需要的地方使用关系。如果描述不清楚,请随意填写。

于 2010-10-05T18:21:41.390 回答