Görünümlerde düğüm referans bağlamsal filtresinde düğüm kimliği yerine düğüm başlığı veya yol takma adı nasıl kullanılır?


7

Düğüm B'ye bir düğüm referansı olan A düğümüm var.

Bir görünümde, belirli B düğümüne başvurulan tüm A düğümlerini gösteririm (nid: 123, title: node-B-title).

Bağlamsal filtrede nid kullanmak yerine düğüm başlığını kullanmak istiyorum. Örneğin:

view-name/123

Kullanmak isterim

view-name/node-B-title

Bunu nasıl yapabilirim?

Yanıtlar:


10

Çok benzer bir sorunum vardı ve sadece çözüm bulmakla kalmadım, aynı zamanda görüşün nasıl çalıştığı hakkında yeni şeyler öğrendim. Öğrendiklerimi ve sorunun çözümünü de paylaşayım.

Bir veya daha fazla bağlamsal filtreye sahip bir görünüm oluştururken, görünümün bu filtrelerin değerlerini bir yerden alması gerekir. Bu, -

  1. URL'den bağlam filtresi değerlerini seçme
    • Tipik bir olurdu sayfa görüntülemesi tür amaçlar URL formunun olan bir için foo/%/barveya foo/bar/%tek içeriksel filtre için VEYA formun foo/%/bar/%veya foo/bar/%/%birden filtreler için
    • Birden fazla filtreniz olması durumunda, ilk görünen url değeri birinci filtreye, ikinci filtrenin yanında vb. Eşlenir.
  2. Görünümler , filtre değerleri URL'de yoksa ne yapacağınızı söylemenize olanak tanır . Bu genellikle blok görünümleri için kullanılır .
    • Farklı eylemler arasından seçim yapabilir ve ardından seçimi yapılandırabilirsiniz. Farklı eylemler arasından seçim yapabilir ve ardından seçimi de yapılandırabilirsiniz. asdfj kajsdf
  3. Görüntülemelere izin veren başka bir şey, yukarıdaki # 1'de açıklandığı gibi URL'de bulunursa filtre değerleriyle ne yapacağınızı söylemektir . Tipik kullanım durumları şunlardır: - Filtre değerlerine dayalı dinamik başlıklar oluşturma, Filtre değerlerini doğrulama vb.
    • Filtre değerlerini doğrularken değerleri de değiştirebilirsiniz! (İşte çözümümüz btw'de yatmaktadır). Bu, drupal form doğrulama geri çağrılarında $ form değerlerini değiştirme şeklimize çok benzer. resim açıklamasını buraya girin

Özel probleminizin çözümü , yukarıdaki görüntüdeki oklarla gösterilen bölümlerde çok benzer bir kod kullanmaktır.

Bu bağlantı bana çok yardımcı oldu. İşte bir alıntı:

$np = explode('/', drupal_get_normal_path($argument));
if (!empty($np[1])) {
  $handler->argument = $np[1];
  return TRUE;
} else {
  return FALSE;
}

Bu benim için işe yaramadı, ancak kaydettikten sonra görünümde bir ajax hatasına neden oldu.
DrCord

1

Bu her durumda işe yaramaz, ancak söz konusu soruna bir yaklaşım, B düğümü (veya düğüm B tipi) gerçek düğüm ekranını kullanmak ve yolunu yol veya pathauto modülü ile istediğiniz şekilde ayarlamaktır. Ardından, içerik ilişkisini ve istediğiniz görünümü eklemek için görünüm bloğunu kullanın.

NID ve ardından ayarda bağlamsal bir filtre kullanın Provide default value > Content ID from URL. Ardından, görünüm bloğunu sayfanıza veya sayfa grubunuza ekleyin.

Bağlamınız, görünümler sayfasında değil, düğümün kendisinde bir görünüm bloğu kullanmanıza izin veriyorsa, bu, istediğiniz yolu ve görünümlerin istediğiniz görüntüyü göstermesini kolaylaştırır.


1

Kabul edilen cevabı düzenledim, ancak asıl kodu buraya eklemek istedim:

İçerik filtresindeki doğrulama seçeneklerinin altındaki PHP onaylı seçeneğini kullanın.

$np = explode('/', drupal_get_normal_path($argument));
if (!empty($np[1])) {
  $handler->argument = $np[1];
  return TRUE;
} else {
  return FALSE;
}

1

Görünüm bağımsız değişkeni, içerik türünün alan başvurusu olmalı, ardından "Varsayılan bağımsız değişken sağla" seçeneğini belirtmeli ve Kimlik Düğümü seçeneğini (bunun gibi bir şey) işaretlemelidir.

1) "X alanı başvurusu" bağımsız değişkenini ekleyin 2) Kimlik düğümünü url'den kontrol edin (varsayılan bağımsız değişkeni ekleyerek) 3) Doğrulama bölümünde düğümün içerik türünü kontrol edin ve "Düğüm türü" ayarında "Düğüm Kimliği" ni seçin

Ve bitti. :)


"URL'den içerik kimliği" yalnızca nid değerini verir. Bir terim başvurusu kullanırsam, "terim adı terim kimliğine dönüştürülmüş" ile bir "doğrulama ölçütleri" kullanabilirsiniz. Düğüm referansı için başlığı nid'e çevirmek için benzer bir seçenek yoktur. Muhtemelen unvanların benzersiz olması gerekmez.
uwe

Evet doğrudur, ancak argüman alan başvurusu (nid) olmalıdır, bunu deneyin.
Eleo

1) "X alanı başvurusu" bağımsız değişkenini ekleyin 2) Kimlik düğümünü url'den kontrol edin (varsayılan bağımsız değişkeni ekleyin) 3) Doğrulama bölümünde, düğümün içerik türünü kontrol edin ve "Düğüm türü" ayarında "Düğüm Kimliği" ni seçin
Eleo

Gerçek url'de nid olabilir ve yol diğer adı düğüm başlığı olabilir. Bu işe yarıyor değil mi?
SGhosh

0

Eski bir soru, ancak Google üzerinden buldum ve çözümümü gelecekte bulan herkes için paylaşacağımı düşündüm:

Şu anda Sumeet Pareek'in önerdiğini tam olarak yapan safeword adlı bir modül var : (Otomatik olarak) URL dostu bir alan oluşturur.


0

Ben öneriyoruz Genişletilmiş Yol adlar (path_alias_xt) modülünü . Bu sorunu sadece konfigürasyon olmadan kurularak çözüyor, görünüşe göre sihir. : D Gerçekten değil, ama modül sayfasından alıntı nasıl yüklediğinizi gösteriyor ve bu ve diğer sorunları düzeltir, ancak modülün perde arkasında bunu nasıl yaptığına girmez ... O, her zaman kodu okumak: D Özellikle görünüm yolları sabitleme bahsetmiyor, ama bunu yapmak için kullandım ve mükemmel çalışıyor.

Modül sayfasından çözdüğü sorunların listesi:

  • Düğüm / 123 için about-us gibi bir takma ad tanımladıktan sonra, sayfalarınızın neden hala çirkin makine tarafından oluşturulan sekmeler ve / düğüm / 123 / edit, düğüm / 123 / revizyonlar vb. .?
  • Aynı şekilde / sınıflandırma / terim /% ve / kullanıcı /% bağlantıları için: / kurur / parkur görmeyi beklediniz mi / kullanıcı / 5 / parkur aldınız mı?
  • Tarayıcı adres çubuğunuzun takma adlarınız yerine bu çirkin sayıları da gösterdiğini düşünüyor musunuz?
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.