如何使用 IvoryCKEditorBundle 分离文件夹进行文件上传?
How to separate folders using IvoryCKEditorBundle for file uploads?
我在我的项目中使用了以下内容:
- 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
我还没有配置管理员 class,我什至不知道为什么我必须配置它以及我应该如何将它与我当前的模型集成。所以我的问题是:
- 为什么会出现这个错误?
- 为什么我需要配置管理员 class? AdminBundle 不是自带基本管理 class 吗?
- 如何区分用户,以便每个人只能看到为他们学校上传的内容,而不能看到更多?
感谢您的宝贵时间。
此错误是由于 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 %}
希望对您有所帮助
我在我的项目中使用了以下内容:
- 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
我还没有配置管理员 class,我什至不知道为什么我必须配置它以及我应该如何将它与我当前的模型集成。所以我的问题是:
- 为什么会出现这个错误?
- 为什么我需要配置管理员 class? AdminBundle 不是自带基本管理 class 吗?
- 如何区分用户,以便每个人只能看到为他们学校上传的内容,而不能看到更多?
感谢您的宝贵时间。
此错误是由于 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 %}
希望对您有所帮助