Puncte:1

Cum se aplică nofollow și target_blank pe linkurile externe din textul creat cu CKEditor?

drapel cn

Când creez un nod, adesea trebuie să adaug link-uri către site-uri web externe în text.

Vreau ca toate linkurile externe să se deschidă într-o filă nouă și vreau să aibă un nofollow.

Câmpul body folosește CKEditor.

Cum aplic nofollow și target_blank pe linkurile externe în textul creat cu CKEditor?

Puncte:1
drapel ru

Puteți face acest lucru automat prin crearea propriului filtru de text într-un modul personalizat.

Rețineți că /** @Filtru ... */ în fața clasei nu este un comentariu, ci o adnotare, trebuie inclusă în fișier. Înlocuiți toate elementele elegante cu majuscule cu propriul cod.

src/Plugin/Filter/MYFANCYFILTER.php

<?php

spațiu de nume Drupal\MY_MODULE\Plugin\Filter;

utilizați Drupal\filter\FilterProcessResult;
utilizați Drupal\filter\Plugin\FilterBase;
utilizați Drupal\Component\Utility\Html;

/**
 * @Filtru(
 * id = "MY_FANCY_FILTER",
 * title = @Translation ("Filtrul meu de lux"),
 * description = @Translation(„Face HTML-ul și mai elegant”),
 * tip = Drupal\filter\Plugin\FilterInterface::TYPE_TRANSFORM_REVERSIBLE
 * )
 */
clasa MYFANCYFILTER extinde FilterBase {

  proces de funcție publică ($text, $langcode) {
    $rezultat = new FilterProcessResult($text);
    $dom = Html::load($text);
    $xpath = nou \DOMXPath($dom);

    // pentru a selecta toate linkurile, trebuie să creați o interogare XPath 
    // exemplul de interogare de mai jos selectează toate etichetele <a> care au un atribut „href”.
    // vezi https://www.w3schools.com/xml/xpath_syntax.asp
    foreach ($xpath->query("//a[@href]") ca $element) {
      // exemplul logic de mai jos acceptă toate linkurile care încep cu „http://” sau „https://” sau „//”
      dacă (preg_match('|^(https?:)?//.+|', $element->getAttribute('href')) === 1) {
        // vezi https://www.php.net/manual/de/class.domelement.php
        // pentru documente despre manipularea markupului HTML
        $element->setAttribute('MY_ATTRIBUTE', 'MY_VALUE');
      }
    }
    $rezultat->setProcessedText(Html::serialize($dom));
    returnează $rezultat;
  }
}

Apoi activați noul dvs. filtru de text pentru formatul de text corespunzător în
Configurare > Crearea conținutului > Formate de text și editori

Puncte:0
drapel pw

Am încercat să adaug target="_blank" utilizând Text Format=Full HTML utilizând butonul Sursă.

La mine a funcționat.

introduceți descrierea imaginii aici

Dacă nu doriți manual, puteți încerca următorul modul https://www.drupal.org/project/editor_advanced_link

introduceți descrierea imaginii aici

drapel cn
Mulțumesc, dar știu cum să fac asta manual, este multă muncă pentru un site care postează regulat. Vreau să adaug asta automat pe leinele externe.

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.