Làm thế nào để thực hiện tham chiếu nút hai chiều?


20

Mô-đun tham chiếu nút (một thành phần của CCK) cung cấp một cách tuyệt vời để tạo một nút tham chiếu từ nút khác. Cách tốt nhất để phơi bày mối quan hệ hai chiều giữa hai người là gì? Ví dụ dưới đây:

Chẳng hạn, trong hệ thống theo dõi vé có hai vé (nút) A & B, bạn có thể tạo tham chiếu nút từ vé A -> B và đánh dấu B là con. Khi xem vé A, việc hiển thị thông tin này sẽ không quan trọng. Tuy nhiên, tôi cũng muốn hiển thị mối quan hệ này khi xem vé B và hiển thị vé A với tư cách là cha mẹ của nó.

Yêu cầu tương tự này cũng sẽ được áp dụng trong các tình huống không phân cấp (vé C & D) với tham chiếu từ C -> D, mối quan hệ sẽ được phơi bày trên vé D cũng như trên C.

Câu trả lời:


25

Có nhiều mô-đun có sẵn, milage của bạn có thể thay đổi:

BackReference (chỉ dành cho Drupal 6)

NodeReferrer (phiên bản beta 7 Drupal)

Mối quan hệ nút (chỉ có Drupal 6)

Tham chiếu nút tương ứng (Phát hành ổn định Drupal 7)

Tham chiếu thực thể tương ứng (phát hành Drupal 7 dev)

Phụ thuộc nội dung (Drupal 7 phát hành ổn định)


Các tham chiếu nút tương ứng hoạt động hoàn hảo đối với tôi và khi CER ổn định, tôi sẽ chuyển sang đó.


4

Đối với Drupal 6, tùy chọn tốt nhất có lẽ là mô-đun NodeReferrer . Đối với Drupal 7, Relation phù hợp với dự luật nhưng chưa sẵn sàng.


Tôi luôn luôn sử dụng mô-đun NodeReferrer, với giá trị của nó
bầu chọn vào

1
Mô-đun Relation hiện đã sẵn sàng, kể từ tháng 7 '12
ted.strauss

Vâng, Relation dường như là một lựa chọn khá mạnh mẽ. Nếu không, CER cũng là một lựa chọn nhẹ tốt.
shivams

4

Nếu bạn đang sử dụng Drupal 7 / Lượt xem, bạn có thể xây dựng mối quan hệ 'đảo ngược' để có danh sách các nút đề cập đến một nút nhất định (hoặc, có lẽ, người dùng tham chiếu đến một nút nhất định). Kiểm tra các bản vá trong vấn đề này: http://drupal.org/node/1043260

Theo tôi, trừ khi bạn cần mối quan hệ ngược rõ ràng, được xây dựng sẵn được lưu trữ trong cơ sở dữ liệu (điều này đôi khi có thể hữu ích vì lý do hiệu suất), sử dụng một trong những giải pháp khác là quá mức cần thiết. Bạn luôn có thể tìm kiếm một mối quan hệ trong truy vấn SQL của riêng bạn nếu bạn cần ...

[Chỉnh sửa: Kể từ khi viết bài đăng này, bản vá trong vấn đề trên đã được cam kết cho Tài liệu tham khảo cho D7 và nên là cách thức phản hồi ưa thích (hoạt động tuyệt vời khi chỉ cần danh sách các nút hoặc người dùng tham chiếu một nút hoặc người dùng khác) .]

[Chỉnh sửa 2: Nếu bạn đang sử dụng Tham chiếu thực thể, có vẻ như giải pháp ưa thích là sử dụng Tham chiếu thực thể tương ứng và cũng có Đồng bộ hóa trường tham chiếu thực thể ít được sử dụng rộng rãi .]


Có vẻ như Tài liệu tham khảo sẽ bị phản đối vì có liên quan đến Thực thể. Không chắc chắn nơi mà để lại câu trả lời này.
Jay

1
Các tham chiếu sẽ vẫn còn tồn tại cho đến khi D7 là một bộ nhớ xa ... nhưng nếu bạn đang sử dụng ER, bạn có thể sử dụng các Tham chiếu thực thể tương ứng để thực hiện điều tương tự như Tài liệu tham khảo cung cấp ngoài hộp.
ge Muffguy

3

Trong Drupal 7 (mà bạn đã chỉ ra) có vẻ như giải pháp là sử dụng Mô đun Tham chiếu Thực thể kết hợp với mô đun Đồng bộ hóa Trường Tham chiếu (Thực thể) để thêm chức năng cần thiết để giữ cho các mối quan hệ được đồng bộ hóa.

Điều tương tự cũng có thể đạt được với Mô-đun tham chiếu với mô-đun cnr - giải pháp này hoạt động (hiện tôi đang sử dụng nó trên một trang web Drupal 7), nhưng đang trở nên lỗi thời / không dùng đến giải pháp đầu tiên tôi đưa ra.

Tất cả các giải pháp khác được đề cập trong các câu trả lời trên chỉ có liên quan đến Drupal 6 (ngoại trừ Relation có tiềm năng trở thành một mô-đun tuyệt vời, nhưng ngay bây giờ, không thực sự làm được gì nhiều và có nhiều vấn đề).


Bỏ phiếu cho câu trả lời này bởi vì nó gần đây và Moshe là thành viên cao cấp của cộng đồng Drupal. Trong câu trả lời được chấp nhận, mô-đun D7 ổn định duy nhất là CNR và điều đó không được chấp nhận để ủng hộ CER (chưa có bản phát hành ổn định nào).
gửi

1
Mối quan hệ đã không có nhiều vấn đề ngay cả trong tháng ba. Và Moshe Eshel drupal.org/user/168876 ! = Moshe Weitzman drupal.org/user/23 (nhìn vào đó ...) btw.

@chx Tôi đã rất ngạc nhiên khi thấy tôi là một thành viên cấp cao ... Tôi đang cố gắng trở thành một người đóng góp tốt hơn nhưng tôi không nghĩ mình sẽ tăng lên cấp độ của Moshe gốc. Liên quan đến mô-đun Quan hệ, tôi dựa trên phản hồi từ một người biết (tôi sẽ không biết tên) - Tôi chưa có cơ hội thực sự kiểm tra nó vào thời điểm đó và dựa vào ý kiến ​​đó. Tôi hiện đang làm việc trong một dự án D7 - Tôi nghĩ rằng tôi có nhu cầu về nó nên tôi sẽ đưa ra ý kiến ​​cập nhật của mình ở đây khi tôi hoàn thành.
Moshe Eshel

2

Ngoài ra, nếu bạn đang làm việc trên một triển khai tùy chỉnh và muốn một cách tham chiếu thẳng về phía trước, bạn có thể nối vào nodeapi, lắng nghe savethao tác và hơn là lập trình cập nhật nút được tham chiếu.




0

Bạn có thể sử dụng mô-đun Phụ thuộc nội dung .

Nó cung cấp cho bạn các tham chiếu ngược thông qua tab và hỗ trợ các mô-đun sau: tham chiếu nút / tham chiếu thực thể .


1
Không thực sự chắc chắn làm thế nào điều này có thể được sử dụng để tạo tài liệu tham khảo lẫn nhau?
mpdon Arena
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.