Görünen filtreyi arama ile nasıl birleştiririm?


18

Müvekkilim benden tek bir alan istedi, bu 2 şekilde işe yarayacaktı:

  • Sınıflandırmaya dayalı otomatik tamamlama filtresi.
  • Site ziyaretçisi sınıflandırmada olmayan bir şey girerse, içeriğin gövdesinde tam metin araması yapılmalı ve uygun bilgi mesajı gösterilmelidir.

Bu şekilde, kullanıcı kategori adına girerse, elle seçilmiş düğümleri listeleyecektir ve başka bir şey varsa, en azından bir miktar içerik alacaktır.

Ayrı olarak, kolay. Ancak bu davranışları bir alanda nasıl birleştirebilirim?


1
Ayrı olarak kolaydır, taksonomiye göre otomatik tamamlama için hangi modülle çalışıyorsunuz? Benim için hile, hiçbir sonuç olup olmadığını kontrol edecek küçük bir javascript kodu olacak Gönder düğmesi eylemi değiştirmek, böylece / search / yourwordswordsearch
sel_space

Yanıtlar:


17

Bulucu modülü gereksiniminizi tam olarak yapacak, taksonomi terimini ve düğüm başlığını, gövdeyi, alanları vb. Seçebilirsiniz.

İhtiyacınız olan arama formunu elde etmek için bulucunun işlevselliğini bir araya getirmenin birçok yolu vardır. Ayrıca, bulucunun çıktısının tam olarak özelleştirilmesini sağlayan birçok kanca ve tema işlevi vardır.

Bu amaçlar için kullanılır:

As a search tool to find a group of nodes or users.
As a way to navigate to a specific node or user page that matches criteria.
As an alternative to exposed filters for a Views module display.

Aşağıdaki ekran görüntüsüne bakın, Bulucu alanında , otomatik tamamlanan açık alanda arama yapmak için sınıflandırma terimlerinin yanı sıra düğüm gövdesini de seçebilirsiniz, hatta virgülle ayrılmış birden fazla anahtar kelime araması yapabilirsiniz. OkumakDaha fazla bilgi için Finder belgelerini .

resim açıklamasını buraya girin

Öğeyi ekledikten sonra, listeden bulucu alanlarını seçebilirsiniz ,

Sınıflandırma terimini ve Düğüm: Gövde'yi seçmek için Ctrl tuşu


Biraz eski ve yardımcılara ihtiyacı var, ancak tüm ihtiyaçlarımı karşılıyor gibi görünüyor. Test etmek gerekecek, ancak şimdiye kadar kullanım durumum için mükemmel bir cevap gibi görünüyor.
Mołot

İşe yarıyor gibi görünüyor. Biraz ayarlamam gerekecek, ama bu işi yapabilir.
Mołot

3

Test yapmadan yazıyorum ama en azından bir başlangıç ​​noktası olarak kullanabileceğinizi hissediyorum.

Kullanmak Görünümler Alan Görünümü modülünü bir görünümü başka bir görünüme gömebilirsiniz ve ayrıca gömülü görünüme bağlamsal bir filtre geçirmenizi sağlar.

Sizin durumunuzda, verilen filtreyi araştıran bağlamsal bir filtreye sahip başka bir görünüm oluştururdum. Bağlamsal filtreler aracılığıyla arama yapabiliyorsanız, bu noktada emin değilim, ancak 'Arama: Terim' gibi bazı seçenekler gördüm.

Bununla birlikte, bu ilk adımı yine de başarabilirseniz, geri kalanı nispeten basittir.

Orijinal görünümünüzde, gelişmiş seçenekler bölümünün altına 'Sonuç davranışı yok' ekler ve 'Genel: Görünüm (Görünümler alan görünümü)' ekler ve daha önce oluşturduğunuz görünümü seçer ve açıkta kalan filtrenin jetonunu katıştırılmış görünüme bağlamsal filtre (değiştirme kalıpları için listede simgeleri bulabilirsiniz).


1
İlginç bir fikir ama işe yaramadım. Birçok yapılandırma ve sonra Bala hazır modül gönderdi ve kalbimi kaybettim.
Mołot

Evet, Finder modülünü bilmiyordum . Sanırım bunu projelerimde de kullanacağım. Finder beklediğiniz şeyi yaparsa, bize bir yorum ile bildirirseniz sevinirim.
Елин Й.

3

Yukarıdaki tartışmalardan geçtim ve muhtemelen aşağıdaki senaryo 'Açıklanan filtre ile arama nasıl birleştirilir?' Yazısını ele alabilir. Uygulama bazı özel kodlama gerektirecektir.

  1. URL'yi düşünün http://www.seedandspark.com/studio .
  2. Burada, sol tarafta bir arama formunuz var. Bu özel bir formdur ( form_id = 'sns_studio_form_filter').
  3. İçerik bölgesinde yaklaşık 7-8 görüntüleme bloğuna sahibiz ve tüm dinamik bilgiler üretiyoruz (yalnızca anonim kullanıcılar için 3 blok)
  4. Şimdi, her görüntüleme bloğunda etkinleştirilen filtreleri etkinleştirdik.
  5. Açıkta kalan filtreleri görünümden gizledik
  6. Görünen filtreleri kullandığımızda URL yapılarını not ettik
  7. Özel form gönderme işleyicimizde, özel form alanlarından bilgi alır ve 6. adımda not ettiğimiz URL'yi oluştururuz. Ve son olarak, bu URL'ye yönlendiririz. Gönderme işleyicisinde şöyle olacaktır:

    $form_state ['redirect'] = array(
      $path, 
      array(
        'query' => $params // $params is the url
      )
    );
    drupal_redirect_form( $form_state );

Böylece, şimdi adım 7 yürütüldüğünde, tüm görünüm blokları ayarladığınız filtre ölçütlerine göre filtrelenir.

Umarım yardımcı olur.


3

Bunu yapmanın başka bir yolu daha var: Concat Field'ı deneyebilirsiniz modülünü . Alanı temel olarak içerik türlerine eklersiniz ve ardından bu alana göre filtreyi arama olarak kullanabilirsiniz.

Finder'a oldukça benziyor, katılıyorum, ama sanırım hala bahsetmeye değer.

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.