2010-04-21 13 views
5

È possibile utilizzare un editor WYSIWYG in texarea per il modulo di configurazione del sito Drupal (form_settings_form).Editor WYSIWYG in texarea per il modulo di configurazione Drupal

In questo modo la configurazione è codificato ora ...

$form['my_module_text_bottom'] = array(
    '#type' => 'textarea', 
    '#title' => t('Some text'), 
    '#default_value' => variable_get('my_module_text_bottom', 'This is configurable text found in the module configuration.'), 
    '#size' => 1024, 
    '#maxlength' => 1024, 
    '#description' => t("Some text."), 
    '#required' => TRUE, 
); 
    return system_settings_form($form); 

risposta

0

I moduli WYSIWYG o CKEditor dovrebbero essere in grado di fare questo.

+0

sì, dovrebbe essere. Mi chiedo solo come implementarlo. – bert

+0

Personalmente, mi piace CKEditor; dovresti scaricare e installare quel modulo, quindi scaricare la libreria CKEditor dal sito ufficiale e inserirla nella cartella corretta. Le istruzioni ti guidano attraverso questo. – Nicholai

1

ho continuato a cercare per questo problema per circa 6 ore e alla fine ho trovato il motivo, per il vostro campo textarea personalizzato è necessario aggiungere questa riga, per utilizzare il formato di input di default (Full HTML):

$ form [ 'format'] = filter_form();

fare attenzione se si utilizza questo elemento modulo all'interno fieldset è necessario includere questa fieldset:

$ form [ 'donazione-istruzioni'] [ 'format'] = filter_form();

Spero che questo vi aiuterà a

0

ho trovato questa domanda simile a:

Drupal 6: Implement Wysiwyg on Custom Module Form

Una delle risposte ci indicò questa pagina drupal.org:

http://drupal.org/node/358316

che fornisce esempi abbastanza dettagliati della chiave di matrice "format" e filter_form(), anche desc ribadire come viene utilizzato se il tuo modulo ha più textareas.

L'approccio dato lì non si applica a Drupal 7.

mi sono imbattuto in una situazione simile in cui avevo scaricato e installato e installato CKEditor ed è visualizzato quando si modifica i nodi di contenuto, ma non visualizzare per la textarea su un modulo di configurazione per il mio modulo.

4

Qui è for Drupal 7 e Drupal 6.

Per D7:

<?php 
    // Retrieve the default values for 'value' and 'format', if not readily 
    // available through other means: 
    $defaults = array(
    'value' => '', 
    'format' => filter_default_format(), 
); 
    $my_richtext_field = variable_get('my_richtext_field', $defaults); 

    // Just construct a regular #type 'text_format' form element: 
    $form['my_richtext_field'] = array(
    '#type' => 'text_format', 
    '#title' => t('My richtext field'), 
    '#default_value' => $my_richtext_field['value'], 
    '#format' => $my_richtext_field['format'], 
); 
?> 

Per D6:

<?php 
    // Your saved or new data is supposed to have a value and a format. Just like 
    // $node has a $node->body and $node->format. May also come from a 
    // variable_get('mymodule_admin_setting', array('value' => '', 'format' => NULL)); 
    $mydata = mymodule_data_load(); 

    $form['myfield']['mytextarea'] = array(
    '#type' => 'textarea', 
    '#title' => t('My textarea'), 
    '#default_value' => $mydata->value, 
); 
    $form['myfield']['format'] = filter_form($mydata->format); 
?> 
+1

questa è davvero una risposta migliore dal momento che il modulo WYSIWYG non farà nulla senza questo codice. –

Problemi correlati