1

我想在我的 Symfony 2 项目中使用 CK Editor。我下载了 zip 文件,解压缩并将其放在我的 js 文件夹中,我将它包含在我想要编辑器的页面中。我正在关注这个问题Click Here现在我被困在第 6 步。如何在我的 twig 模板中包含该 php。

第 6 步中需要包含的 php 是

<?php

// Make sure you are using a correct path here.
include_once 'ckeditor/ckeditor.php';

$ckeditor = new CKEditor();
$ckeditor->basePath = '/ckeditor/';
$ckeditor->config['filebrowserBrowseUrl'] = '/ckfinder/ckfinder.html';
$ckeditor->config['filebrowserImageBrowseUrl'] = '/ckfinder/ckfinder.html?type=Images';
$ckeditor->config['filebrowserFlashBrowseUrl'] = '/ckfinder/ckfinder.html?type=Flash';
$ckeditor->config['filebrowserUploadUrl'] = '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files';
$ckeditor->config['filebrowserImageUploadUrl'] = '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images';
$ckeditor->config['filebrowserFlashUploadUrl'] = '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash';
$ckeditor->editor('CKEditor1');

?>

我可以用包含 html 的任何变量替换名称并将其从控制器传递给查看吗?

谢谢

4

3 回答 3

1

您可以创建表单类型

use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class CkeditorType extends AbstractType
{
  public function setDefaultOptions(OptionsResolverInterface $resolver)
  {
    $resolver->setDefaults(array(
      'attr' => array('class' => 'ckeditor')
    ));
  }

  public function getParent()
  {
    return 'textarea';
  }

  public function getName()
  {
    return 'ckeditor';
  }
}

将此添加到您的服务中

services:
    ckeditor:
        class: Bundle\myBundle\Form\Type\CkeditorType
        tags:
            - { name: form.type, alias: ckeditor }

并像这样使用它

->add('myfield', 'ckeditor')
于 2013-06-27T08:29:46.567 回答
0

CKEditor 只需要 HTML 和 Javascript。PHP 文件只是用作实用程序助手来发出正确的 HTML 和 Javascript。

只需包含文件的链接并在您的树枝模板中ckeditor.js插入一个带有该类的文本区域。(我还发现我需要一个 id 标签,但它的值是什么并不重要) CKEditor 将处理其余的。ckeditor

<html>
<head>
    <title>Simple CKEditor Example</title>
    <script type="text/javascript" src="ckeditor.js"></script>
</head>
<body>
    <form action="" method="post">
        <textarea class="ckeditor" cols="80" id="editor1" name="editor1" rows="10"></textarea>
        <input type="submit" value="Submit" />
    </form>
</body>
</html>

在您引用的示例中,他们还使用CKFinder文件管理器。它确实需要 PHP 来处理文件管理器功能。该项目的集成说明超出了您原始问题的范围。

于 2012-10-18T19:45:02.593 回答
0

为什么不为此功能使用捆绑包?有很多

我已经尝试过TrsteelCkeditorBundle并且效果很好!易于设置和配置。

于 2012-10-19T10:00:58.170 回答