2011-06-21 11 views
3

私はカスタムのdrupal6モジュールでカスタムフォームを作成し、フォームにはテキストエリアがあります。 私は、次のように、PHPコード内に埋め込まれたHTMLとしてフォームを出力しています:drupalのカスタムテキストエリアフォームフィールドにWYSIWYGを有効にします

function custom_my_form() 
{ 
$f = '<form name="add_user" action="" method="post"> 
<label> Name </label> 
<p><input type="text" name="name" value="" /></p> 
<label>About Yourself</label> 
<p><textarea name="desc"></textarea></p> 
<input type="submit" name="submit" value="Add"> 
</form>'; 

return $f; 
} 

私がインストールされ、WYSIWYGモジュールを有効にしています。 私のデフォルトの入力フォーマットは「Filtered HTML」で、この入力フォーマット用のFCKエディタを選択しました。

ここでは、このフォームのtextareaフィールドにWYSIWYGを有効にしたいとします。 どうすればいいですか?

答えて

1

まず、そのようなフォームを作成しないでください。代わりに、Drupalの組み込みのForms APIを使用してください。詳細についてはForm API Quickstart Guideをご覧ください。 Drupalのサイトで

このページではカスタムフォームにWYSIWYGを追加するのに役立ちますが:あなた次第です、それは今までであなたを噛まないように戻ってきた場合には、それだけ依存してどのようにフォームを作成し、これまでhttp://drupal.org/node/358316

+0

しかし、私は内蔵のdrupalのフォームapiを使用する代わりに、私のモジュールの1つのフォームを作成するhtmlの方法を選択しました。私はテキストエリアのためにwysiwygを有効にする方法はありますか? –

+1

おそらく手動でJavaScriptライブラリをページに追加することができます。 '私のモジュールのためのフォームを作成するhtmlの方法を選択しました':フォームAPIを使用するとHTMLが出力され、好みのスタイルにすることができます。上記のコード内のすべては、Drupalのapiで行うことができます – Laxman13

9

まあ、 butt ...

コメントモジュールを見てください。私はコメントの入力フォーマットを選択することが可能であったことに気づいていた、とフル/フィルタHTMLを選択した際に、WYSIWYGエディタが蹴らここに関連するコードです:だから

$form['comment_filter']['comment'] = array(
    '#type' => 'textarea', 
    '#title' => t('Comment'), 
    '#rows' => 15, 
    '#default_value' => $default, 
    '#required' => TRUE,  

); 
if (!isset($edit['format'])) { 
    $edit['format'] = FILTER_FORMAT_DEFAULT; 
} 
$form['comment_filter']['format'] = filter_form($edit['format']); 

は、次の2つの配列を定義します要素の1つはテキストエリア自体であり、もう1つはfilter_formによって生成されたフォーマットチューザーです。

これは、でもシンプルD7については、http://groups.drupal.org/node/104604

9

からでした。私たちはtext_formatという新しいタイプを得ました。

$form['comment'] = array('#type' => 'text_format', 
         '#format' => 'full_html', 
         '#title' => t('Description'), 
         '#required' => TRUE); 
+0

これに何か他のものが必要なのですが、うまく動作していないようです。 – pal4life

+1

@ pal4lifeこれはD7で動作します。 – Traxo

4

はい、これは可能です。あなたのページに次のjavascriptを追加するだけです。

<script src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script> 
<script> 
     tinymce.init({selector:'textarea'}); 
</script> 

このスクリプトは自動的にリッチテキストエディタにHTMLコードでこのlink

詳細情報をテキスト領域に変換します。

関連する問題