Allega WYSIWYG al modulo Drupal


12

Con un modulo Drupal personalizzato, come puoi collegare la funzionalità WYSIWYG a un'area di testo con il modulo WYSIWYG?


Ho trovato la soluzione presentata da moon.watcher e Dylan Tack funziona perfettamente.

Risposte:


2

rivedi questa indicazione a Drupal 7 (con una piccola indicazione a drupal 6) http://drupal.org/node/1031160 . in particolare si tratta di come visualizzare un editor all'interno di textarea in drupal 7, quindi immagino che potrebbe essere utile iniziare (sembra che l'ultimo commento abbia un modo testato).

potrebbe essere un'alternativa per farlo invece / con WYSIWYG.


8

Il modulo wysiwyg è legato al sistema del formato di input.

Utilizzare '#type' => 'text_format'per definire l'area di testo.


7

Dovresti usare type = 'text_format' invece di area di testo. e format = 'editor_format'. Il codice sarà simile a questo.

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

Questa è l'opzione corretta. Ma non riesco a ottenere safe_value nella forma.
Guru,

4

Ecco il mio:

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

Ho dovuto aggiungere il ['value']alla #default_valuecausa che non veniva caricato dopo il salvataggio.

7x Riferimento API modulo


1
Caspita, il variable_get('foo', '')['value']suffisso è davvero necessario.
leymannx,

0

Il modulo WYSIWYG è solo un modo per utilizzare uno dei tanti editor wysiwyg disponibili. Una volta installato il modulo wysiwyg ( http://drupal.org/project/wysiwyg ), vai alla configurazione del modulo (admin / config / content / wysiwyg). Saranno disponibili istruzioni di installazione per molti editor Wysiwyg. Ad esempio, per FCKeditor, dice quanto segue:

Estrarre l'archivio e copiarne il contenuto in una nuova cartella nella seguente posizione: sites / all / libraries / fckeditor

Quindi la libreria attuale può essere trovata su: sites / all / libraries / fckeditor / fckeditor.js

Quindi, scarica l'editor, estrai l'archivio nella directory indicata. Una volta fatto questo (supponendo che tu l'abbia fatto correttamente), sarai in grado di cambiare l'editor per determinati formati di input nella schermata di configurazione di Wysiwyg. Sarà quindi necessario assegnare diverse operazioni per ciascun tipo (HTML filtrato, HTML completo, ecc.). Fai clic su "Modifica" sotto operazioni all'interno di admin / config / content / wysiwyg nella riga per qualsiasi formato di input che ti interessa. Da qui, controlla quali pulsanti vuoi.


CKEditor può anche essere installato "autonomo", senza utilizzare l'editor WYSIWYG. Vedi drupal.org/project/ckeditor .
Jorrit Schippers,

0

Non sembra possibile con Wysiwyg versione 7.x-2, ma il generatore di moduli per le impostazioni del profilo utilizza il seguente 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',
    // ...
  );

L'indice dell'array "access_pages" consentirebbe di impostare per quali pagine viene mostrato l'editor, ma il modulo non fornisce alcun campo modulo per modificare quel codice, né alcuna funzione utilizza quel valore.

È possibile che il valore sia stato utilizzato nelle versioni precedenti e che il codice per gestirlo sia ancora in fase di porting o che l'opzione sia stata introdotta nelle versioni successive del modulo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.