2 alanı karşılaştırarak görünümü nasıl filtreleyebilirim? Alan-a <alan-b


18

2 fiyat alanı olan bir ürün içerik türü var.

Fiyat-A'nın fiyat-B'den düşük olduğu tüm ürünleri gösteren bir görünüm oluşturmak istiyorum.

Sadece bir filtre ekleyip fiyat-A'yı seçip daha az çalışmayı seçip değeri fiyat-B olarak ayarlayabileceğimi umuyordum, ancak bunu yapamazsınız.

Bir görünüm kanca, özellikle hook_views_query_alter kullanarak baktım ama hiç şansım olmadı.

Ben de Views PHP modülünü kullanmayı denedim ve işe yarayamadım.

Bunu başarmanın en iyi yolunu bilen var mı?

Yanıtlar:



4

Drupal Yanıtlar Yığın Değişimi'ne hoş geldiniz! Bunu şimdiden ve bildiğim gibi Drupal görüşlerinde başarmanın doğrudan bir yolu yok.

Views PHP modülünü kullanarak bunu yapabilirsiniz . Bu modülü etkinleştirin ve yukarıdaki modülü yükledikten sonra görünüm kategorisi Global Kategorisinden seçebileceğiniz bir filtre PHP filtresi ekleyin.

Filtrenin PHP kodu bölümünde aşağıdaki gibi bir şey php kodu ekleyin.

$node = node_load($data->nid);

$field_a = field_get_items('node', $node, 'field_price_a');
$price_a = field_view_value('node', $node, 'field_price_a', $field_a[0]);

$field_b = field_get_items('node', $node, 'field_price_b');
$price_b = field_view_value('node', $node, 'field_price_b', $field_b[0]);

if ($price_a >= $price_b) {
  return TRUE;
}

Field_price_a'yı Fiyat A alan adınızla ve field_price_b'yi Fiyat B alan adınızla değiştirin.

Test ettim ve benim için çalıştı! Umarım sen de kırabilirsin :-)


Önerin için teşekkürler. Hala bu kod biraz çalışmasını alamadım ve dsm ($ data) yaparken ortaya alanları kullandık; Ben de sadece bir onay kutusu eklemek ve onay kutusu işaretli ise filtre düşünüyorum. Yardımın için teşekkürler.
— Fadzy

Bu arada, herhangi bir özel kodlamaya veya herhangi bir katkıda bulunan modüle ihtiyaç duymadan görünümlerle mümkündür.
— Елин Й.



-2

Fiyat, içerik türünüzdeki bir alansa, Drupal 7 görünümlerinde otomatik olarak ve kolayca bir alan karşılaştırıcısı seçebilirsiniz. Sanırım bu işe yaramalı.

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.