web-dev-qa-db-fra.com

Existe-t-il une configuration avancée pour CKEditor dans Drupal 8?

Dans Drupal 7, j'ai pu ajouter des règles de configuration à CKEditor dans l'administrateur (comme config.allowedContent = true; par exemple). Je ne trouve pas cette option dans Drupal 8. Est-il possible de faire quelque chose de similaire?

7
keszthelyi

En ce qui concerne "allowedContent", cela est défini sur true si vous ne cochez pas "Limiter les balises HTML autorisées et corriger le HTML défectueux" (ou un autre filtre de type FilterInterface :: TYPE_HTML_RESTRICTOR) sur votre format de texte, sinon il génère les balises vous y avez ajouté.

enter image description here

Pour plus d'informations à ce sujet, vous pouvez consulter:

ckeditor/src/Plugin/CKEditorPlugin/Internal: getConfig ()

et

ckeditor/src/Plugin/CKEditorPlugin/Internal: generateACFSettings ()

Si vous souhaitez remplacer la méthode Internal: getConfig, vous pouvez créer une nouvelle classe qui l'étend, puis remplacer la classe à l'aide de hook_ckeditor_plugin_info_alter ().

function mymodule_ckeditor_plugin_info_alter(array &$plugins) {
  $plugins['internal']['class'] = 'Drupal\mymodule\Plugins\CKEditorPlugin\CustomInternal';
}

Et puis votre classe de remplacement personnalisée:

<?php

namespace Drupal\mymodule\Plugins\CKEditorPlugin;

use Drupal\ckeditor\Plugin\CKEditorPlugin\Internal;
use Drupal\editor\Entity\Editor;

/**
 * Allow custom config settings.
 *
 * @CKEditorPlugin(
 *   id = "custom_internal",
 *   label = @Translation("Custom CKEditor core")
 * )
 */
class CustomInternal extends Internal {

  /**
   * {@inheritdoc}
   */
  public function getConfig(Editor $editor) {

    $config = parent::getConfig($editor);

    // Put your custom configs here.
    $config['allowedContent'] = TRUE;

    return $config;
  }

}
10
oknate

Désolé d'ajouter ceci comme réponse. Je vais essayer de le déplacer vers un commentaire dès que j'aurai assez de "Drupal 8 Stack Exchange Cred" pour commenter (* ugh * réputation * grogne *)

OP: Avez-vous déjà obtenu une réponse indiquant s'il existe un module ou un moyen simple d'ajouter à nouveau le champ "Configuration avancée de CKEditor" dans Drupal 8? Drupal 7 l’avait - et c’est une chose très utile. Drupal 8 semble avoir régressé dans Ceci concerne :/

J'ai cherché haut et bas et il semble que personne n'ait mis en œuvre quoi que ce soit pour retourner cette option aux formats de texte dans Drupal 8.

Il existe un module appelé CKEditor Config, qui se rapproche ( https://www.drupal.org/project/ckeditor_config ), mais il permet uniquement de remplacer la configuration de CKEditor globalement (pour tous les profils de texte).

S'il n'y a rien d'autre, j'essaierai de publier un problème demandant à l'auteur de ce module s'il envisagerait d'ajouter la prise en charge de la configuration du format par texte (ou chercher à l'ajouter moi-même un jour). Il semble que tout le monde ait opté pour l'approche de substitution de la configuration de CKEditor avec diverses implémentations de hook dans des modules personnalisés, mais un champ "configuration avancée" serait un gain de temps précieux maintenant, compte tenu de Drupal 8's capacités de gestion de config snazzy.

4
Daniel Scott