Stash Listesini iki özel alanla filtrelemek mümkün mü?

Bir liste alıp özel bir alanla sipariş ediyorum ancak bazı alanları hariç tutup başkalarını da eklemem gerekiyor. Esasen, EE'nin özel alandaki 'param' aramalarının bir örneğidir, fakat OR'I VE .... 'yi kullanmadan önce, bunu yerel bir EE'den farklı olarak' OR 'aramasını destekleyen Mark Croxton'un Arama Alanları modülüyle Stash olmadan gerçekleştirmiştir.

Sorum şu: Stash listesinde bunu nasıl kopyalayabilirim? Arama Alanları Stash ile kullanılabilir mi? Şimdiye kadar sahip olduğum gibi değil.

1

1 cevap

EE does VEYA kanal girişleri etiket parametresiyle eşleşen OR'yi destekler:

search:body="pickles|shoes"

Bu yeterli değilse:

Düzenli ifadelerle bir Stash listesinin filtrelenmesi

Sonuç kümesini liste halinde çekerken kendi indeks sütununuzu oluşturabilirsiniz. Dizin sütununuz, filtrelemek istediğiniz değerleri birleştirir.

Pahalı kanalı yeniden çalıştırmanıza gerek kalmaması için listeyi önbelleğe alın: şablon her görüntülendiğinde giriş sorguları. Dizin sütunu için bir sınırlayıcı olarak '@' kullanıyorum:

{exp:stash:set_list name="cars" parse_tags="yes" limit="500" save="yes" scope="site" replace="no"}
    {exp:channel:entries channel="cars"}
        {stash:index}{marque}@{color}{/stash:index}
        {stash:marque}{marque}{stash:marque}
        {stash:color}{color}{stash:color}
        {stash:reg}{title}{/stash:reg}
    {/exp:channel:entries}
{/exp:stash:set_list}

{!-- get red OR blue AND volkswagen --}
{exp:stash:get_list name="cars" scope="site" match="#^(blue|red)@volkswagen$#" against="index"}
   {reg} 
{/exp:stash:get_list} {!-- get red OR volkswagen --} {exp:stash:get_list name="cars" scope="site" match="#^[email protected]|@volkswagen$#" against="index"} {reg}
{/exp:stash:get_list}

Caveat

Kanal girişleri ile birkaç yüz girişten daha fazla çıktı almak, bellekte pahalı olacak ve şablonunuzun ilk kez görüntülendiği ve önbelleğin oluşturulduğu sorgulanır. İlgili girdileri elde etmek için kendi optimize edilmiş sorgunuzu yazabilir veya büyük bir sonuç kümesini filtrelemeye çalışıyorsanız, mükemmel bir Düşük Arama .

2
katma
Ah doğru. Btw listesinde bir arama listesiyle arama yapmak için hangi sorunları yaşıyorsunuz?
katma yazar Chris Leon, kaynak
Merhaba Mark, çok hızlı cevap verdiğiniz için teşekkürler. İlk yazımda biraz belirsiz olduğunu düşünüyorum, EE'nin iki farklı alan arasında bir OR'ye izin vermediğini kastediyorum {exp: search_fields arama: field1 = "= {segment_3}" search: field2 = "= {segment_3}" operator = "OR" channel = "scheduler_times" parse = "içe"} '
katma yazar segovius, kaynak
Bu kadar sorun değil, sadece Arama Alanları modülünde olduğu gibi 2 farklı özel alandaki aramayı nasıl çoğaltabileceğiniz konusunda bir çalışma yapamazsınız. Yukarıdaki btw için teşekkürler Ben şimdi bunu denemek için gidiyorum, gerçekten sadece yaklaşık 10-20 girişleri filtre gerekir, bu yüzden yükün çok kötü olduğunu düşünmüyorum. Not: tüm düzenlemeler için özür dilerim, yazmadan önce neden göndermeyi sürdürdüğünden emin değilim.
katma yazar segovius, kaynak