首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奏鸣曲媒体包如何启用pixlr编辑?

奏鸣曲媒体包如何启用pixlr编辑?
EN

Stack Overflow用户
提问于 2018-06-21 17:40:10
回答 1查看 178关注 0票数 0

我已经像描述的这里那样启用了pixlr,但是没有启用,尝试了很多次。没有编辑与pixlr按钮可见的媒体形式。

我是不是错过了什么,挣扎了很长一段时间。请帮助,除了这个还有其他配置吗?

这里是我的配置

代码语言:javascript
复制
sonata_media:
    pixlr:
        enabled:  true
        secret:   theSecretHash
        referrer: Demo

    # if you don't use default namespace configuration
    class:
        media: App\Application\Sonata\MediaBundle\Entity\Media
        gallery: App\Application\Sonata\MediaBundle\Entity\Gallery
        gallery_has_media: App\Application\Sonata\MediaBundle\Entity\GalleryHasMedia
        category: App\Application\Sonata\ClassificationBundle\Entity\Category

    db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr it is mandatory to choose one here
    default_context: default # you need to set a context
    contexts:
        default:  # the default context is mandatory
            providers:
                - sonata.media.provider.dailymotion
                - sonata.media.provider.youtube
                - sonata.media.provider.image
                - sonata.media.provider.file
                - sonata.media.provider.vimeo

            formats:
                small: { width: 100 , quality: 70 }
                big:   { width: 500 , quality: 70 }            
        gallery: 
            providers:
                - sonata.media.provider.dailymotion
                - sonata.media.provider.youtube
                - sonata.media.provider.image
                - sonata.media.provider.file
                - sonata.media.provider.vimeo
            formats:
                original: { width: 500, quality: 100 }
                thumbnail: { width: 200, height: 200, quality: 100 }

    cdn:
        server:
            path: http://127.0.0.1:8000/uploads/media # http://media.sonata-project.org/

    filesystem:
        local:
            directory:  "%kernel.root_dir%/../public/uploads/media" #flex
            #directory:  "%kernel.root_dir%/../web/uploads/media" #non-flex
            create:     false
EN

回答 1

Stack Overflow用户

发布于 2018-06-21 18:28:42

在深入研究代码之后,我发现问题在于Symfony 4默认将服务私有化。

这就是奏鸣曲媒体包支持pixlr的方式。

首先,它检查容器中是否可用sonata.media.extra.pixlr服务。如果没有,则不能启用pixlr。因为服务是私有的,所以容器无法访问服务。

代码语言:javascript
复制
// Sonata\MediaBundle\Twig\GlobalVariable

/**
 * @return Pixlr|bool
 */
public function getPixlr()
{
    return $this->container->has('sonata.media.extra.pixlr') ? $this->container->get('sonata.media.extra.pixlr') : false;
}

解决这一问题的方法是覆盖服务定义并使其公开:)

代码语言:javascript
复制
sonata.media.extra.pixlr:
    public: true
    class: Sonata\MediaBundle\Extra\Pixlr
    arguments: [~,~,"@sonata.media.pool", "@sonata.media.manager.media", "@router", "@sonata.templating", "@service_container"]

现在您可以看到以媒体形式启用的pixlr编辑按钮。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50974612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档