web-gelistirme-sc.com

Sınıflandırma terimlerinin virgülle ayrılmış listesi gösterilsin mi?

Drupal 7.

Düğüm.tpl.php dosyamda, sınıflandırma terimlerinin bir listesini yazdırmak istiyorum (sınıflandırma "kanallar" olarak adlandırılır). Eğer kullanırsam:

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

Açıkçası işe yarıyor, ancak onları satır içi elde etmek için yapabileceğim en iyi şey, onları sollamak için CSS kullanmaktır. Virgülle ayrılmalarını istiyorum. Herhangi bir fikir?

Teşekkür.

10
Mike

field.tpl.php veya theme_field() kullanarak alanı temayı deneyebilirsiniz.

Örnek olarak (field.tpl.php Kullanarak):

  1. "Modüller/alan/tema" dan field.tpl.php Tema dizininize kopyalayın
  2. Bu dosyanın bir kopyasını oluşturun ve yeniden adlandırın field--field-channel.tpl.php
  3. Dosyayı istediğiniz gibi düzenleyin.

Bunun çalışması için hızlı/kirli bir örnek olarak, field--field-channel.tpl.php Şöyle görünebilir:

<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>

Muhtemelen .tpl dosyasını kullanarak bunu başarmanın birden çok yolu vardır, ancak bu sadece bir seçenektir. DIV'e bir stil yerine bir sınıf eklemenizi ve satır içi stilleri kullanmak yerine stil sayfanızda değişiklikler yapmanızı öneririm.

11
Laxman13

Text Formatter modülü artık Drupal 7 için kullanılabilir) ve bunu özel tema çalışması olmadan yapmanıza izin verir.

11
jhedstrom

İşte theme_field yaklaşım (bunu template.php dosya):

/**
 * 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

Bunu sadece CSS'de kolayca yapabilirsiniz:

. alan türü-taksonomi-terim-referans. alan-öğeleri. alan-madde {
 görüntüleme: satır içi blok; 
 * ekran: satır içi; 
 * zoom: 1; 
} 
. alan tipi-taksonomi-terim-referans .field-öğeleri .field-item: {
 içeriği: ","; 
} 
. alan-tipi-taksonomi-terim-referans .field-itemler .field-item: son-çocuk: {
 içeriği: ""; 
} 
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

Sınırlayıcı ve sarıcı için daha da kolay, Taksonomi Biçimlendirici modülünü kullanıyorsunuz: http://drupal.org/project/taxonomy_formatter

Proje sayfasından daha fazla ayrıntı:

Bu, sınıflandırma öğeleri için özel bir biçimlendirici sağlamak üzere yazılmış küçük bir modüldür. Varsayılan biçimlendiricilerin her ikisi de div olarak sarılmış terimleri çıkarır. Bu modül, öğe türünü, sarıcı türünü, her ikisi için sınıfları, kullanılan ayırıcıyı ve terim sayfalarına bağlantı verip vermemeyi belirtmenize izin veren yeni bir biçimlendirici ekler. Bu, çok daha özelleştirilebilir düzen seçenekleri sunar.

0
Greta