kraksoft / redactor-bundle
Symfony Redactor WYSIWYG 表单类型
1.0.2
2014-09-21 23:12 UTC
Requires
- php: >=5.3.2
Requires (Dev)
- symfony/framework-bundle: >=2.1
This package is not auto-updated.
Last update: 2024-09-23 13:01:09 UTC
README
这是对 https://github.com/AStepanov/RedactorBundle/ 的非链接分支。真正的作者是 Andrey Stepanov,这里只是稍作修改的版本。
RedactorBundle
此组件旨在将 Redactor WYSIWYG 编辑器添加到您的 Symfony2 项目中。
此组件不包括原始的 Redactor JavaScript 库,使用它您需要从官方网站 http://imperavi.com/redactor/download/ 获取。
Symfony 2.1 的安装
composer.json
"require": { ... "kraksoft/redactor-bundle": "dev-master" ... }, "repositories": [ { "url": "https://github.com/AStepanov/RedactorBundle.git", "type": "vcs" } ],
app/AppKernel.php
<?php public function registerBundles() { $bundles = array( // ... new Stp\RedactorBundle\StpRedactorBundle(), ); }
运行以下命令
php app/console assets:install web
app/config/confug.yml
# Twig Configuration twig: # ... form: resources: - 'StpRedactorBundle:Redactor:fields.html.twig'
要允许上传文件,请将以下行添加到 app/config/routing.yml
stp_redactor: resource: "@StpRedactorBundle/Controller/" type: annotation prefix: /redactor/
如何配置
RedactorBundle 提供配置不同选项的机会(例如:管理界面、评论、博客)
运行命令以检查所有配置选项
php app/console config:dump-reference stp_redactor
示例
#app/config/config.yml stp_redactor: admin: upload_file: dir: "%kernel.root_dir%/../web/uploads/content/files" maxSize: 10M mimeTypes: - image/png - image/jpeg upload_image: dir: "%kernel.root_dir%/../web/uploads/content/images" maxSize: 5M minWidth: 100 maxWidth: 900 minHeight: 300 maxHeight: 900 role: [ROLE_ADMIN] blog: upload_image: dir: "%kernel.root_dir%/../web/uploads/blog/images" role: [IS_AUTHENTICATED_FULLY] comments: role: [IS_AUTHENTICATED_ANONYMOUSLY] settings: lang: en
如何使用
在表单类型中使用
{# template_with_redactor.html.twig #} {% block javascripts %} {{ parent() }} <script type="text/javascript" src="/path_to_jquery/jquery.js"></script> <script type="text/javascript" src="/path_to_original_redactor/js/redactor.js"></script> <script type="text/javascript" src="{{ asset('bundles/stpredactor/js/script.js') }}"></script> {% endblock %} {% block stylesheets %} {{ parent() }} <link rel="stylesheet" href="/path_to_original_redactor/css/redactor.css" type="text/css" media="screen" /> {% endblock %}
<?php //BlogPostType.php namespace Stp\BlogBundle\Form; use Symfony\Component\Form\FormBuilderInterface, Symfony\Component\Form\AbstractType; class BlogPostType extends AbstractType { /** * @param \Symfony\Component\Form\FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { parent::buildForm($builder, $options); $builder->add('description', 'redactor', array('redactor' => 'blog')); } }
在 SonataAdminBundle 中使用
创建新的 SonataAdmin 布局
{# app/Resources/views/admin_layout.html.twig #} {% extends 'SonataAdminBundle::standard_layout.html.twig' %} {% block stylesheets %} {{ parent() }} <link rel="stylesheet" href="/path_to_original_redactor/css/redactor.css" type="text/css" media="screen" /> <link rel="stylesheet" href="{{ asset('bundles/stpredactor/css/sonata.css') }}" type="text/css" media="screen" /> {% endblock %} {% block javascripts %} {{ parent() }} <script type="text/javascript" src="/path_to_original_redactor/js/redactor.js"></script> <script type="text/javascript" src="{{ asset('bundles/stpredactor/js/script.js') }}"></script> {% endblock %}
设置到您布局的路径
# app/config/config.yml sonata_admin: templates: layout: ::admin_layout.html.twig