1

現在、Drupal 8 用のカスタム モジュールを開発しています。バックエンド フォームを追加してユーザーからデータを取得しているときに、テキストエリアを置き換えるように ckeditor を構成しようとしましたが、失敗しました >.<

フォーム定義は次のとおりです。

    $form['text'] = array(
        '#type' => 'textarea',
        '#title' => t('Text'),
        '#required' => TRUE,
        '#attributes' => array(
            'id' => 'text',
            'style' => 'max-width: 650px'
        ),
        '#default_value' => $data['text']
    );

テキストエリアを置き換えるには、ckeditor をどこにロードする必要がありますか?

私がすでに試したこと:

$build['#attached'] = array(
        'js' => array(
          drupal_get_path('module', 'ckeditor') . '/js/ckeditor.js'
drupal_render($build);

drupal_load_library("ckeditor", "ckeditor");

しかし、すべての依存関係をロードすることはできません

4

2 に答える 2

2

text_formatフォーム タイプを持つ Drupal 8 フォーム API を参照してください。#default_valueも確認することをお勧めします。

[構成] > [コンテンツ オーサリング] > [テキスト形式とエディター] に移動すると、現在使用可能なテキスト形式の概要が表示されます。ここにリストされているものは、フォーム フィールドの#formatプロパティで使用できます。(現在のデフォルトのフォールバックはbasic_html)

コードを次のように変更してみてください。

$form['text'] = array(
    '#type' => 'text_format',
    '#title' => t('Text'),
    '#required' => TRUE,
    '#default_value' => isset($data['text']) ? $data['text'] : '',
    '#format' => 'full_html',
);
于 2014-12-31T12:26:13.570 に答える