Drupal görünümün Modülü için özel bir filtre oluşturmak nasıl?

5 Cevap php

Ben Profili, CCK, ve kez bakıldı2 modülleri Drupal 6 sitesinde yüklü. Ben kullanıcı profiline bir dize alanı ekledi. Gerçekten güzel, Görüntüleme GUI oluşturucu aracılığıyla, önceden belirlenmiş değerler kolayca filtre edebilirsiniz. Ancak, diğer ortam değişkenleri dayalı dinamik ayarlanacak filtre ölçütlerini istiyorum (yani $_SERVER['SERVER_NAME']).

Temel bir 'Nasıl Yapılır-yazma-a-özel-drupal-bakıldı-filtre' oralarda bir yerde var mı? Ben belgelerine sokmak isteyen oldum, ama bunu yapmak için nasıl benim basit aklıma belli değil.

5 Cevap

Sen kendi filtrelerini eklemek için aşağıdaki gibi kendi işlev oluşturabilirsiniz.

<?php custom_views_embed_view($view_name, $display_id) {
$view = views_get_view($view_name);
$view->set_display($display_id);
$id = $view->add_item($display_id, 'filter', 'node', 'created',
                      array( 'value' => array('type' => 'date', 'value' => date('c')), 'operator' => '<='));
return $view->execute_display($display_id);
}
?>

Ben de benzer bir sorun var ve bu makalede sorunu çözmek için çok yararlı olmuştur.

http://www.metaltoad.com/blog/drupal-7-tutorial-creating-custom-filters-views

Ve hook_views_data oficial dokümantasyon

http://api.drupal.org/api/views/docs%21docs.php/function/hook_views_data/6

Olasılık filtreleri ne elde etmeye çalıştığınız mümkün olmadığı durumda, bazı veritabanı alanında dayalı olması gerektiğini, kendi sitem için yüklenen süzgeç tür baktım, yok. Bu filtreler oluşturulan SQL sorgusuna WHERE yan tümcesi sağladığı görülmektedir.

Eğer daha da devam etmek istiyorsanız Tüm söyledikten, en iyi bahis zaten Views için filtreleri sağlayan bir modül ile başlamaktır. Düğüm modülü için İzlenme sağlanan filtresi vardır; alternatif olarak, audio module Ayrıca bazı filtreler sağlayan bakmak olabilir. Ayrıca, Drupal forumlarda ya da destek listesine ilanı Eğer çalıştığınız konum ne elde sağlayacak başka bir modül kadar dönüşebilir.

evet bunu yapabilirsiniz. Modülü "views filtre blok" kullanmayı deneyin. Eğer bloğu etkinleştirdikten sonra sayfayı görüntülerken .. "view" bir kaynaktan gelen blok html ayıklayın. Şimdi bunu güzel görünmesi için ne gibi css ile buna kodu ekleyin .. kendi özel blok oluşturmak ... "Gösterim filtre blok" devre dışı bırakın. Bu kod kullanımı php içinde dinamik filtre ilk seçim olması için ne istediğinizi belirtmek için. Aslında durum server_name değer için kontrol ve buna göre filtre büyüklüğünün doğru değeri atamak için EĞER yazmak için özel php blok kullanımı php kodundaki sonra .. filtre dayanmaktadır alanı seçtiğinizden emin olun. "

Aslında filtresini kullanmak için bir modül yazmak için bunu yapmak için orada belki diğer (muhtemelen daha iyi) yollar. Yani bu ama bir öneridir. Ayrıca, bir deneyin "Views PHP Filter" verir. Ben henüz kullanmadım ama bir vuruş onun değer gibi geliyor değil.

  • drupal kullanıcı tarafından (drupal adı: drupdrips)

Eğer user views Bu genişletmek gerekiyorsa viewsphpfilter module which allows filter views by node id. ancak bir yama var kullanabilirsiniz