Как показать поле описания терминов таксономии на узле /добавить форму вместо названия термина только в drupal 7?

Я немного беспокоюсь, что вы не можете указать, какие поля терминов таксономии отображаются при добавлении нового узла и перечислены термины.

Там будет куча терминов, которые пользователь должен выбрать. Тем не менее, иногда только показ названия терминов не будет достаточным, поэтому я хотел бы также показать описание терминов при добавлении нового узла.

Как вы можете это сделать?

6 голосов | спросил Alex 30 Jpm1000000pmWed, 30 Jan 2013 19:43:14 +040013 2013, 19:43:14

4 ответа


2

Следующее решение немного изменяет ваше требование. Вместо того, чтобы поле описания терминов отображалось как часть виджета выбора термина, создайте блок просмотра, который должен быть видимым на узлах /добавьте страницы, который предоставляет список таблиц каждого термина и его поля описания.

Чтобы сделать это, создайте новый вид типа «Таксономия». Он будет иметь два поля: термин таксономии и определение термина таксономии.

Вы можете поместить текст справки, связанный с полем term_reference, который предупреждает пользователя о блоке, который содержит термины и описание.

Было бы очень сложно изменить любой виджет выбора, чтобы включить поле описания таким образом, чтобы не было беспорядка страницы.

ответил Shai 7 52014vEurope/Moscow11bEurope/MoscowFri, 07 Nov 2014 01:26:13 +0300 2014, 01:26:13
1

Чтобы отобразить описание таксономии вместо имени на одной странице узла, вы можете использовать это в своем файле template template.php:

function mytheme_preprocess_field(&$variables) {
  if ($variables['element']['#field_name'] == 'field_taxonomyfieldname') {
    if (isset($variables['element']['#items'][0]['taxonomy_term']->description)) {
      $variables['items'][0]['#markup'] = $variables['element']['#items'][0]['taxonomy_term']->description;
    }
  }
}

Обязательно измените mytheme, field_taxonomyfieldname на свою собственную тему и имена полей, а затем очистите тайники Drupal перед тестированием.

ответил Vali Hutchison 12 FebruaryEurope/MoscowbFri, 12 Feb 2016 12:50:18 +0300000000pmFri, 12 Feb 2016 12:50:18 +030016 2016, 12:50:18
0

Вы можете использовать модуль референтного дерева терминов , это дает вам функцию таксономической функции темы , Создайте подтему из семи и переопределите функцию темы в template.php. В приведенном ниже примере я также использую настраиваемый модуль, который преобразует класс .tipsy в tooltip, поэтому описание терминов таксономии появляется после нажатия или наведения на всплывающую подсказку в форме добавления узла, но вы, конечно же, можете просто распечатать описание $.

/**
 * This function prints a single item in the tree, followed by that item's children
 * (which may be another checkbox_tree_level).
 */
function seven_subtheme_checkbox_tree_item($variables) {
    $element = $variables['element'];
    $children = element_children($element);
    $output = "";

    $sm = $element['#level_start_minimized'] ? ' term-reference-tree-collapsed' : '';

    if (is_array($children) && count($children) > 1) {
      $output .= "<div class='term-reference-tree-button$sm'></div>";
    }
    elseif (!$element['#leaves_only']) {
      $output .= "<div class='no-term-reference-tree-button'></div>";
    }

    foreach ($children as $child) {
      // $child is the tid
      $term = taxonomy_term_load($child);
      $description = trim(strip_tags($term->description));
      if (!empty($description)) {
        $tooltip = l('ⓘ', '#', array(
          'attributes' => array(
            'class' => array('tipsy'),
            'title' => $description,
          )
        ));
      }
      $output .= drupal_render($element[$child]) . $tooltip;
    }

    return $output;
}
ответил Hans Rossel 24 AM00000080000004331 2017, 08:18:43
-1

возможное решение, которое вы можете пропустить через каждый элемент и получить описание рядом с именем термина.

ответил sam2de 20 FriEurope/Moscow2013-12-20T22:25:55+04:00Europe/Moscow12bEurope/MoscowFri, 20 Dec 2013 22:25:55 +0400 2013, 22:25:55

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132