十二、SonataAdmin管理后台轻松配置
来源:互联网 发布:淘宝上买男装什么牌子 编辑:程序博客网 时间:2024/06/07 17:18
sonata-admin管理后台不只是简单地把数据库表的管理映射到网页上,它有非常多的支持对各种数据类型的编辑组件,本节来举几个例子,包括文本编辑插件ckeditor的支持,它能让你像编辑word文档一样所见即所得,还包括时间选择器,让你方便填写时间类型。
请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址
特殊字段的困扰
上节中我们编辑一个blogpost时是这样的:
这里的body本应该有图文并茂的内容,但是我们只能输入一些纯文本,createTime的填写也非常不方便,下面我们来解决这个问题
ckeditor插件支持
首先安装MediaBundle扩展和SonataFormatterBundle扩展,执行:
[root@centos7vm mywebsite]# composer require sonata-project/media-bundle "2.3.*"[root@centos7vm mywebsite]# composer require sonata-project/formatter-bundle "2.3.*"
注册bundle,修改app/AppKernel.php,添加注册如下:
new Ivory\CKEditorBundle\IvoryCKEditorBundle(), new Sonata\FormatterBundle\SonataFormatterBundle(), new Knp\Bundle\MarkdownBundle\KnpMarkdownBundle(), new Sonata\MediaBundle\SonataMediaBundle(), new JMS\SerializerBundle\JMSSerializerBundle(), new Sonata\EasyExtendsBundle\SonataEasyExtendsBundle(), new Application\Sonata\MediaBundle\ApplicationSonataMediaBundle(),
修改app/config/config.yml,把doctrine配置组改成如下的样子:
doctrine: dbal: driver: pdo_mysql host: "%database_host%" port: "%database_port%" dbname: "%database_name%" user: "%database_user%" password: "%database_password%" charset: UTF8 types: json: Sonata\Doctrine\Types\JsonType orm: auto_generate_proxy_classes: "%kernel.debug%" entity_managers: default: mappings: AppBundle: type: ~ dir: "Entity" prefix: "AppBundle\Entity" is_bundle: ~
并添加如下配置:
sonata_formatter: formatters: markdown: service: sonata.formatter.text.markdown extensions: - sonata.formatter.twig.control_flow - sonata.formatter.twig.gist - sonata.media.formatter.twig text: service: sonata.formatter.text.text extensions: - sonata.formatter.twig.control_flow - sonata.formatter.twig.gist - sonata.media.formatter.twig rawhtml: service: sonata.formatter.text.raw extensions: - sonata.formatter.twig.control_flow - sonata.formatter.twig.gist - sonata.media.formatter.twig richhtml: service: sonata.formatter.text.raw extensions: - sonata.formatter.twig.control_flow - sonata.formatter.twig.gist - sonata.media.formatter.twig twig: service: sonata.formatter.text.twigengine extensions: [] # Twig formatter cannot have extensions ckeditor: templates: browser: 'SonataFormatterBundle:Ckeditor:browser.html.twig' upload: 'SonataFormatterBundle:Ckeditor:upload.html.twig'sonata_media: default_context: default db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr contexts: default: # the default context is mandatory providers: - sonata.media.provider.dailymotion - sonata.media.provider.youtube - sonata.media.provider.image - sonata.media.provider.file formats: small: { width: 100 , quality: 70} big: { width: 500 , quality: 70} cdn: server: path: /uploads/media # http://media.sonata-project.org/ filesystem: local: directory: %kernel.root_dir%/../web/uploads/media create: falseivory_ck_editor: default_config: default configs: default: filebrowserBrowseRoute: admin_sonata_media_media_ckeditor_browser filebrowserImageBrowseRoute: admin_sonata_media_media_ckeditor_browser # Display images by default when clicking the image dialog browse button filebrowserImageBrowseRouteParameters: provider: sonata.media.provider.image filebrowserUploadRoute: admin_sonata_media_media_ckeditor_upload filebrowserUploadRouteParameters: provider: sonata.media.provider.file # Upload file as image when sending a file from the image dialog filebrowserImageUploadRoute: admin_sonata_media_media_ckeditor_upload filebrowserImageUploadRouteParameters: provider: sonata.media.provider.image context: my-context # Optional, to upload in a custom context
修改app/config/routing.yml,添加如下内容:
gallery: resource: '@SonataMediaBundle/Resources/config/routing/gallery.xml' prefix: /media/gallerymedia: resource: '@SonataMediaBundle/Resources/config/routing/media.xml' prefix: /media
OK, 清缓存(不行就rm -rf app/cache/*)
[root@centos7vm mywebsite]# php app/console cache:clear
安装ckeditor静态文件到web目录:
[root@centos7vm mywebsite]# php app/console assets:install web
这时重新打开http://172.16.142.130/app_dev.php/admin,你应该会看到多出了下面的板块
请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址
这是用来管理图片视频等信息的板块,但尚未配置好还不能用,暂时也不需要,我们继续来看我们需要的内容,还是点BlogPost的link_add,看效果:
这回body可以用来编辑图文并茂的内容啦
但虽然这里可以编辑文本格式,但是如果要上传图片还不能用,我们再来准备些东西
执行:
[root@centos7vm mywebsite]# php app/console sonata:easy-extends:generate --dest=src SonataMediaBundle
如果执行成功,会自动生成src/Application/Sonata/MediaBundle,说明我们成功生成了我们自定义的MediaBundle,但是我们一行代码都不需要写
在app/AppKernel.php中注册
new Sonata\IntlBundle\SonataIntlBundle(), new Application\Sonata\MediaBundle\ApplicationSonataMediaBundle(),
修改app/config/config.yml,把doctrine的orm组改成如下:
orm: auto_generate_proxy_classes: "%kernel.debug%" entity_managers: default: mappings: ApplicationSonataMediaBundle: ~ SonataMediaBundle: ~ AppBundle: type: ~ dir: "Entity" prefix: "AppBundle\Entity" is_bundle: ~
更新数据库表:
[root@centos7vm mywebsite]# php app/console doctrine:schema:update --force
创建图片视频等上传目录:
[root@centos7vm mywebsite]# mkdir web/uploads[root@centos7vm mywebsite]# mkdir web/uploads/media[root@centos7vm mywebsite]# chmod -R 0777 web/uploads
好,大功告成,我们试一下上传图片吧,点击ckeditor(上面的编辑器)的图片按钮
点击上传选择文件
选好文件,点上传到服务器后,显示
这时已经把图片上传到服务器的web/uploads/media目录下了,点确定就可以插入到我们要编辑的内容里了
ckeditor还有很多丰富的内容可以配置,具体可以参考官方文档,比如代码高亮显示,像下面的样子:
漂亮的时间选择器
下面我们来解决时间类型数据的填写问题,我们现在的时间选择是这样的难看难用:
我们来介绍一种sonata_type_date_picker类型的时间选择器,它是SonataCore中自带的组件
在app/config/config.yml的twig组下添加模板配置:
form: resources: - 'SonataCoreBundle:Form:datepicker.html.twig'
修改src/AppBundle/Admin/BlogPostAdmin.php的configureFormFields方法,如下:
$formMapper ->add('title', 'text') ->add('body', 'ckeditor', array('autoload' => true)) ->add('create_time', 'sonata_type_date_picker', array( 'format'=>'yyyy-MM-dd HH:mm:ss', 'dp_default_date' => date('Y-m-d H:i:s'),));
在管理后台重新编辑一个blog看效果:
- 十二、SonataAdmin管理后台轻松配置
- 十一、轻松搭建网站管理后台
- Ubuntu中轻松安装配置bug管理系统bugzilla
- 毕业设计(十二)---后台用户管理(2)之- 分页 实现上一页,下一页,跳页功能
- 轻松管理多个织梦网站 织梦CMS多后台快捷登陆软件
- 轻松管理多个织梦网站 织梦CMS多后台快捷登陆软件
- 后台管理
- 后台管理
- 轻松自动化---selenium-webdriver(python) (十二)
- Linux<十二> 磁盘管理
- 十二.分支管理
- 网络管理(十二)
- jboss-as-7.0.2.Final 后台管理账号的配置
- Solr-----2、Solr后台管理配置登录权限
- Django中文官方版05-配置后台管理
- Django创建应用、模型、配置后台自动管理
- 用七张表就能轻松管理存货
- fullcalendar,轻松管理日程
- play on words又是一道改了很久的题
- java8 读书笔记(一)基础特性
- 十一、轻松搭建网站管理后台
- 初学activiti(一)
- android so库 堆栈错误查看
- 十二、SonataAdmin管理后台轻松配置
- 上周热点回顾(1.16-1.22)_0
- 次小生成树
- spring mvc依赖属性注入属性设置
- 十三、用表关联结构实现类目管理
- java8 读书笔记(二)Lambda
- shell sed实例详解
- Android ToggleButton 开关按钮
- 关于福昕软件公司的控件使用-Foxit PDF SDK ActiveX