【问题标题】:How to separate folders using IvoryCKEditorBundle for file uploads?如何使用 IvoryCKEditorBundle 分隔文件夹以进行文件上传?
【发布时间】:2015-05-07 14:50:32
【问题描述】:

我在我的项目中使用以下内容:

  • Symfony 2.3
  • IvoryCKEditorBundle
  • CoopTilleulsCKEditorSonataMediaBundle

我的目的是让用户可以创建自己的页面来显示不同类型的信息。但是,用户是被某种关系分开的(某些用户属于某个学校,所以只有该学校的用户才能看到说学校上传的文件,其他人看不到)。我对 Sonata Media Bundle 或 Sonata Project 一无所知,尤其是我的时间有限,而且文档太多了,我无法在短时间内处理。我不知何故设法安装了 Media Bundle,甚至花了一整天的时间来弄清楚依赖关系以使其正常工作。

所以我来找你。当我尝试上传文件时,出现以下错误:

 Key "provider" for array with keys "context, category, hide_context" does not exist in CoopTilleulsCKEditorSonataMediaBundle:MediaAdmin:browser.html.twig at line 47 

我还没有配置管理类,我什至不知道我为什么要配置它以及我应该如何将它与我当前的模型集成。所以我的问题是:

  • 为什么会出现这个错误?
  • 为什么需要配置管理类? AdminBundle 不是自带基本的管理类吗?
  • 我如何区分用户,以便每个人只能看到为他们学校上传的内容,而不能看到更多内容?

感谢您的宝贵时间。

【问题讨论】:

    标签: php symfony ckeditor sonata-admin sonata


    【解决方案1】:

    此错误是由于MediaBundle 的工作方式发生了变化。为了解决它,您必须转到 browser.html.twig 并将第 46 到 58 行替换为:

    {% if (persistent_parameters.provider is defined) and ( not persistent_parameters.provider) %}
                            <li class="active"><a href="{{ admin.generateUrl('browser', {'context': persistent_parameters.context, 'provider': null}|merge(ckParameters)) }}">{{ "link.all_providers"|trans({}, 'SonataMediaBundle') }}</a></li>
                        {% else %}
                            <li><a href="{{ admin.generateUrl('browser', {'context': persistent_parameters.context, 'provider': null}|merge(ckParameters)) }}">{{ "link.all_providers"|trans({}, 'SonataMediaBundle') }}</a></li>
                        {% endif %}
    
                        {% for provider_name in providers %}
                            {% if (persistent_parameters.provider is defined) and (persistent_parameters.provider == provider_name) %}
                                <li class="active"><a href="{{ admin.generateUrl('browser', {'context': persistent_parameters.context, 'provider': provider_name}|merge(ckParameters)) }}">{{ provider_name|trans({}, 'SonataMediaBundle') }}</a></li>
                            {% else %}
                                <li><a href="{{ admin.generateUrl('browser', {'context': persistent_parameters.context, 'provider': provider_name}|merge(ckParameters)) }}">{{ provider_name|trans({}, 'SonataMediaBundle') }}</a></li>
                            {% endif %}
                        {% endfor %}
    

    希望对你有帮助

    【讨论】:

    • 我还没有尝试过这个解决方案,但是鉴于赏金快结束了,我会把它奖励给你。一旦我开始做,我会给你我的反馈。谢谢!
    猜你喜欢
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多