Điểm:1

Làm cách nào để áp dụng nofollow và target_blank trên các liên kết bên ngoài trong văn bản được tạo bằng CKEditor?

lá cờ cn

Khi tôi tạo một nút, tôi thường cần thêm liên kết đến các trang web bên ngoài trong văn bản.

Tôi muốn tất cả các liên kết bên ngoài mở trong tab mới và tôi muốn chúng có thuộc tính nofollow.

Trường nội dung sử dụng CKEditor.

Làm thế nào để áp dụng Không theotarget_blank trên các liên kết bên ngoài trong văn bản được tạo bằng CKEditor?

Điểm:1
lá cờ ru

Bạn có thể tự động thực hiện việc này bằng cách tạo bộ lọc văn bản của riêng mình trong một mô-đun tùy chỉnh.

Lưu ý rằng /** @Lọc ... */ ở phía trước lớp không phải là một bình luận, mà là một chú thích, nó phải được đưa vào tệp. Thay thế tất cả nội dung viết hoa ưa thích bằng mã của riêng bạn.

src/Plugin/Filter/MYFANCYFILTER.php

<?php

không gian tên Drupal\MY_MODULE\Plugin\Filter;

sử dụng Drupal\filter\FilterProcessResult;
sử dụng Drupal\filter\Plugin\FilterBase;
sử dụng Drupal\Thành phần\Tiện ích\Html;

/**
 * @Lọc(
 * id = "MY_FANCY_FILTER",
 * title = @Translation("Bộ lọc ưa thích của tôi"),
 * description = @Translation("Làm cho HTML đẹp hơn nữa"),
 * loại = Drupal\filter\Plugin\FilterInterface::TYPE_TRANSFORM_REVERSIBLE
 * )
 */
lớp MYFANCYFILTER mở rộng FilterBase {

  quy trình hàm công khai($text, $langcode) {
    $result = new FilterProcessResult($text);
    $dom = Html::load($text);
    $xpath = new \DOMXPath($dom);

    // để chọn tất cả các liên kết bạn phải tạo một truy vấn XPath 
    // truy vấn mẫu bên dưới chọn tất cả các thẻ <a> có thuộc tính "href"
    // xem https://www.w3schools.com/xml/xpath_syntax.asp
    foreach ($xpath->query("//a[@href]") dưới dạng $element) {
      // logic ví dụ bên dưới chấp nhận tất cả các liên kết bắt đầu bằng "http://" hoặc "https://" hoặc "//"
      if (preg_match('|^(https?:)?//.+|', $element->getAttribute('href')) === 1) {
        // xem https://www.php.net/manual/de/class.doelement.php
        // dành cho tài liệu về thao tác đánh dấu HTML
        $element->setAttribute('MY_ATTRIBUTE', 'MY_VALUE');
      }
    }
    $result->setProcessedText(Html::serialize($dom));
    trả lại kết quả $;
  }
}

Sau đó kích hoạt bộ lọc văn bản mới của bạn cho định dạng văn bản tương ứng trong
Cấu hình > Tác giả nội dung > Định dạng văn bản và trình chỉnh sửa

Điểm:0
lá cờ pw

Tôi đã thử thêm target="_blank" bằng cách sử dụng Text Format=Full HTML bằng cách sử dụng nút Nguồn.

Nó làm việc cho tôi.

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

Nếu bạn không muốn thủ công thì bạn có thể thử mô-đun sau https://www.drupal.org/project/editor_advanced_link

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

lá cờ cn
Cảm ơn, nhưng tôi biết cách thực hiện việc này theo cách thủ công, sẽ mất rất nhiều công sức đối với một trang đăng bài thường xuyên. Tôi muốn tự động thêm phần này vào các dây bên ngoài.

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