Làm cách nào để bắt đầu lượt xem ở vị trí% nid (từ đường dẫn)?


11

Tôi có một danh mục đầu tư hiển thị các nút somes (view3 + lượt xem slideshow bằng chu kỳ). Mọi thứ đều hoạt động tốt, tôi có một đường dẫn mặc định /portfoliođể truy cập vào nó.

Tuy nhiên, tôi đang cố gắng đặt đường dẫn cho mỗi slide. Tôi muốn sử dụng /portfolio/%nidvà sử dụng %nidtrong các khung nhìn để mặc định slide được xem đầu tiên cho id nút này.

Bất cứ ai biết làm thế nào là nó có thể? Tôi đã thử với UI nhưng tôi không nghĩ thế là đủ.

Câu trả lời:


1

Trong jQuery Chu kỳ có một tùy chọn gọi là startedSlide. Theo mặc định, giá trị này được đặt thành 0, như thế này: startedSlide: 0

Nếu tôi nhớ chính xác, có một tab / textarea cho các cài đặt nâng cao nơi bạn có thể thêm các tùy chọn vào Chu kỳ jQuery từ trong Giao diện người dùng. Tôi nghĩ rằng bạn có thể thêm "startedSlide: 5" chẳng hạn ở đó.

Bạn sẽ cần tìm ra slide nào bắt đầu (chuyển đổi% nid thành hàng nào trong chế độ xem) và thêm nó dưới dạng phần tử HTML. Khi đã có, chúng ta có thể tìm nạp nó với jQuery và thêm nó dưới dạng tùy chọn Chu kỳ jQuery. Tôi không chắc đó là cách tốt nhất nhưng tôi nghĩ bạn có thể làm một cái gì đó như:

    function MYMODULE_views_pre_render(&$view) {
      if($view->name == "MYVIEW") {
        $view->attachment_after = $startingslide;
      }
    }

Tất nhiên, bạn sẽ phải thêm nhiều mã hơn để tìm ra $ startingslide. Nhìn vào bên trong $ view-> kết quả và tìm ra hàng nào là đối số, đó sẽ là $ startingslide của bạn. Sử dụng dpm () trên chế độ xem để tìm kiếm thông qua đối tượng.

Hy vọng điều này sẽ giúp bạn. Hãy cho tôi biết những gì bạn đã làm :)


0

Bạn có thể thêm bộ lọc được hiển thị vào chế độ xem của mình, định cấu hình bộ lọc để hiển thị greater thangiá trị được cung cấp và bắt chước URL của nó tương ứng.

ví dụ / danh mục đầu tư? nid_is_g [_than = 3

Sau đó bạn có thể ẩn bộ lọc của mình với css.


Tôi sẽ sử dụng một đối số (bộ lọc theo ngữ cảnh) thay vì bộ lọc được hiển thị - trừ khi đã có các đối số được sử dụng và phần đối số này sẽ gây rối với việc xử lý các đối số đó.
Alfred Armstrong

Tôi biết không có cách nào để so sánh giá trị trường với giá trị bộ lọc theo ngữ cảnh.
magtak

Điểm tốt. Có lẽ đã nửa ngủ khi tôi đăng bình luận trước đó, xin lỗi.
Alfred Armstrong

0

Vì vấn đề của bạn là về ngoại hình, không phải về cấu trúc, tôi đề nghị không giải quyết nó trên máy chủ và không phải trong đường dẫn URL mà trên máy khách có một đoạn URL: / portfolio # slide- [nid].

Tôi chưa đọc mã javascript của trình chiếu + lượt xem, nhưng tôi đoán khá dễ dàng chấp nhận hành vi của mình để đọc đoạn URL khi khởi tạo trình chiếu. Hoặc có thể đã có một logic như vậy được triển khai mà bạn có thể sử dụng ...


0

Làm thế nào về việc sử dụng tùy chọn 'Viết lại kết quả đầu ra' trong phần Trường của Chế độ xem?

  1. Trong Chế độ xem, đi đến Trường Cấu hình (Hình ảnh)> Viết lại kết quả
  2. Chọn hộp kiểm 'Xuất trường này dưới dạng liên kết'
  3. Nhập Đường dẫn liên kết (nid /) và các chi tiết khác
  4. Nhấp vào Áp dụng
  5. Lưu xem

Hi vọng điêu nay co ich.


0

Lượt xem tắt màn hình node_view()trong trường hợp đó và không tham gia vào việc đánh dấu cho hàng.

Cách dễ nhất để thực hiện những gì bạn muốn là triển khai hook_preprocess_node(), tìm kiếm Chế độ xem trong ngữ cảnh hiện tại và nếu nút được hiển thị như một phần của màn hình đó, bạn có thể thực hiện một số thay đổi.

HÃY XEM NÀY:

function MYMODULE_preprocess_node(&$vars) {
  if (!empty($vars['view']) && $vars['view']->view_name == 'foo') {
    $nid = $vars['node']->nid;
    $vars['extra_link'] = l('Some text', "node/$nid");
  }
}

Trong node.tpl.phptệp của bạn, bạn sẽ có quyền truy cập vào$extra_link.

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.