İki yönlü düğüm referansları nasıl uygulanır?


20

Düğüm referans modülü (CCK'nın bir bileşeni) bir düğümden diğerine referans oluşturmak için harika bir yol sağlar. İkisi arasındaki iki yönlü ilişkiyi ortaya çıkarmanın en iyi yolu nedir? Aşağıdaki örnek:

Örneğin, iki bilet (düğüm) A ve B içeren bir bilet izleme sisteminde, A -> B biletinden bir düğüm referansı oluşturabilir ve B'yi çocuk olarak işaretleyebilirsiniz. A biletini görüntülerken bu bilgileri görüntülemek önemsiz olacaktır. Bununla birlikte, bu ilişkiyi B biletini görüntülerken ve A biletini ebeveyn olarak göstermek için de göstermek istiyorum.

Aynı gereklilik, C -> D referansı ile hiyerarşik olmayan durumlarda (C & D biletleri) de geçerli olacaktır, ilişki D biletinde ve C'de gösterilmelidir.

Yanıtlar:


25

Birçok modül mevcuttur, milajınız değişebilir:

BackReference (yalnızca Drupal 6)

NodeReferrer (Drupal 7 beta sürümü)

Düğüm İlişkileri (yalnızca Drupal 6)

Karşılık gelen düğüm referansları (Drupal 7 kararlı salım)

Karşılık gelen varlık referansları (Drupal 7 dev sürümü)

İçerik Bağımlılığı (Drupal 7 kararlı sürümü)


Karşılık gelen düğüm referansları benim için mükemmel çalışıyor ve CER sabit olduğunda buna geçeceğim.



4

Drupal 7 / Views kullanıyorsanız, belirli bir düğüme (veya belki de belirli bir düğüme başvuran kullanıcıların) bir düğüm listesi almak için 'ters' bir ilişki oluşturabilirsiniz. Bu sayıdaki yamaya göz atın: http://drupal.org/node/1043260

Bence, veritabanında saklanan açık, önceden oluşturulmuş ters ilişkiye ihtiyacınız yoksa (bu bazen performans nedenleriyle yardımcı olabilir), diğer çözümlerden birini kullanmak aşırıdır. Gerekirse her zaman kendi SQL sorgunuzda bir ilişki arayabilirsiniz ...

[Düzenle: Bu yazıyı orijinal olarak yazdığından beri, yukarıdaki sayıdaki yama D7 için Referanslar'a adanmıştır ve tercih edilen geri başvurma yolu olmalıdır (sadece belirli bir düğüme veya kullanıcıya referans veren düğüm veya kullanıcı listesine ihtiyaç duyulduğunda harika çalışır) .]

[Düzenle 2: Varlık Referansını kullanıyorsanız, tercih edilen çözüm İlgili Varlık Referanslarını kullanmaktır ve daha az kullanılan Varlık Referans Alanı Senkronizasyonu gibi görünmektedir .]


Referanslar Varlık Referansı lehine kullanımdan kaldırılacak gibi görünüyor. Bunun bu cevabı nerede bıraktığından emin değilim.
Jay

1
D7 uzak bir bellek oluncaya kadar referanslar hala değişecektir ... ancak ER kullanıyorsanız, Referanslar kutusundan çıktığı gibi yapmak için İlgili Varlık Referanslarını kullanabilirsiniz .
geerlingguy

3

In Drupal 7 (eğer belirtilir) o çözüm kullanmaktır görünüyor Varlık Referans Modülü ile birlikte (Varlık) Referans Alan Senkronizasyon modülü senkronize ilişkileri tutmak için gerekli işlevselliği ekler.

Aynı şey cnr modüllü Referanslar Modülü ile elde edilebilir - bu çözüm çalışır (şu anda bir Drupal 7 sitesinde kullanıyorum), ancak verdiğim ilk çözüm lehine eski / kullanımdan kaldırılıyor.

Yukarıdaki cevaplar adı geçen diğer tüm çözüm yalnızca alakalı Drupal 6 (haricinde İlişki büyük modül olma potansiyeline sahiptir, ancak şu anda gerçekten çok yapmak ve sorunları çok var değildir).


Bu yanıtı oyladıkları için yakın zamanda ve Moshe Drupal topluluğunun kıdemli bir üyesidir. Kabul edilen cevapta, tek kararlı D7 modülü CNR'dir ve bu CER lehine amortismana tabi tutulmaktadır (henüz kararlı bir salınımı yoktur).
aendrew

1
İlişkinin Mart ayında bile pek çok sorunu olmadı. Ve Moshe Eshel drupal.org/user/168876 ! = Moshe Weitzman drupal.org/user/23 (şu uid'e bakın ...) btw.

@chx Üst düzey bir üye olarak gördüğümü görünce kendime şaşırdım ... Daha iyi bir katkıda bulunmaya çalışıyorum ama Orijinal Moshe seviyesine yükseleceğimi sanmıyorum. İlişki modülüyle ilgili olarak, bilen birinden gelen geri bildirimlere dayanıyorum (isimleri adlandırmayacağım) - O zaman gerçekten test etme fırsatım olmadı ve bu görüşe güvendim. Şu anda bir D7 projesi üzerinde çalışıyorum - bence buna ihtiyacım var, işim bittiğinde burada güncellenmiş fikrimi vereceğim.
Moshe Eshel

2

Alternatif olarak, özel bir uygulama üzerinde çalışıyorsanız ve geri nodeapibaşvurmanın doğrudan bir yolunu istiyorsanız, başvuruda bulunabilir , saveişlemi dinleyebilir ve başvurulan düğümü programlı olarak güncelleyebilirsiniz.




0

İçerik Bağımlılığı modülünü kullanabilirsiniz .

Sekme üzerinden ters referanslar sağlar ve aşağıdaki modülleri destekler: düğüm referansı / varlık referansı .


1
Bunun karşılıklı referanslar oluşturmak için nasıl kullanılabileceğinden emin değil misiniz?
mpdonadio
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.