Nhận tên hiển thị từ hook_pre process_view_view


7

Tôi muốn sử dụng hook_pre process_view_view để một số lượt xem chia sẻ cùng một mẫu, bằng cách thêm theme_hook_suggestions như được mô tả trong bài viết này: http : // greenash.net.au/ Dùts / 2014/04 / shaming-twsheet-b between-multipl-drupal -lượt xem/

function mytheme_preprocess_views_view(&$vars) {

  if (in_array(
    $vars['view']->name, array(
      'whatever'))) {
    $vars['theme_hook_suggestions'][] =
      'whatever';
  }
}

Vấn đề là, tôi cần chỉ định hiển thị của chế độ xem cụ thể mà nó sẽ áp dụng, thay vì toàn bộ chế độ xem. Tôi đã thử in các vars $ ra kết quả là một mảng định kỳ khổng lồ dường như không bao gồm tên hiển thị ở bất cứ đâu.

Tôi cũng biết bạn làm điều này thông qua việc gắn thẻ trong giao diện người dùng. Tuy nhiên, vấn đề tương tự cũng xảy ra - Tôi không thể thêm thẻ vào một màn hình cụ thể của chế độ xem.

Nếu có một cách khác tôi có thể thực hiện được điều này thì tôi là tất cả!

Câu trả lời:


15

Bạn có thể nhận ID hiển thị thông qua thuộc current_displaytính của đối tượng Xem, ví dụ:

$view = $vars['view'];
if ($view->name == 'foo' && $view->current_display == 'bar') {
  // ...
}

Oh shhh ... làm thế nào tôi không nhìn thấy điều đó? Cảm ơn!
Chris

1
Heh heh, tôi đã sử dụng nó hơn một trăm lần và tôi vẫn đi tìm display_namehoặc display_idmỗi lần ...
Clive

Bây giờ tôi có một vấn đề là nó không chọn mẫu của tôi, nhưng đó là một câu hỏi khác ...
Chris

3
trong drupal 8, bạn sẽ sử dụng $view->id()thay vì tên thuộc tính
nhà phát triển ẩn danh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.