1. Главная
  2. Форумы
  3. Техподдержка Drupal
  4. Решение проблем

Как сгенерировать термины таксономии?

Главные вкладки

Добрый день!

Есть словарь термина таксономии, в нем родительский термин, например MOV. Необходимо для этого термина сгенерировать 50 дочерних терминов, от MOV200 до MOV250. Должно получиться MOV200, MOV201...MOV250. Подскажите пожалуйста как это сделать быстро? Т.е. тут все по шаблону. Вручную вводить не вариант, т.к. сейчас их 50, а может будет 5000. Видел, есть модуль, но старый (для 7-й версии Друпал, а у меня 11).

Лучший ответ

Аватар пользователя VasyOK VasyOK 20 февраля в 1:05
1

Через Feeds можно.
Составить в табличном редакторе файл с ячейками от MOV200 до MOV250
Родительский термин задать либо в табличном файле либо создать поле с именем термина у фида.

Комментарии

Аватар пользователя OldWarrior OldWarrior 19 февраля в 19:40

Будь это ноды, а не термины, то что-то можно было бы намутить с помощью, например, Serial Field, используя его в качестве источника для формирования каких-то токенов, которые в дальнейшем можно было использовать в свою очередь в модулях типа Automatic Entity Label.

Но всё это как-то ещё может заработает для content-type сущностей, но насчёт терминов - скорее всего вряд ли. Да и связка из двух модулей длинная и не очень-то удобная для решения одной простой задач.

Аватар пользователя kosskren kosskren 19 февраля в 21:47
1

Можете программно создать термины. Код ниже, можно вставить в хук page к примеру. Код от Druapl 8, но думаю и на более свежих версиях отработает.

<?php
for ($i = 200; $i <= 250; $i++) {
$term = \Drupal\taxonomy\Entity\Term::create([
// Системное название словаря
'vid' => 'regions_cities',
// TID родительского термина ( MOV )
'parent' => 7,
// Название термина
'name' => 'MOV' .$i
]); $term->enforceIsNew();
$term->save();

// Получаем TID если нужно
$tid = $term->id();
}
?>

Еще есть модуль Devel, в нем подмодуль Generate. Можете через него создать термины, правда я не пользовался, не знаю подходит ли вам его функционал.

Аватар пользователя VasyOK VasyOK 20 февраля в 1:05
1

Через Feeds можно.
Составить в табличном редакторе файл с ячейками от MOV200 до MOV250
Родительский термин задать либо в табличном файле либо создать поле с именем термина у фида.

Аватар пользователя Delewo Delewo 24 февраля в 4:13

VasyOK wrote: Через Feeds можно.

А можете подсказить пример CSV-файла для импорта? Пытаюсь сделать через CSV, но при импорте постоянно пишет, что требуется Название, и ничего не импортируется. Видимо, я неправильно составляю CSV-файл.

Аватар пользователя Delewo Delewo 23 февраля в 15:53

Спасибо за советы, сейчас пытаюсь установить Feeds. Думаю, это модуль наиболее мне подойдет. Я не пользуюсь composer, устанавливаю копированием каталога с модулем в modules, в админке в списке модулей нахожу Feeds, ставлю галочку и Установить. Далее никаких ошибок, страница просто перезагружается. Другие модули подобным образом устанавливаются без проблем. Не хочется устанавливать никак композеры, драши и прочее. Можно ли установить Feeds устаревшим способом?

Аватар пользователя VasyOK VasyOK 24 февраля в 1:11

Delewo wrote: Не хочется устанавливать никак композеры, драши и прочее.

Извините по другому нельзя. Даже если заработает - дотянет до первой unexpected error, которая лечится драшем. А Драш ставится через Композер. Композер - это не сложно - всего 3 команды.

Аватар пользователя Delewo Delewo 24 февраля в 4:17

Да, Композер пришлось установить)
Сейчас пытаюсь импортировать, вроде все создал, но при импорте постоянно пишет, что требуется "Название", и ничего не импортируется. Видимо, я неправильно составляю CSV-файл? Мне нужно просто чтобы в названии термина было MOV200, и т.д. Все остальные поля должны быть пустые. Каким в этом случае должен быть CSV-файл?

Логотип drupal.ru

Содержимое сайта публикуется на условиях CreativeCommons Attribution-ShareAlike 3.0 или более поздней версии. Программные коды в тексте статей — на условиях GNU GPL v2 или более поздней версии.

Документация по совместной работе с репозиторием drupal.ru – https://docs.drupal.ru/code

Drupal – торговая марка Дриса Бёйтарта

12+

AltStyle によって変換されたページ (->オリジナル) /