それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

symfonyでリッチテキストエリアを使う

tinyMCEを使うとsymfonyで簡単にリッチテキストエリアが作れる。ブログエディタなどについているJSのHTMLエディタだ。HTML入力フォームが簡単に作れるとユーザーに優しい。ブラウザ内でHTML Editor作りたいときはsymfonyが簡単に呼び出してくれる。

作り方。

generatorの場合、

    edit:
      display: [ title, entry]
      fields:
        entry:{ name: "エントリ" type: textarea_tag, params: 'rich=true size=80x20' }

と書くだけで、OK. 信じられないくらい楽ちん

templateの場合、マニュアルの例をそのままに

textarea_tag('name', 'default content', 'rich=true size=10x20'))

と書く。rich=trueだけなんて素敵すぎる

generatorとtemplateの違いは、generatorがobject_textarea_tagを使っている(paramsで指定する、言語とかツールバーの配置の指定方法が若干違う?)

You must install TinyMCE to use this helper (see rich_text_js_dir settings)

このエラーは TinyMCE がsymfonyのデフォルトパスにないときに発生。

tinyMCEをまだインストールしてない場合は、tinyMECライブラリをsymfonyの作業エリアへ追加する

wget http://prdownloads.sourceforge.net/tinymce/tinymce_X_X_X.tgz?download
tar zxvf tinymce_X_X_X.tgz
cp -R tinymce/jscripts/tiny_mce  symfony_projectHOME/web/js

もし、tinyMCEをデフォルトパスと違う場所にインストールしていたら。
setting.ymlでtinyMCEの場所指定する

all:
  .settings:
    rich_text_js_dir:  js/tiny_mce #相対パスでの例

ハマリどころ

慌ててた。解凍ディレクトリをコピーしてしまった。解凍したディレクトリ内のライブラリをコピーする

解凍したディレクトリ中の以下の部分をsymfonyに入れる

tinymce/jscripts/tiny_mce   

tinyMCEが英語でユーザーに優しくない。

日本語版パッケージを準備するしかない