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?


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.


8

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

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


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.
);

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


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.