web-gelistirme-sc.com

Yalnızca şu anda etkin olan dili arayın

Yalnızca geçerli dildeki düğümleri getirmek için sonuçları Drupal 7) varsayılan bir aramadan nasıl kısıtlayabilirim?

Web sitemin üç dil değiştiricisi var; kullanıcı siteyi görüntülerken hangi dili kullanmak istediğini seçer. Bir şey ararsa, sonuç sayfası diğer dillerden sonuçlar getirir. Bugün sadece 3 etkin dilim var, ancak bunu 6 veya daha fazla dile getirmeyi planlıyoruz.

22
Israel Rodriguez

Global $language Hangi dilde olduğunuzu bilmek. Görünümler'de "content: dil -> geçerli kullanıcı dili" ni kullanarak filtre uygulayabilirsiniz.

2
Ahmed

Görünüşe göre belgesiz hook_query_node_access_alter() kullanarak bunu yapmanın gerçekten zarif bir yolu var:

function yourmodule_query_node_access_alter(QueryAlterableInterface $query) {
  $search = FALSE;
  $node = FALSE;

  // Even though we know the node alias is going to be "n", by checking for the
  // search_index table we make sure we're on the search page. Omitting this step will
  // break the default admin/content page.
  foreach ($query->getTables() as $alias => $table) {
    if ($table['table'] == 'search_index') {
      $search = $alias;
    }
    elseif ($table['table'] == 'node') {
      $node = $alias;
    }
  }

  // Make sure we're on the search page.
  if ($node && $search) {
    $db_and = db_and();
    // I guess you *could* use global $language here instead but this is safer.
    $language = i18n_language_interface();
    $lang = $language->language;

    $db_and->condition($node . '.language', $lang, '=');
    $query->condition($db_and);
  }
}

Not: Bu kod mükemmel Search Config modülüne göre% 100'dür.

Kullanıcının İçerik diline karşı

Bazı sitelerde arayüz, kullanıcının tercih ettiği dilde gösterilmek üzere yapılandırılmış olabilirken, sayfa içeriği URL veya içerik diline göre gösterilir.

Bu durumda, değiştirmeyi düşünün

$language = i18n_language_interface();

ile

$language = i18n_language_content();
25
Alex Weber

Aynı gereksinimleri vardı ve Özel Arama Uluslararasılaştırma adlı bir alt modül içeren Özel arama modülünü kullandım: "= yalnızca tüm veya geçerli dilden içerik arayın ve tüm etiket ve seçici çeviri işlemleri "(bu modülün özel arama blokları gibi diğer bazı yararlı özellikleri de sağladığına dikkat edin). Mükemmel çalışıyor.

4
Kojo

Arama sonuçlarını geçerli site dilinde olan geçerli dilde veren Görünüm Modu-> Dil seçeneğini belirleyebileceğiniz Display suite modülünü kullanabilirsiniz.

0
Akshay Sawant

Arama çekirdeğinin bunu desteklediğinden emin değilim.

Projeyi görüyorum i18nluceneapi ama şu anda 7 sürümünü desteklemiyor.

searchapi kullanıyorum ve facets dil oluştur :). Durumunuz için kullanabilir, arama sayfasında yönler ve varsayılan filtre oluşturabilir.

0
Sang Le Thanh