Điểm:0

Làm cách nào để tự động thêm tiêu đề vào các thực thể đã nhập?

lá cờ cn

Tôi có một trang web có rất nhiều tệp âm thanh (sử dụng lõi âm thanh đa phương tiện loại phương tiện).

trên Quản lý biểu mẫu hiển thị Trang quản trị (/admin/cấu trúc/phương tiện/quản lý/âm thanh/trường biểu mẫu), tôi đã đặt Tên lĩnh vực để Vô hiệu hóa.

Bằng cách này, khi tôi thêm một thực thể âm thanh đa phương tiện trong giao diện người dùng (tại /phương tiện/thêm/âm thanh), thì tôi không phải thêm tiêu đề và tên thực thể sẽ tự động được đặt thành tên tệp.

Bây giờ tôi muốn tự động tạo thực thể âm thanh đa phương tiện bằng mô-đun nguồn cấp dữ liệu. Tôi đã định cấu hình loại nguồn cấp dữ liệu + nguồn cấp dữ liệu cho thực thể âm thanh phương tiện của mình. Tôi đang nhập tệp CSV từ một thư mục.

Tôi đã sử dụng các ánh xạ sau:

  • ID tệp + Mô tả tệp cho trường phương tiện trường_media_audio_file
  • Mã cho trường văn bản trường_nhập_id (mà tôi đặt duy nhất tùy chọn để theo dõi nhập khẩu)

Tuy nhiên, khi tôi cố gắng nhập nguồn cấp dữ liệu, tôi gặp lỗi này:

Name (tên): Giá trị này không được rỗng.

Làm cách nào tôi có thể tắt xác thực này (kiểm tra trường Tên) bằng mô-đun Nguồn cấp dữ liệu cho các thực thể âm thanh đa phương tiện?

Như một giải pháp thay thế, tôi có thể tạo một cột trong tệp CSV và liệt kê tất cả các tên tệp, nhưng điều này dẫn đến thông tin trùng lặp và có nguy cơ mắc lỗi chính tả.

Điểm:1
lá cờ in

Tại sao không sử dụng Giả mạo nguồn cấp dữ liệu để gán một Tên mặc định?

Điểm:0
lá cờ cn

Nguồn cấp dữ liệu có lưu trướcxác nhận sự kiện. Vì vậy, một cách khác để tiếp cận điều này là thêm một người đăng ký sự kiện (mã mẫu từ người bảo trì).

Trong trường hợp này, xác thực có thể được ghi đè bằng PROCESS_ENTITY_PREVALIDATE.

Điểm:0
lá cờ cn

Chắc chắn có một cách tao nhã hơn để làm điều này, nhưng bây giờ tôi quyết định vá chính trình xác thực trong /feeds/src/Feeds/Processor/EntityProcessorBase.php:

if ($nhãn || $nhãn === '0' || $nhãn === 0) {
  $messages[] = $this->t('Nhãn @entity %không thể xác thực với các lỗi sau: @errors', $args);
  if (mb_strtolower($this->entityTypeLabel()) === 'media') {
    // Phương tiện sẽ tự động đặt tiêu đề thành tên tệp, vì vậy hãy cho phép điều này.
    trở lại;
  }
}
sonfd avatar
lá cờ in
`mb_strtolower($this->entityTypeLabel()) === 'media'` - điều này lạ đối với tôi. Chắc chắn bạn chỉ có thể lấy tên máy của loại thực thể. Ví dụ: `$this->entityTypeId()`
lá cờ cn
@sonfd Vâng, nó cũng có vẻ lạ đối với tôi. Nhưng đó là cách mà chính mô-đun Nguồn cấp dữ liệu đang thực hiện trong đoạn mã ngay phía trên, vì vậy tôi quyết định sử dụng mã giống như chính mô-đun đó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.