Рейтинг:2

Включить изменение размера изображения для всех изображений в ckeditor

флаг cg

Я использую Друпал 9.2.9,

У меня есть перенесенный контент из внешнего источника. есть некоторые <изображение теги,

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

введите описание изображения здесь

я даже пытался добавить рост вручную на <изображение тег, но ничего не появляется.

вопрос в том, как я могу включить изменение размера изображения для всех изображений в ckeditor?

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

Я понимаю, что плагин для изменения размера работает, если изображение имеет следующие атрибуты:

  • тип объекта данных = "файл"

  • объект данных-uuid =

Итак, что я сделал, я создаю пакетный процесс, просматриваю весь контент и нахожу изображение, а затем на основе изображения загружаю их UUID и файл заменил его.

что-то вроде следующего кода может помочь людям, у которых есть аналогичные требования:

if (preg_match_all('~<img.*?src=["\']+(.*?)["\']+~', $node->body->value, $matches)) {
            $URIS = array_unique($matches[1]);
            foreach ($URIS как $imgUri) {
              $imgUriDecoded = urldecode($imgUri);
              $node->body->value = str_replace($imgUri, $imgUriDecoded, $node->body->value);
              $fileData = self::getFileDataByUrl($imgUriDecoded);
              $fileUuid = "xxx-только для изменения размера";
              если ($fileData) {
                $fileUuid = $fileData->get('uuid')->значение ?? "xxx-только для изменения размера";
              }
              // пропустить Danger.jpg
              если ($fileUuid == "4f6db862-2c5d-4fb1-8d5b-830b89514af4") {
                Продолжить;
              }
              $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());
            }
          }
      $ узел-> setSyncing (ИСТИНА);
      $узел->сохранить();
    }

Следующий файл помогает получить файл по fileURI:

  статическая функция getFileDataByUrl($fileURI) {
    $file_name = \Drupal::service('file_system')->базовое имя($fileURI);
    $target_file = \Drupal::entityTypeManager()
      ->getStorage('файл')
      ->loadByProperties(['filename' => $file_name]);
    $file_data = сброс($target_file);
    если ($file_data) {
      возврат ($file_data);
    }
    еще {
      вернуть ЛОЖЬ;
    }
  }

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

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