it-swarm.com.de

Wie kann ich den WYSIWYG-Editor für meinen benutzerdefinierten Formulartextbereich hinzufügen?

Ich habe ein benutzerdefiniertes Formularmodul geschrieben, in dem ich einen Textbereich platziert habe:

Ich habe es so versucht:

$form['message'] = array(
  '#title' => t('Message'),
  '#type' => 'textarea',
  '#format' => 'full_html',
  '#default_value' => isset($ntemplates->message) ? $ntemplates->message : '',
  '#maxlength' => 255,
  '#attributes' => array(
  'class' => array('field_info'),
  'rows' => '5',
  'cols' => '200',
  ),
  '#wysiwyg' => TRUE,
);  

Aber es funktioniert nicht. Wie kann ich den WYSIWYG-Editor in meinen Textbereich integrieren?

Hinweis: Ich verwende wysiwyg-7.22 und ckeditor-3.6.6.2. Im grundlegenden Seitenkörperabschnitt funktioniert es. Ich habe ein benutzerdefiniertes Modul für das Formular geschrieben. Darin kann ich den wysiwyg-Editor nicht integrieren.

5
Manu

Drupal 7 führt das Formularelement #typetext_format ein, eine textformatfähige Version von textarea .

Um WYSIWYG in Ihr benutzerdefiniertes Formular zu integrieren, ändern Sie einfach das Attribut #type Des Formulars wie folgt:

'#type' => 'text_format'

Hinweis: Getestet mit CKEditor v 7.x.

Falls es bei Ihnen nicht funktioniert, überprüfen Sie bitte Ihre WYSIWYG-Konfiguration.

Informationen zum Ausblenden von Formatoptionen finden Sie unter: Ausblenden von Eingabeformatoptionen und Hilfetext unter einem Textbereich?

Der obige Textfeldtyp funktioniert in Drupal 7 und 8.

8
Pravin Ajaaz

Beachten Sie, dass der gespeicherte Wert aus dem Feld ein Array und keine Zeichenfolge ist. Gehen Sie zum Einrichten und Verwenden folgendermaßen vor:

  if (($intro = variable_get('groups_intro', NULL)) == NULL){
    $intro = '';
  }
  $form['groups_intro'] = array(
    '#type' => 'text_format',
    '#title' => t('intro'),
    '#default_value'=> $intro['value'],
    '#format' => $intro['format'],
    '#cols' => 200,
    '#rows' => 10,
    '#required' => TRUE,
  );
0
jons