web-dev-qa-db-fra.com

Attachez WYSIWYG à Drupal Form

Avec un formulaire personnalisé Drupal, comment pouvez-vous associer la fonctionnalité WYSIWYG à une zone de texte avec le module WYSIWYG?

12
Kevin

revoir cette indication à Drupal 7 (avec une petite indication à drupal 6) http://drupal.org/node/103116 =. est spécifiquement sur la façon d'afficher un éditeur dans textarea dans drupal 7, donc je suppose que cela pourrait être utile pour commencer (il semble que le dernier commentaire ait une méthode testée).

peut être pourrait être une alternative pour le faire à la place/avec WYSIWYG.

2
cigotete

Le module wysiwyg est lié au système de format d'entrée.

Utilisation '#type' => 'text_format' lors de la définition de votre zone de texte.

8
Dylan Tack

Vous devez utiliser type = 'text_format' au lieu de la zone de texte. et format = 'editor_format'. Le code ressemblera à ceci.

$form['description'] = array(
  '#type' => 'text_format',
  '#title' => t('Description'),
  '#format' => 'full_html' //the format used for editor.
);
7
Paulson Peter

Voici le mien:

$form['my_module_my_form_my_field'] = array(
  '#type' => 'text_format',
  '#title' => t('Awesome title'),
  '#format' => isset($edit['format']) ? $edit['format'] : NULL,
  '#base_type' => 'textarea',
  '#default_value' => variable_get('my_module_my_form_my_field', '')['value'],
  '#description' => t("Awesome description."),
  '#required' => FALSE,
  '#maxlength' => 500,
);

J'ai dû ajouter le ['value'] à la #default_value car il n'a pas été chargé après avoir été enregistré.

Référence de l'API Form 7x

Le module WYSIWYG n'est qu'un moyen d'utiliser l'un des nombreux éditeurs wysiwyg disponibles. Une fois que vous avez installé le module wysiwyg ( http://drupal.org/project/wysiwyg ), accédez à la configuration du module (admin/config/content/wysiwyg). Des instructions d'installation seront disponibles pour de nombreux éditeurs Wysiwyg. Par exemple, pour FCKeditor, il dit ce qui suit:

Extrayez l'archive et copiez son contenu dans un nouveau dossier à l'emplacement suivant: sites/all/bibliothèques/fckeditor

Ainsi, la bibliothèque réelle peut être trouvée sur: sites/all/bibliothèques/fckeditor/fckeditor.js

Alors, téléchargez l'éditeur, extrayez l'archive dans le répertoire donné. Une fois que vous avez fait cela (en supposant que vous l'avez fait correctement), vous pourrez changer l'éditeur pour les formats d'entrée donnés sur l'écran de configuration de Wysiwyg. Vous devrez ensuite affecter différentes opérations pour chaque type (HTML filtré, HTML complet, etc.). Cliquez sur "Modifier" sous opérations dans admin/config/content/wysiwyg dans la ligne pour le format d'entrée qui vous intéresse. À partir de là, vérifiez quels boutons vous voulez.

0
mrryanjohnston

Il ne semble pas que cela soit possible avec Wysiwyg version 7.x-2, mais le générateur de formulaire pour les paramètres de profil utilise le tableau suivant:

  $profile['settings'] += array(
    'default' => TRUE,
    'user_choose' => FALSE,
    'show_toggle' => TRUE,
    'theme' => 'advanced',
    'language' => 'en',
    'access' => 1,
    'access_pages' => "node/*\nuser/*\ncomment/*",
    'buttons' => array(),
    'toolbar_loc' => 'top',
    'toolbar_align' => 'left',
    // ...
  );

L'index du tableau "access_pages" permettrait de définir pour quelles pages l'éditeur est affiché, mais le module ne fournit aucun champ de formulaire pour changer ce code, et aucune fonction n'utilise cette valeur.

Il se peut que cette valeur ait été utilisée dans les versions précédentes, et que le code pour la gérer soit toujours porté, ou que cette option soit introduite dans les prochaines versions du module.

0
kiamlaluno