Nasıl Drupal 6 çoklu düğüm başvuruları için virgülle ayrılmış listesini oluşturabilir?

2 Cevap php

Ben makalelerde adı için dışarı geçiyorum Bir Yazar CONTENT_TYPE var. Sorun bir hikaye birden fazla yazar var olabilir, ve template.php aşağıdaki kodu yalnızca ilk yazar üretecektir. Nasıl bu "| 19 Şubat 2010 tarafından John Smith, Jane Doe ve Mary Poppins" olarak okunabilir olması için çıktı alabilirsiniz?

function mytheme_date($node) {
  return t('By !username | !datetime',
  array(
    '!username' => t($node->field_author[0][view]),
    '!datetime' => t($node->field_publish_date[0][view]),
  ));
}

Böylece orada doğru bir düğüm başvurusu irade çıkışı çok, ben de çok görünümleri için bu kullanmak isteyen kulüpler akılda lütfen.

Thanks, Steve

2 Cevap

Verdiğin örnek çıkışı ilk yazar için çalıştığı varsayılırsa, bir virgül sperated listesindeki tüm yazarlar almak için en doğrudan çözüm şu olacaktır:

foreach($node->field_author as $author) {
  $authors[] = $author[view];
}
$author_list = implode(', ', $authors);

Sonra istersin çıkış $author_list $node->field_author[0][view] yerine

Bunu yapmanın daha "Drupal" yol yanı content-field-field_author.tpl.php adında bir kopyasını yapmak, sonra tema dizinine modules / CCK / tema / içerik-field.tpl.php kopyalamak olacaktır. Daha sonra değerleri özellikle "yazar" alanında görüntülenen nasıl geçersiz olur, yeni dosyada değişiklik yapabilirsiniz. Özel bir düğüm [node_type]. Tpl.php dosyasında istediğiniz yere Sonra çıktı field_author değer temalı olabilir. (Özel şablonlar ilk defa yüklenecek Sizin için Administer > Site configuration > Performance üzerindeki düğme aracılığıyla önbelleğe alınan veriler temizlemeniz gerekebilir.)

Lütfen görünümün "Row style" "düğüm" olarak ayarlanmış ise, o da düğüm ve alan şablonları kullanır. Eğer için "Fields" kurduysanız o zaman ayrı görünümde tema alanını gerekir. Eğer tema kılabilirsiniz views şablonları için: "Bilgi Tema" sizin görünümün bakın.

Edit:
Missed the fact that you wanted a natural language list. That takes a bit more, but here's a Drupalized function that will do just that:

function implode_language($array = array()) {
  $language_string = '';
  if (count($array)) {
    // get the last element    
    $last = array_pop($array);
    // create a natural language list of elements if there are more than one
    if (count($array)) {
      $language_string = implode(', ', $array) .' '. t('and') .' '. $last;
    }
    else {
      $language_string = $last;
    }
  }
  return $language_string;
}

Then, of course, use the following in place of the last line my first code block above:
$author_list = implode_language($authors);

Ne Author Taxonomy eklentisi kullanımı hakkında?

Author Taxonomy allows you to assign one or more authors to a node using terms from a taxonomy of author names. This module also provides a fully themable replacement for your byline (the "submitted by Username on date" text).

Displays author names in a serialized manner: "Jane and Jack" or "Jane, Jack, and Joe."

Eğer farklı bir yaklaşım gerekiyorsa Multiple authors tutorial edin.