Функция для разделения терминов таксономии - PullRequest
0 голосов
/ 17 марта 2011
 function garland_separate_terms($node_taxonomy) {
   if ($node_taxonomy) {

foreach ($node_taxonomy AS $term) {
 $links[$term->vid]['taxonomy_term_'. $term->tid] = array(
   'title' => $term->name, 
  'href' => taxonomy_term_path($term),
'attributes' => array(
   'rel' => 'tag',
   'title' => strip_tags($term->description)
   ),
 );
}
   //theming terms out
     foreach ($links AS $key => $vid) {
 $terms[$key] = theme_links($vid);
   }
  }
      return $terms;
    }

Я не очень хорошо понимаю эту функцию.

  1. , почему автор не объявляет $ node_taxonomy как массив ($node_taxonomy=array()).
  2. , где это$links[$term->vid]['taxonomy_term_'. $term->tid] откуда?

1 Ответ

1 голос
/ 17 марта 2011

Он ожидает, что $node_taxonomy будет содержать все термины определенного узла. Each term is an object that contains attributes like vid,tid,name,description and path.

$ links - это новый массив, который он создает.

Таким образом, в основном, если конкретный узел имеет термины a1, a2, a3 из словаря a и термины b1, b2 из словаря b, массив сохранит его как

$links[a][a1] = details of a1 to convert into link

$links[a][a2] = details of a2 to convert into link

$links[a][a3] = details of a3 to convert into link

$links[b][b1] = details of b1 to convert into link

$links[b][b2] = details of b2 to convert into link

Наконец, он объединяет каждый элемент $ links с помощью функции theme_links ().

Итак, наконец, вы получаете список всех терминов в виде ссылок, сгруппированных по словарям.

...