Score:2

เปิดใช้งานตัวปรับขนาดรูปภาพสำหรับรูปภาพทั้งหมดใน ckeditor

ธง cg

ฉันใช้ Drupal 9.2.9

ฉันมีเนื้อหาที่ย้ายบางส่วนซึ่งมาจากแหล่งภายนอก มีบางอย่าง <img แท็ก,

ตัวปรับขนาดรูปภาพ Ckeditor กำลังทำงานกับรูปภาพที่ฉันใส่ไอคอนอัปโหลดลงในเครื่องมือแก้ไข แต่สำหรับรูปภาพที่มาจากการย้ายเนื้อหา ตัวปรับขนาดไม่ได้เปิดใช้งาน

ป้อนคำอธิบายรูปภาพที่นี่

ฉันพยายามเพิ่มด้วยซ้ำ ความสูง ด้วยตนเองไปที่ <img แท็ก แต่ไม่มีอะไรปรากฏขึ้น

คำถามคือ ฉันจะเปิดใช้งานตัวปรับขนาดรูปภาพสำหรับรูปภาพทั้งหมดภายใน ckeditor ได้อย่างไร

Score:0
ธง cg

ฉันพบว่าปลั๊กอิน resizer ใช้งานได้หากรูปภาพมีแอตทริบิวต์ต่อไปนี้:

  • ข้อมูลเอนทิตีประเภท = "ไฟล์"

  • data-entity-uuid=

สิ่งที่ฉันทำ ฉันสร้างกระบวนการแบทช์และค้นหาเนื้อหาทั้งหมดและค้นหารูปภาพ จากนั้นอิงตามรูปภาพที่ฉันโหลด ยูอิด และไฟล์แทนที่

บางอย่างเช่นรหัสต่อไปนี้อาจช่วยผู้ที่มีความต้องการคล้ายกัน:

ถ้า (preg_match_all('~<img.*?src=["\']+(.*?)["\']+~', $node->body->value, $match)) {
            $URIS = array_unique($ตรงกัน[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());
            }
          }
      $node->setSyncing(จริง);
      $node->save();
    }

ไฟล์ต่อไปนี้ช่วยในการรับไฟล์โดย fileURI:

  ฟังก์ชันคงที่ getFileDataByUrl($fileURI) {
    $file_name = \Drupal::service('file_system')->ชื่อฐาน($fileURI);
    $target_file = \Drupal::entityTypeManager()
      ->getStorage('ไฟล์')
      ->loadByProperties(['ชื่อไฟล์' => $file_name]);
    $file_data = รีเซ็ต ($target_file);
    ถ้า ($file_data) {
      กลับ ($ file_data);
    }
    อื่น {
      กลับ FALSE;
    }
  }

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา