web-dev-qa-db-ja.com

Drupal 7の分類用語のタイトル出力にhtmlを追加する方法は?

私はそれを理解できません。用語のタイトル出力を変更するにはどうすればよいですか?選択した用語を表示するコンテンツタイプがあります。用語はリンクとして表示されます。これを変更するにはどうすればよいですか:

_<div class="field-item even">
    <a href="/category/fe-sub">FE-Sub</a>
</div>
_

このようなものに:

_<div class="field-item even">
    <a href="/category/fe-sub">
        <strong>FE-Sub</strong>
    </a>
</div>
_

編集:mymodule_preprocess_field(&$variables)で試してみましたが、htmlを入力できません。 "-Element

_function proposals_preprocess_field(&$variables) {
    if (isset($variables) && isset($variables['items']['0']['#options']['entity_type']) && $variables['items']['0']['#options']['entity_type'] == 'taxonomy_term') {
        $variables['items']['0']['#title'] = '<b>'.$variables['items']['0']['#title'].'</b>';
    }
}
_

リンクテキストをレンダリングします。

用語タイトルの代わりに_<strong>term title</strong>_

編集:これが私がそれを機能させる方法です:あなたのtemplate.phpで:

_function yourtheme_field__taxonomy_term_reference($variables) {
  $output = '';

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

  // Render the items.
  $output .= ($variables['element']['#label_display'] == 'inline') ? '<ul class="links inline">' : '<ul class="links">';

  foreach ($variables['items'] as $delta => $item) {
    // allow html
    $item['#options']['html'] = TRUE;
    // set html
    $item['#title'] = '<span class="label label-info">'.$item['#title'].'</span>';

    $output .= '<li class="taxonomy-term-reference-' . $delta . '"' . $variables['item_attributes'][$delta] . '>' . drupal_render($item) . '</li>';
  }
  $output .= '</ul>';

  // Render the top-level DIV.
  $output = '<div class="' . $variables['classes'] . (!in_array('clearfix', $variables['classes_array']) ? ' clearfix' : '') . '"' . $variables['attributes'] .'>' . $output . '</div>';

  return $output;
}
_
1
Alex

分類用語の出力を変更するには、以下の関数を使用できます。これはbatrikテーマから取得されているため、関数mytheme_field__taxonomy_term_referenceを使用します

用語change #markupのマークアップを変更するには、デフォルト値は

<a href="/drupal7/class/class-1" typeof="skos:Concept" property="rdfs:label skos:prefLabel">term name</a>

に変更

 $item[#markup] = '<a href="/drupal7/class/class-1" typeof="skos:Concept" property="rdfs:label skos:prefLabel"><strong>term name</strong></a>'

function batrik_field__taxonomy_term_reference($variables) {
  $output = '';

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

  // Render the items.
  $output .= ($variables['element']['#label_display'] == 'inline') ? '<ul class="links inline">' : '<ul class="links">';
  foreach ($variables['items'] as $delta => $item) {
    $output .= '<li class="taxonomy-term-reference-' . $delta . '"' . $variables['item_attributes'][$delta] . '>' . drupal_render($item) . '</li>';
  }
  $output .= '</ul>';

  // Render the top-level DIV.
  $output = '<div class="' . $variables['classes'] . (!in_array('clearfix', $variables['classes_array']) ? ' clearfix' : '') . '"' . $variables['attributes'] .'>' . $output . '</div>';

  return $output;
}
1