在Twig Template + Symfony2中的CKEditor

时间:2012-10-18 19:03:23

标签: php symfony ckeditor twig

我想在Symfony 2项目中使用CK Editor。我下载了zip文件,解压缩并将其放入我的js文件夹中,我将其包含在我想要编辑器的页面中。我正在关注这个问题Click Here现在我陷入了第6步。我怎么能在我的树枝模板中包含那个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');

&GT;

我可以用包含html的任何变量替换名称,然后从控制器传递给它以查看吗?

谢谢

3 个答案:

答案 0 :(得分: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')

答案 1 :(得分:0)

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

只需添加指向ckeditor.js文件的链接,然后在您的树枝模板中插入带有ckeditor类的textarea。 (我还发现我需要一个id标签,但它的价值并不重要) 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才能处理文件管理器功能。该项目的集成说明超出了原始问题的范围。

答案 2 :(得分:0)

为什么不为此功能使用捆绑包?有plenty of it

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