it-swarm-id.com

Menampilkan daftar istilah taksonomi yang dipisahkan koma?

Drupal 7.

Di node.tpl.php saya, saya ingin mencetak daftar istilah taksonomi (taksonomi disebut "saluran."). Jika saya menggunakan:

<?php print render($content['field_channel']); ?>

Ini bekerja, tentu saja, tetapi yang terbaik yang bisa saya lakukan untuk mendapatkan mereka sebaris adalah menggunakan CSS untuk melayang mereka pergi. Saya ingin mereka dipisahkan oleh koma. Ada ide?

Terima kasih.

10
Mike

Anda dapat mencoba memberi tema pada bidang menggunakan field.tpl.php atau theme_field() .

Sebagai contoh (menggunakan field.tpl.php):

  1. Salin field.tpl.php Ke direktori tema Anda dari "modules/field/theme"
  2. Buat salinan file itu dan ganti namanya menjadi field--field-channel.tpl.php
  3. Edit file sesuka Anda.

Sebagai contoh cepat/kotor agar ini berfungsi, field--field-channel.tpl.php Dapat terlihat seperti:

<div class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
  <?php if (!$label_hidden) : ?>
    <div class="field-label"<?php print $title_attributes; ?>><?php print $label ?>:&nbsp;</div>
  <?php endif; ?>
  <div class="field-items"<?php print $content_attributes; ?>>
    <?php foreach ($items as $delta => $item) : ?>
      <div style="display:inline;" class="field-item <?php print $delta % 2 ? 'odd' : 'even'; ?>"<?php print $item_attributes[$delta]; ?>>
        <?php 
          print render($item);
          // Add comma if not last item
          if ($delta < (count($items) - 1)) {
            print ','; 
          }
        ?>
      </div>
    <?php endforeach; ?>
  </div>
</div>

Mungkin ada beberapa cara untuk mencapai ini menggunakan file .tpl, tetapi ini hanya satu opsi. Saya sarankan menambahkan kelas ke DIV daripada gaya dan membuat perubahan dalam stylesheet Anda daripada menggunakan gaya inline.

11
Laxman13

Modul Text Formatter sekarang tersedia untuk Drupal 7, dan memungkinkan Anda melakukan ini tanpa kerja tema kustom.

11
jhedstrom

Inilah salah satu cara untuk menggunakan pendekatan theme_field (tambahkan ke file template.php Anda):

/**
 * Implements theme_field()
 *
 * Make field items a comma separated unordered list
 */
function THEMENAME_field__NAME_OF_FIELD__NAME_OF_CONTENT_TYPE($variables) {
  $output = '';

  // Render the label, if it's not hidden.
  if (!$variables['label_hidden']) {
    $output .= '<div class="field-label"' . $variables['title_attributes'] . '>' . $variables['label'] . ':&nbsp;</div>';
  }

  // Render the items as a comma separated inline list
  $output .= '<ul class="field-items"' . $variables['content_attributes'] . '>';
  for ($i=0; $i < count($variables['items']); $i++) {
    $output .= '<li>'. drupal_render($variables['items'][$i]);
    $output .= ($i == count($variables['items'])-1) ? '</li>' : ', </li>';
  }
  $output .= '</ul>';

  return $output;
}
7
cdmo

Anda dapat melakukannya dengan mudah hanya di CSS:

 .jenis lapangan-taksonomi-istilah-referensi .field-item .field-item {
 display: inline-block; 
 * display: inline; 
 * zoom: 1; 
} 
. bidang-jenis-taksonomi-istilah-referensi .field-item .field-item: setelah {
 konten: ","; 
} 
 .jenis lapangan-taksonomi-istilah-referensi .field-item .field-item: last-child: after {
 konten: ""; 
} 
4
Steven Wright
2
ipwa
<?php
if ($node->taxonomy) {
    foreach($node->taxonomy as $term) {
        if ($term->vid == 3) { // the id of the vocabulary
            $my_terms[] = l(
                t($term->name),
                'taxonomy/term/' . $term->tid
            );
        }
    }
}

if ($my_terms) { ?>
    <div class="clear-block">
        <div class="terms">
            <?php print implode(", ", $my_terms); ?>
        </div>
    </div>
<?php } ?>
0
brunorios1

Untuk pembatas dan pembungkus yang lebih mudah, Anda menggunakan modul Formatonomonomis Taksonomi: http://drupal.org/project/taxonomy_formatter

Lebih detail dari halaman proyek:

Ini adalah modul kecil yang ditulis untuk menyediakan formatter khusus untuk item taksonomi. Format default keduanya menghasilkan istilah yang dibungkus dengan div. Modul ini menambahkan formatter baru yang memungkinkan Anda menentukan jenis elemen, tipe pembungkus, kelas untuk keduanya, pemisah yang digunakan, dan apakah mereka terhubung ke halaman istilah atau tidak. Ini memberikan opsi tata letak yang jauh lebih dapat disesuaikan.

0
Greta