WYSIWYG an Drupal-Formular anhängen

12

Wie kann mit einem benutzerdefinierten Drupal-Formular die WYSIWYG-Funktionalität mit dem WYSIWYG-Modul an ein Textfeld angehängt werden?

Kevin
quelle
Ich fand die Lösung von moon.watcher und Dylan Tack funktioniert perfekt.

Antworten:

2

Überprüfen Sie diese Anzeige auf Drupal 7 (mit einem kleinen Hinweis auf Drupal 6) http://drupal.org/node/1031160 . Im Speziellen geht es darum, wie ein Editor in Textarea in Drupal 7 angezeigt wird, also denke ich, dass dies nützlich sein könnte, um zu beginnen (anscheinend hat der letzte Kommentar eine getestete Form).

Vielleicht ist es eine Alternative, dies stattdessen / mit WYSIWYG zu tun.

Zigotete
quelle
8

Das Wysiwyg-Modul ist an das Eingabeformatsystem gebunden.

Verwenden Sie diese '#type' => 'text_format'Option zum Definieren Ihres Textbereichs.

Dylan Tack
quelle
7

Sie sollten statt text area type = 'text_format' verwenden. und format = 'editor_format'. Der Code wird so aussehen.

$form['description'] = array(
  '#type' => 'text_format',
  '#title' => t('Description'),
  '#format' => 'full_html' //the format used for editor.
);
Paulson Peter
quelle
Dies ist die richtige Option. Aber ich kann safe_value nicht in Form bringen.
Guru
4

Hier ist mein:

$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,
);

Ich musste das ['value']zu der #default_valueUrsache hinzufügen , dass es nach dem Speichern nicht geladen wurde.

7x Form API-Referenz

Francisco Corrales Morales
quelle
1
Wow in der Tat ist das variable_get('foo', '')['value']Suffix wirklich notwendig.
Leymannx
0

Das WYSIWYG-Modul ist nur eine Möglichkeit, einen der vielen Wysiwyg-Editoren zu verwenden. Sobald Sie das wysiwyg - Modul installiert haben ( http://drupal.org/project/wysiwyg ), wechseln Sie zur Konfiguration des Moduls (admin / config / content / wysiwyg). Es werden Installationsanweisungen für viele Wysiwyg-Editoren verfügbar sein. Für FCKeditor heißt es beispielsweise:

Extrahieren Sie das Archiv und kopieren Sie den Inhalt in einen neuen Ordner am folgenden Speicherort: sites / all / libraries / fckeditor

Die aktuelle Bibliothek finden Sie unter sites / all / libraries / fckeditor / fckeditor.js

Laden Sie den Editor herunter und extrahieren Sie das Archiv in das angegebene Verzeichnis. Sobald Sie dies getan haben (vorausgesetzt, Sie haben es richtig gemacht), können Sie den Editor für bestimmte Eingabeformate auf dem Wysiwyg-Konfigurationsbildschirm ändern. Sie müssen dann für jeden Typ unterschiedliche Operationen zuweisen (gefiltertes HTML, vollständiges HTML usw.). Klicken Sie unter "Operationen" in der Zeile "admin / config / content / wysiwyg" für das gewünschte Eingabeformat auf "Bearbeiten". Überprüfen Sie von hier aus, welche Schaltflächen Sie verwenden möchten.

Mrryanjohnston
quelle
Der CKEditor kann auch "eigenständig" installiert werden, ohne den WYSIWYG-Editor zu verwenden. Siehe drupal.org/project/ckeditor .
Jorrit Schippers
0

Es scheint nicht möglich mit Wysiwyg Version 7.x-2 zu sein, aber der Form Builder für die Profileinstellungen verwendet das folgende Array:

  $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',
    // ...
  );

Mit dem Array-Index "access_pages" kann festgelegt werden, für welche Seiten der Editor angezeigt wird. Das Modul stellt jedoch kein Formularfeld zum Ändern dieses Codes bereit, und keine Funktion verwendet diesen Wert.

Möglicherweise wurde dieser Wert in früheren Versionen verwendet, und der Code zur Verarbeitung wird noch portiert, oder diese Option wird in den nächsten Versionen des Moduls eingeführt.

kiamlaluno
quelle