Dołącz WYSIWYG do formularza Drupal

12

W jaki sposób przy pomocy niestandardowego formularza Drupal możesz dołączyć funkcjonalność WYSIWYG do obszaru tekstowego za pomocą modułu WYSIWYG?

Kevin
źródło
Uważam, że rozwiązanie przesłane przez moon.watcher i Dylan Tack działa idealnie.

Odpowiedzi:

2

przejrzyj to wskazanie do Drupala 7 (z niewielkim wskazaniem do Drupala 6) http://drupal.org/node/1031160 . chodzi konkretnie o to, jak wyświetlać edytor w obszarze tekstowym w Drupal 7, więc myślę, że przydałoby się to zacząć (wydaje się, że ostatni komentarz ma przetestowany sposób).

może być alternatywą do zrobienia tego zamiast / z WYSIWYG.

cigotete
źródło
8

Moduł wysiwyg jest powiązany z systemem formatu wejściowego.

Służy do '#type' => 'text_format'definiowania obszaru tekstowego.

Dylan Tack
źródło
7

Powinieneś użyć type = 'text_format' zamiast pola tekstowego. i format = „format_redaktora”. Kod będzie wyglądał następująco.

$form['description'] = array(
  '#type' => 'text_format',
  '#title' => t('Description'),
  '#format' => 'full_html' //the format used for editor.
);
Paulson Peter
źródło
To jest poprawna opcja. Ale nie mogę uzyskać wartości Safe_value w formie.
Guru
4

Tutaj jest moje:

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

Musiałem dodać ['value']do #default_valuesprawy nie był załadowany po zapisany.

7x Dokumentacja interfejsu API formularza

Francisco Corrales Morales
źródło
1
Wow, variable_get('foo', '')['value']przyrostek jest naprawdę konieczny.
leymannx
0

Moduł WYSIWYG jest tylko sposobem na użycie jednego z wielu dostępnych edytorów wysiwyg. Po zainstalowaniu modułu wysiwyg ( http://drupal.org/project/wysiwyg ) przejdź do konfiguracji modułu (admin / config / content / wysiwyg). Dostępne będą instrukcje instalacji dla wielu edytorów Wysiwyg. Na przykład w przypadku FCKeditor mówi:

Rozpakuj archiwum i skopiuj jego zawartość do nowego folderu w następującej lokalizacji: sites / all / libraries / fckeditor

Tak więc rzeczywistą bibliotekę można znaleźć pod adresem: sites / all / libraries / fckeditor / fckeditor.js

Pobierz edytor, rozpakuj archiwum do podanego katalogu. Gdy to zrobisz (zakładając, że zrobiłeś to poprawnie), będziesz mógł zmienić edytor dla danych formatów wejściowych na ekranie konfiguracji Wysiwyg. Następnie będziesz musiał przypisać różne operacje dla każdego typu (filtrowany HTML, pełny HTML itp.). Kliknij „Edytuj” w obszarze operacji w admin / config / content / wysiwyg w wierszu dla dowolnego formatu wejściowego, który Cię interesuje. Stąd sprawdź, które przyciski chcesz.

mrryanjohnston
źródło
CKEditor można również zainstalować „samodzielnie”, bez użycia edytora WYSIWYG. Zobacz drupal.org/project/ckeditor .
Jorrit Schippers,
0

Wydaje się, że nie jest to możliwe w wersji Wysiwyg 7.x-2, ale kreator formularzy dla ustawień profilu używa następującej tablicy:

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

Indeks tablicy „access_pages” pozwoliłby ustalić, dla których stron edytor ma być wyświetlany, ale moduł nie udostępnia pola formularza do zmiany tego kodu, ani żadna funkcja nie używa tej wartości.

Może być tak, że wartość była używana w poprzednich wersjach, a kod do jej obsługi wciąż jest przenoszony lub ta opcja jest wprowadzana w kolejnych wersjach modułu.

kiamlaluno
źródło