【问题标题】:ckeditor in Drupal 8 custom moduleDrupal 8 自定义模块中的 ckeditor
【发布时间】:2015-02-21 13:56:34
【问题描述】:

我目前正在为 Drupal 8 开发一个自定义模块。 在添加后端表单以从用户那里获取一些数据时,我尝试将 ckeditor 配置为替换我的 textareas ......但失败了 >.

这是表单定义:

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

我需要在哪里加载 ckeditor 来替换我的 textarea?

我已经尝试过的事情:

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

drupal_load_library("ckeditor", "ckeditor");

但我无法加载所有依赖项

【问题讨论】:

    标签: ckeditor drupal-8


    【解决方案1】:

    请参阅具有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',
    );
    

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题,但在使用上述解决方案保存数据时遇到了问题。最后看起来是这样的:

      $form['body'] = [
            '#type' => 'text_format',
            '#title' => $this->t('Body'),
            '#description' => $this->t('Message'),
            '#default_value' => $config->get('body'),
            '#format' => 'full_html',
          ];
      

      在 submitForm 方法中我像这样保存配置

        /**
         * {@inheritdoc}
         */
        public function submitForm(array &$form, FormStateInterface $form_state) {
          parent::submitForm($form, $form_state);
      
          $this->config('my_module.default')
            ->set('body', $form_state->getValue('body')['value'])
            ->save();
        }
      

      注意对附加的 ['value'] 数组的引用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-03
        • 2020-05-06
        • 2016-10-05
        • 1970-01-01
        • 1970-01-01
        • 2020-06-11
        • 2018-06-21
        相关资源
        最近更新 更多