2009年2月3日火曜日

Drupal のコンテンツの作成で WYSIWYG – FCKeditor と IMCE を使って

1. Drupal の投稿エディタをリッチにしたい

Drupal でコンテンツを作成するとき、標準ではシンプルなテキストエディタを使う。というか、ただのテキストエリア。

今時のブログと比較すると、珍しくデフォルトでタグ打ちをする。これをリッチなエディタに変更したい。

 

2. FCKeditor

Drupal Modules で調べると、Most Downladed の 3 位に

がある。他のリッチなエディタとしては、

This module has been replaced by Wysiwyg API,

今回は FCKeditor を使うことにした。

 

インストールとモジュールの有効化

より 6.x-1.3-rc7 をダウンロードして解凍。

README.txt の Configuration を見ながら作業を進めるた。

エディタの本体を

より FCKeditor_2.6.4.zip をダウンロードして解凍。

先ほど解凍した fckeditor 内に、今解凍した fckeditor フォルダを配置する。

sites/all/modules に fckeditor を配置。

Drupal の管理画面を開き、

  • 管理セクション › サイトの構築 > モジュール

の「その他」において、FCKeditor にチェックを入れる。

090203-004

これにより、コンテンツの作成から「ストーリー」を選択すると、テキストエリア上部に、エディタのためのメニューが表示される。

090203-005

 

権限の設定?
  • 管理セクション › ユーザの管理 > 権限

を選択。

090203-006

権限の設定があるけど、管理者だけが使うならこのままでいいのかな?

090203-007

 

3. IMCE で画像をアップロード

次に、画像をアップロードするためのモジュールをインストールする。

の「Image/File browser」によると、

  • The IMCE module which needs almost no configuration.
  • IMCE から 6.x-1.1 をダウンロードして解凍。

    sites/all/modules 以下に配置して、モジュールを有効化した。

    090203-008

     

    FCKeditor との連携

    IMCE | drupal.org によると、

    FCKeditor: Admin->Settings->Fckeditor profile->File browser settings->IMCE integration

    • 管理セクション › サイトの環境設定 > FCKeditor settings > プロフィール

    の Default の操作の「編集」をクリック。

    090203-009

    File browser settings を選択。

    090203-010

    File browser type で IMCE を選択。

    090203-011

     

    4. FCKeditor のメニューが表示されなくなった

    IMCE が使えるのか確かめようとした。そのとき、いつも通りのシンプルなテキストエディタに切り替えようと、テキストエリアの下にある

    `Switch to plain text editor’

    のリンクをクリックした。

    FCKeditor の表示が消えた後、元に戻そうとしたけれど、切り替えるためのリンクが表示されなかった。 (@_@;)

    Issues for FCKeditor に同じような症状はないかと探したが、よくわからなかった。

     

    データベースのテーブルを削除

    一度、モジュールを無効にして、再度有効にしてもダメ。 (+_+)

    関連しそうなデータベースのテーブルを削除することにした。

    MySQL Administrator を起動して、Catalogs から Drupal をインストールした Schemata を選択。

    `fckeditor_’

    という接頭辞のテーブルが 2 つあったので

    • 右クリック > Drop Table

    を選択。

    090203-012

    この後、Drupal にエラーが表示されるようになった。

    • warning: include_once(./sites/all/modules/) [function.include-once]: failed to open stream: No such file or directory in C:\xampp\htdocs\drupal6\includes\bootstrap.inc on line 577.
    • warning: include_once() [function.include]: Failed opening './sites/all/modules/' for inclusion (include_path='.;\xampp\php\pear\') in C:\xampp\htdocs\drupal6\includes\bootstrap.inc on line 577.

    ルートディレクトリにある update.php を実行したらどうかと思い、説明を読んだら、

    Drupalやモジュールの新しいリリースをインストールした際には常に、データベースを更新するために、このユーティリティを使用してください。

    これで元に戻るかと思ったが、ダメだった。 (+_+)

     

    system テーブルの設定情報を削除

    エラーの内容より、includes\bootstrap.inc on line 577. 付近を見ると、$files 変数が関係ありそうな感じがした。$files で同ファイルを検索すると、406 行目に関連した SQL を発行している部分があった。

    $file = db_result(db_query("SELECT filename FROM {system} WHERE name = '%s' AND type = '%s'", $name, $type))

    system テーブルが怪しそう。(@_@)

    MySQL Administrator より system テーブル上で

    • 右クリック > Edit Table Data

    により、MySQL Query Browser を開き、

    SELECT * FROM system
    where name like '%fck%';

    を実行。これにより、fckeditor の設定らしきものが見つかった。

    090203-014

    これに対して、

    delete from system
    where name like '%fck%';

    で削除。これにより、エラー表示がなくなった。

     

    5. FCKeditor, IMCE を再インストール

    再度 FCKeditor と IMCE モジュールをインストール。

    • 管理セクション › サイトの環境設定 > FCKeditor settings

    にアクセスすると、

    There is currently no role with the access fckeditor permission. Visit 権限 administration section.

    と表示された。

    今回は、「管理セクション › ユーザの管理 > 権限 > fckeditor モジュール」 で「認証済みユーザ」の列にチェックをつけた。

    090203-015

    上記の設定をしたら、

    • 管理セクション › サイトの環境設定 > FCKeditor settings > Profiles

    の Advanced ロールに「認証済みユーザ」と表示されたので、「操作」の「編集」をクリック。先ほどと同じように File browser type で IMCE を選択した。

     

    6. イメージのアップロード

    コンテンツの作成において、「イメージの挿入/編集」アイコンをクリックしたら、「サーバーブラウザー」ボタンが表示された。

    090203-016

    「サーバーブラウザー」ボタンをクリックしたら、画像を管理するためのページが表示される。ここで画像をアップロードして FCKEditor へ送ることによってコンテンツに画像を挿入することができるようだ。

    090203-017

    2コメント:

    匿名 さんのコメント...

    fckeditorとIMCEを同じように配置させていただいたのですが、どうも「サーバブラウザー」ボタンが表示されないのです。
    原因として考えられることはなにかございますか??

    子馬 さんのコメント...

    記憶が曖昧ですが、 IMCE が正しく認識されていないとボタンがでてこなかったような気がします。 IMCE の設定の確認をしてみて、それでもだめなら IMCE を完全に削除してから、インストールしなおしてみてはどうでしょうか。