Drupal: View alan değeri değiştirme

2 Cevap php

Ben Drupal 5 View içinde gerçek bir tarih var alanlar için normalde gösterir Event_StartTime alan içeriyorsa, (yani "Görüntüler 1" olmalıdır) var. Ama aynı zamanda Dec 31 1969 - 8:00pm görünümünde kötü görünüyor ve ben "Uygun Hayır Tarihi" gibi, bazı özel etiket ile değiştirmek gerekir gibi Event_StartTime alan değerine sahip kayıtların bir dizi var.

Can I somehow inject this condition (if value = x show value y) into view? Even when I print in "No Date Available" into SQL, the view will show empty field.

Özetle, genel problem Görünüm alanlar tür sınırlayıcı ve bazen sadece bazı alan değerini değiştirmeniz gerekiyor, ama o "tarih ya da hiçbir şey" veya "düğüm-referans id ya da hiçbir şey" ya olmasıdır.

P.S. Bence CSV verileri döndürmek yapar modülü: Ben "İzlenme İhracat Bonus" kullandıkları için durum biraz karmaşık olabilir.

2 Cevap

Henrik Açıklamanın kapalı bina, tema yapmak için en iyi yer olarak görünüyor bana. Bunu belirli bir görünümü geçersiz kılmak için template.php dosyası için bir işlev eklemek gerekir. Views 1 theming documentation bakın. Bu belgelere dayanarak, formun sizin bakış isimde bir fonksiyon oluşturmak

function THEMENAME_view_view_VIEWNAME($view, $type, $nodes, $level = NULL, $args = NULL)

tema bütün görünümü. $nodes görünümünüze dahil kısmen yüklenmiş düğüm nesneleri bir dizidir. Her düğümü yüklemek ve bu böyle bir şey ile Event_StartTime alanın değerlerini kontrol edebilirsiniz:

foreach ($nodes as $id => $node) {
  $temp_node = node_load($node->nid);
  //now check value of Event_StartTime assuming that is what you named the field
  if ($temp_node->Event_StartTime === 'Dec 31 1969 - 8:00pm') {
    $temp_node->Event_StartTime = 'No Date Available';
  }
 //output the fields of your view . . .
}

Ben sadece Event\_StartTime alanının değerini nasıl kontrol gösterdi ve ben gerçek değeri nedir emin değilim. 31 Aralık 1969 time() işlevi tarafından döndürülen tarihlerden önce, yani bu işe yaramazsa eğer olay alanı sadece bırakılırsa doğru olabilir ki, Event_StartTime === '' olmadığını kontrol etmek isteyebilirsiniz boş. Hala tema sizin alanları dinlenme ve sadece bir alanın çıkışını değiştirmek için bir ağrı çok fazla olabilir HTML olarak çıktı onları, sahip olacaktır. Ayrıca, tek tek alanların çıkışını kılabilirsiniz. Ben bu yüzden o size yol olamazdı bu yapmadım, ama yukarıda verdiğim bağlantı öncelikli alan tema fonksiyonları üzerine bazı belgelerine sahiptir.

Artık Görünümler1 gerçekten aşina değilim, ama en az iki seçenek olduğunu düşünüyorum:

  1. Tema düzeyinde - Eğer alan şablonu geçersiz kılmak ve orada belirli bir tarih değerinin bir kontrol koymak, bulduğumuz zaman onu yerine olabilir. Tabii ki bu onay tarihleri ​​biçimlendirme bağlı olacaktır, bu yüzden hiç o değiştirirseniz, siz de kontrol ayarlamak gerekiyordu.
  2. Görünümü kuşak seviyesinde - kod adlı 'elle' görünümü yürütmek ve görünümleri sağ nesnelleştirilmesi sonra ve / veya yürütme sonra nesne incelemek, ancak işleme önce (bir example of manipulationg the view object in Views2 onu bakınız) olabilir. Sen yürütülmesinden sonra, ancak render önce sonucu özelliğini manipüle olabilir, ya doğru örnekleme sonra orada bir ön-render geri arama koymak mümkün olabilir (ama bu kez bakıldı1 zaten mümkün olup olmadığını ben emin değilim).