Рейтинг:0

Как автоматически добавить заголовок к импортированным объектам?

флаг cn

У меня есть сайт с большим количеством аудиофайлов (с использованием ядра Медиа аудио тип носителя).

На Управление отображением формы страница администратора (/admin/structure/media/manage/audio/form-fields), я установил Имя поле для Неполноценный.

Таким образом, когда я добавляю медиа-аудиообъект в пользовательский интерфейс (в /медиа/добавить/аудио), то мне не нужно добавлять заголовок, а имя объекта будет автоматически установлено на имя файла.

Теперь я хочу автоматизировать создание медиа-аудиообъекта с помощью Модуль фидов. Я настроил тип канала + канал для своих медиа-аудиообъектов. Я импортирую файлы CSV из каталога.

Я использовал следующие сопоставления:

  • Идентификатор файла + описание файла для поля мультимедиа field_media_audio_file
  • Код для текстового поля field_import_id (для чего я установил уникальный возможность отслеживать импорт)

Однако, когда я пытаюсь импортировать канал, я получаю эту ошибку:

Имя (имя): это значение не должно быть нулевым.

Как я могу отключить эту проверку (проверку поля «Имя») модулем «Каналы» для медиа-аудиообъектов?

В качестве обходного пути я могу создать столбец в CSV-файле и перечислить все имена файлов, но это приведет к дублированию информации и риску появления опечаток.

Рейтинг:1
флаг in

Почему бы не использовать Подделка каналов назначить имя по умолчанию?

Рейтинг:0
флаг cn

Есть конечно более изящный способ сделать это, но пока я решил пропатчить сам валидатор в /feeds/src/Feeds/Processor/EntityProcessorBase.php:

если ($метка || $метка === '0' || $метка === 0) {
  $messages[] = $this->t('Метка @entity % не прошла проверку со следующими ошибками: @errors', $args);
  если (mb_strtolower($this->entityTypeLabel()) === 'медиа') {
    // Заголовок носителя будет автоматически установлен на имя файла, так что разрешите это.
    возвращаться;
  }
}
sonfd avatar
флаг in
`mb_strtolower($this->entityTypeLabel()) === 'media'` - мне это странно. Конечно, вы можете просто получить имя машины типа сущности. Например, `$this->entityTypeId()`
флаг cn
@sonfd Да, мне тоже это показалось странным. Но это то, как сам модуль Feeds делает это в коде непосредственно выше, поэтому я решил придерживаться того же кода, что и сам модуль.
Рейтинг:0
флаг cn

Фиды имеют предварительно сохранить и превалидировать События. Итак, еще один способ приблизиться к этому - добавить подписчик событий (пример кода от сопровождающего).

В этом случае проверка может быть переопределена с помощью PROCESS_ENTITY_PREVALIDATE.

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

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