Прикрепить WYSIWYG к форме Drupal

12

С помощью пользовательской формы Drupal, как вы можете присоединить функциональность WYSIWYG к текстовой области с помощью модуля WYSIWYG?

Kevin
источник
Я нашел решение, представленное moon.watcher и Dylan Tack, работает отлично.

Ответы:

2

просмотрите это указание для Drupal 7 (с небольшим указанием для drupal 6) http://drupal.org/node/1031160 . В частности, речь идет о том, как отобразить редактор внутри textarea в drupal 7, поэтому я думаю, что это может быть полезно для начала (кажется, что последний комментарий имеет проверенный способ).

может быть может быть альтернативой сделать это вместо / с WYSIWYG.

cigotete
источник
8

Модуль wysiwyg привязан к системе форматов ввода.

Используйте '#type' => 'text_format'при определении вашей текстовой области.

Дилан Тэк
источник
7

Вы должны использовать type = 'text_format' вместо текстовой области. и format = 'editor_format'. Код будет выглядеть так.

$form['description'] = array(
  '#type' => 'text_format',
  '#title' => t('Description'),
  '#format' => 'full_html' //the format used for editor.
);
Полсон Питер
источник
Это правильный вариант. Но я не могу получить safe_value в форме.
Гуру
4

Вот мой:

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

Я должен был добавить ['value']к #default_valueделу он не был загружен после спасен.

7x Form API Reference

Франсиско Корралес Моралес
источник
1
Вау, действительно, variable_get('foo', '')['value']суффикс действительно необходим.
leymannx
0

Модуль WYSIWYG - это только способ использовать один из многих редакторов wysiwyg. После установки модуля wysiwyg ( http://drupal.org/project/wysiwyg ) перейдите к настройке модуля (admin / config / content / wysiwyg). Для многих редакторов Wysiwyg будут инструкции по установке. Например, для FCKeditor написано следующее:

Извлеките архив и скопируйте его содержимое в новую папку по следующему адресу: sites / all / library / fckeditor

Таким образом, настоящая библиотека может быть найдена по адресу: sites / all / library / fckeditor / fckeditor.js

Итак, скачайте редактор, распакуйте архив в указанный каталог. Как только вы это сделаете (при условии, что вы сделали это правильно), вы сможете изменить редактор для заданных форматов ввода на экране конфигурации Wysiwyg. Затем вам нужно будет назначить разные операции для каждого типа (отфильтрованный HTML, полный HTML и т. Д.). Нажмите «Изменить» в разделе операций в admin / config / content / wysiwyg в строке, чтобы выбрать любой формат ввода, который вас интересует. Отсюда проверьте, какие кнопки вы хотите.

mrryanjohnston
источник
CKEditor также может быть установлен "автономно", без использования редактора WYSIWYG. Смотрите drupal.org/project/ckeditor .
Джоррит Шипперс
0

Кажется, это невозможно с Wysiwyg версии 7.x-2, но построитель форм для настроек профиля использует следующий массив:

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

Индекс массива "access_pages" позволил бы установить, для каких страниц показывается редактор, но модуль не предоставляет никакого поля формы для изменения этого кода, и никакая функция не использует это значение.

Возможно, это значение использовалось в предыдущих версиях, а код для его обработки все еще переносится, или эта опция вводится в следующих версиях модуля.

киамлалуно
источник