İçerik filtrelerini hizmetler aracılığıyla bir görünüme nasıl geçiririm


11

Doğru sonuçları döndürmek için bağlamsal bir filtre kabul eden bir görünüm var. Hizmetler 3 ve Drupal 7 kullanıyorum. Bir uç nokta oluşturabilir ve hizmetleri hizmetler yoluyla alabilirim. Ancak, bağlamsal filtreyi geçirmenin bir yolu yok gibi görünüyor, çünkü services_views sadece bir alma yöntemine (GET kullanan) sahiptir. Herkes bunun mümkün olup olmadığını ve eğer öyleyse nasıl yapılabileceğini biliyor mu?

Yanıtlar:


14

filtrenizi aşağıdaki gibi iletin: yourendpoint? args [0] = değer & args [1] = değer

İyi şanslar


3

Filtreler görünümde gösterildiği sürece, alan adları bağlamsal filtreler olarak kullanılabilir. Örneğin, filtreler listesinde NID'yi gösterin ve

GET /endpoint?nid=5

1
Bu çözüm, açıkta kalan filtre kriterleri için işe yarar. Bildiğim kadarıyla bağlamsal filtreler işe yaramaz, ancak bu olağanüstü bir çözümdür.
Brent

3

Bu zaten cevaplanmış bir sorudur, ancak gelecekte buraya göz atan diğer kullanıcılar için, Servis Görünümlerindeki belgelere bakmanızı ve incelemenizi tavsiye ederim . Diğer olası argümanlarla birlikte bağlamsal filtrelerin nasıl geçirileceğini açıklar ve bir demo videosu vardır ve örnekler gösterir.


1
Daha fazla araştırma yaptıktan sonra, hizmetler_görünümlerde değişiklik yapılmadan bunun mümkün olmadığı anlaşılıyor.
user379468

2

Bağlamsal filtrenizde birden çok değer kullanmanız gerekiyorsa, aşağıdakileri yapmanızı öneririm:

  • Bağlamsal filtrenizi oluşturma (benim durumumda: nid)
  • "Varsayılan bir değer sağla" yı tıklayın ve türü PHP Bağlamsal Filtre olarak + veya virgülle ayrılmış birden çok değere sahip bir dize bekliyoruz olarak ayarlayın.

return str_replace("|", "+", $_GET['nid']);

  • "Diğer" bölümünde, "Birden çok değere izin ver" seçeneğini işaretleyin.

Şimdi hizmetinizi ararken, bağlamsal filtrelerinizi şu şekilde sağlayın: ... / my_service? Nid = 1 | 2 | 3


2

Sorun yaşamaya devam edenler için, Görünüme Filtre eklediğinizde, belirtilen Alan ayarlarının altında bir Filtre tanımlayıcısı olduğundan emin olun. Bu, Hizmet Görünümleri belgelerinde listelenen iki biçimde sorgu dizesine iletilen bağımsız değişken olmalıdır.


Başlık üzerinde bir filtre anahtarı olarak kullanıldığını hayal ettiğim için, bu konuda zorlanıyordum. Teşekkür ederim!
donnadulcinea

1

Drupal Services ile içeriğe dayalı bir filtre alabildim: 1) 'Bağlamsal Filtre Sorgusu Görünümleri' modülünü ( https://drupal.org/project/views_contextual_filter_query ) 2) bağlamsal filtreyi URL üzerinden sorgu dizesi olarak geçirerek etkinleştirdim .

Bağlamsal filtrede, 'FİLTRE DEĞERİ MEVCUT OLMADIĞINDA' -> 'Sorgu Parametresini URL'den seçmeniz gerekecektir. Daha sonra URL'de kullanacağınız parametre adını ekleyebilirsiniz. Bu aynı zamanda + ve | Birden çok filtre ölçütü seçmek için karakterler.

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.