CMS Drupal

Использовал в работе два модуля: content_taxonomy и модуль auto_nodetitle. В настройке типа материала настраиваю автозаголовок при помощи шаблонов(token). Модуль content_taxonomy предоставляет в распоряжение шаблон "Names of all taxonomy terms separated by commas" (Перечисленные через запятую термины словаря). И по идее термины должны бы идти от верхнего уровня к нижнему, а тут сделано все наоборот.

Кроме того, есть еще один шаблон, который называется "Name of top taxonomy term" (Имя термина верхнего уровня), но выводится термин самого нижнего уровня. Можно конечно завести свой модуль и сделать свой шаблон, но я решил не заморачиваться и предлгаю вариант поправки модуля content_taxonomy, а именно файла content_taxonomy.token.inc

function content_taxonomy_token_values($type, $object = NULL) {
  if ($type == 'field') {
    $items = $object;
    $terms = array();
    $tids = array();
 
    foreach ($items as $item) {
      $tid = $item['value'];
      if ($tid) {
        $term = taxonomy_get_term($tid);
        $tids[] = $tid;
        $terms[] = $term->name;
        $vid = $term->vid;
      }
    }
    if ($vid) {
      $vocabulary = taxonomy_vocabulary_load($vid);
    }
 
// XA
array_change_key_case($terms);
rsort($terms);
array_change_key_case($terms);
//    XA
 
    $tokens['terms-raw'] = implode(', ', $terms);
    $tokens['terms'] = check_plain($tokens['terms-raw']);
    $tokens['tids']  = implode(', ', $tids);
    $tokens['term-raw']  = $terms[0];
    $tokens['term']  = check_plain($tokens['term-raw']);
    $tokens['tid']   = $tids[0];
    $tokens['vocab'] = isset($vocabulary) ? $vocabulary->name : '';
    $tokens['vid']   = $vid;
 
    return $tokens;
  }
}

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <1c7>, <drupal5>, <drupal6>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".