WYSIWYGをDrupalフォームに添付する


12

カスタムDrupalフォームで、WYSIWYGモジュールを使用してWYSIWYG機能をテキストエリアにアタッチするにはどうすればよいですか?


moon.watcherとDylan Tackによって提出されたソリューションが完璧に機能することがわかりました。

回答:


2

Drupal 7へのこの表示を確認します(drupal 6への表示は少しあります)http://drupal.org/node/1031160。具体的には、drupal 7のtextarea内にエディターを表示する方法に関するものなので、開始するのに役立つと思います(最後のコメントにテスト済みの方法があるようです)。

代わりに、またはWYSIWYGを使用して、これを行う代替手段になる可能性があります。


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フォームAPIリファレンス


1
確かに、variable_get('foo', '')['value']接尾辞は本当に必要です。
レイマンクス

0

WYSIWYGモジュールは、多くのwysiwygエディターの1つを使用する方法にすぎません。wysiwygモジュール(http://drupal.org/project/wysiwyg)をインストールしたら、モジュールの構成(admin / config / content / wysiwyg)に移動します。多くのWysiwygエディターのインストール手順が利用可能になります。たとえば、FCKeditorの場合、次のように表示されます。

アーカイブを抽出し、その内容を次の場所にある新しいフォルダーにコピーします。sites/ all / libraries / fckeditor

したがって、実際のライブラリは次の場所にあります。sites/ all / libraries / fckeditor / fckeditor.js

そのため、エディターをダウンロードし、指定されたディレクトリにアーカイブを抽出します。これを実行すると(正しく完了したと仮定して)、Wysiwygの構成画面で特定の入力形式のエディターを変更できるようになります。次に、タイプごとに異なる操作(フィルタリングされたHTML、完全なHTMLなど)を割り当てる必要があります。興味のある入力形式の行のadmin / config / content / wysiwyg内の操作の下にある[編集]をクリックします。ここから、必要なボタンをチェックします。


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」配列インデックスにより、エディターが表示されるページを設定できますが、モジュールはそのコードを変更するためのフォームフィールドを提供せず、関数はその値を使用しません。

以前のバージョンで値が使用されていて、それを処理するコードがまだ移植されているか、モジュールの次のバージョンでオプションが導入されている可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.