it-swarm-id.com

Bagaimana cara menerapkan referensi simpul dua arah?

Modul referensi-simpul (komponen CCK) menyediakan cara hebat untuk membuat referensi satu simpul dari yang lain. Apa cara terbaik untuk mengekspos hubungan dua arah antara keduanya? Contoh di bawah ini:

Misalnya, dalam sistem pelacakan tiket dengan dua tiket (node) A & B, Anda bisa membuat referensi simpul dari tiket A -> B dan menandai B sebagai anak. Saat melihat tiket A, akan sepele untuk menampilkan informasi ini. Namun, saya juga ingin menampilkan hubungan ini ketika melihat tiket B dan menunjukkan tiket A sebagai induknya.

Persyaratan yang sama ini juga berlaku dalam situasi non-hierarkis (tiket C & D) dengan referensi dari C -> D, hubungannya harus diekspos pada tiket D serta pada C.

20
markdorison

Ada banyak modul yang tersedia, jarak tempuh Anda mungkin bervariasi:

BackReference (khusus Drupal 6)

NodeReferrer (rilis Drupal 7 beta)

Hubungan Node (hanya Drupal 6)

Referensi simpul yang sesuai (rilis stabil Drupal 7)

Referensi entitas terkait (rilis Drupal 7 dev)

Ketergantungan Konten (rilis stabil Drupal 7)

25
tim.plunkett

Modul Referensi Entitas sekarang berfungsi dengan Referensi Entitas Terkait . Ini sangat ideal untuk semua node dan entitas non simpul.

7
tmsimont

Untuk Drupal 6, opsi terbaik mungkin adalah modul NodeReferrer . Untuk Drupal 7, Relasi sesuai dengan tagihan tetapi belum siap.

4
Pierre Buyle

Jika Anda menggunakan Drupal 7/Views, Anda dapat membangun hubungan 'terbalik' untuk mendapatkan daftar node yang merujuk ke node yang diberikan (atau, mungkin, pengguna yang merujuk ke yang diberikan) node) .Periksa patch dalam masalah ini: http://drupal.org/node/104326

Menurut pendapat saya, kecuali Anda membutuhkan hubungan terbalik eksplisit yang dibuat sebelumnya yang disimpan dalam database (ini kadang-kadang dapat membantu untuk alasan kinerja), menggunakan salah satu solusi lain adalah berlebihan. Anda selalu dapat mencari hubungan di kueri SQL Anda sendiri jika Anda perlu ...

[Sunting: Sejak semula menulis posting ini, tambalan dalam masalah di atas telah dikomit ke Referensi untuk D7, dan harus menjadi cara yang disukai untuk mereferensi ulang (berfungsi dengan baik ketika hanya membutuhkan daftar node atau pengguna yang mereferensikan node atau pengguna tertentu) .]

[Sunting 2: Jika Anda menggunakan Entity Reference, sepertinya solusi yang disukai adalah menggunakan Referensi Entitas Yang Sesuai , dan ada juga yang kurang banyak digunakan Sinkronisasi Bidang Entitas Referensi .]

4
geerlingguy

Dalam Drupal 7 (yang Anda tunjukkan) tampaknya solusinya adalah dengan menggunakan Modul Referensi Entitas dalam kombinasi dengan (Entitas) Modul Sinkronisasi Bidang Referensi yang menambahkan fungsionalitas yang diperlukan untuk menjaga hubungan tetap sinkron.

Hal yang sama dapat dicapai dengan Modul Referensi dengan modul cnr - solusi ini berfungsi (Saya menggunakannya pada satu Drupal = 7 situs saat ini), tetapi menjadi usang/usang karena solusi pertama yang saya berikan.

Semua solusi lain yang disebutkan dalam jawaban di atas hanya relevan untuk Drupal 6 (kecuali untuk Relasi yang memiliki potensi untuk menjadi modul yang hebat, tetapi saat ini, tidak terlalu banyak melakukan dan memiliki banyak masalah).

3
Moshe Eshel

Sebagai alternatif, jika Anda sedang mengerjakan implementasi kustom dan menginginkan cara yang langsung untuk merujuk kembali, Anda dapat menghubungkan ke nodeapi, dengarkan operasi save dan kemudian perbarui node yang direferensikan secara terprogram.

2
enikola

Anda juga dapat mencoba modul Reverse Node Referensi .

1
user580

Cukup gunakan Aturan dan aturan ini http://drupal.org/node/183624

0
giorgio79

Anda dapat menggunakan modul Ketergantungan Konten .

Ini memberikan Anda membalikkan referensi melalui tab dan mendukung modul berikut: referensi simpul/referensi entitas.

0
drupal