Puncte:2

Activați redimensionarea imaginilor pentru toate imaginile din ckeditor

drapel cg

Folosesc Drupal 9.2.9,

Am un conținut migrat care provine dintr-o sursă externă. sunt cateva <img Etichete,

redimensionarea imaginii Ckeditor funcționează pentru imaginile pe care le introduc în editor pictograma de încărcare, dar pentru imaginile care provin din migrarea conținutului, redimensionarea nu este activată.

introduceți descrierea imaginii aici

Am încercat chiar să adaug înălţime manual la <img eticheta dar nu apare nimic.

întrebarea este că, cum pot activa redimensionarea imaginilor pentru toate imaginile din ckeditor?

Puncte:0
drapel cg

Îmi dau seama că pluginul de redimensionare funcționează dacă imaginea are următoarele atribute:

  • data-entity-type="fișier"

  • data-entity-uuid=

Așa că, ceea ce am făcut, creez un proces în lot și trec prin tot conținutul și găsesc imaginea, apoi pe baza imaginii le încărc uuid și fișierul l-a înlocuit.

ceva de genul următor cod poate ajuta oamenii care au cerințe similare:

if (preg_match_all('~<img.*?src=["\']+(.*?)["\']+~', $node->body->value, $match)) {
            $URIS = array_unique($potriviri[1]);
            foreach ($URIS ca $imgUri) {
              $imgUriDecoded = urldecode($imgUri);
              $nod->body->value = str_replace($imgUri, $imgUriDecoded, $node->body->value);
              $fileData = self::getFileDataByUrl($imgUriDecoded);
              $fileUuid = "xxx-doar-pentru-redimensionare";
              dacă ($fileData) {
                $fileUuid = $fileData->get('uuid')->value ?? „xxx-doar-pentru-redimensionare”;
              }
              // sări peste pericol.jpg
              dacă ($fileUuid == "4f6db862-2c5d-4fb1-8d5b-830b89514af4") {
                continua;
              }
              $inlocuire = sprintf('<img data-entity-type="file" data-entity-uuid="%s"', $fileUuid);
              $nod->corp->valoare = str_replace("<img ", $inlocuire, $nod->corp->valoare);
              \Drupal::messenger()->addStatus($node->id());
            }
          }
      $node->setSyncing(TRUE);
      $nod->salvare();
    }

Următorul fișier ajută la obținerea fișierului după fileURI:

  funcția statică getFileDataByUrl($fileURI) {
    $file_name = \Drupal::service('file_system')->basename($fileURI);
    $target_file = \Drupal::entityTypeManager()
      ->getStorage('fișier')
      ->loadByProperties(['filename' => $file_name]);
    $file_data = resetare($target_file);
    dacă ($fișier_date) {
      return ($fișier_date);
    }
    else {
      returnează FALSE;
    }
  }

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.