Điểm:2

Kích hoạt tính năng thay đổi kích thước hình ảnh cho tất cả các hình ảnh trong ckeditor

lá cờ cg

Tôi đang sử dụng Drupal 9.2.9,

Tôi có một số nội dung được di chuyển đến từ một nguồn bên ngoài. có vài <img thẻ,

trình thay đổi kích thước hình ảnh Ckeditor đang hoạt động đối với những hình ảnh tôi chèn vào trình chỉnh sửa biểu tượng tải lên nhưng đối với những hình ảnh đến từ quá trình di chuyển nội dung, trình thay đổi kích thước không được bật.

nhập mô tả hình ảnh ở đây

Tôi thậm chí đã cố gắng thêm Chiều cao thủ công để <img thẻ nhưng không có gì xuất hiện.

câu hỏi đặt ra là, làm cách nào tôi có thể kích hoạt trình chỉnh lại kích thước hình ảnh cho tất cả các hình ảnh trong ckeditor?

Điểm:0
lá cờ cg

Tôi nhận ra plugin resizer hoạt động nếu hình ảnh có các thuộc tính sau:

  • data-entity-type="file"

  • dữ liệu-thực thể-uuid=

Vì vậy, những gì tôi đã làm, tôi tạo một quy trình hàng loạt và xem qua tất cả nội dung và tìm hình ảnh, sau đó dựa trên hình ảnh tôi tải chúng uuid và tập tin thay thế nó.

một cái gì đó giống như đoạn mã sau có thể giúp những người có yêu cầu tương tự:

if (preg_match_all('~<img.*?src=["\']+(.*?)["\']+~', $node->body->value, $matches)) {
            $URIS = array_unique($matches[1]);
            foreach ($URIS dưới dạng $imgUri) {
              $imgUriDecoded = urldecode($imgUri);
              $node->body->value = str_replace($imgUri, $imgUriDecoded, $node->body->value);
              $fileData = self::getFileDataByUrl($imgUriDecoded);
              $fileUuid = "xxx-chỉ để thay đổi kích thước";
              nếu ($fileData) {
                $fileUuid = $fileData->get('uuid')->value ?? "xxx-chỉ để thay đổi kích thước";
              }
              // bỏ qua Danger.jpg
              if ($fileUuid == "4f6db862-2c5d-4fb1-8d5b-830b89514af4") {
                tiếp tục;
              }
              $replacement = sprintf('<img data-entity-type="file" data-entity-uuid="%s"', $fileUuid);
              $node->body->value = str_replace("<img ", $replacement, $node->body->value);
              \Drupal::messenger()->addStatus($node->id());
            }
          }
      $node->setSyncing(TRUE);
      $node->save();
    }

Tệp sau đây giúp lấy tệp bằng fileURI:

  hàm tĩnh getFileDataByUrl($fileURI) {
    $file_name = \Drupal::service('file_system')->basename($fileURI);
    $ target_file = \Drupal::entityTypeManager()
      ->getStorage('tệp')
      ->loadByProperties(['filename' => $file_name]);
    $file_data = đặt lại($target_file);
    nếu ($file_data) {
      trả về ($file_data);
    }
    khác {
      trả về SAI;
    }
  }

Đă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.