web-dev-qa-db-ja.com

WYSIWYGをDrupalフォームに添付

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

12
Kevin

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

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

2
cigotete

Wysiwygモジュールは入力フォーマットシステムに関連付けられています。

使用する '#type' => 'text_format'テキスト領域を定義するとき。

8
Dylan Tack

テキスト領域の代わりにtype = 'text_format'を使用する必要があります。そして、format = 'editor_format'。コードは次のようになります。

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

これが私のものです:

$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リファレンス

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内の操作の下にある[編集]をクリックします。ここから、必要なボタンを確認します。

0
mrryanjohnston

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

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

0
kiamlaluno