Este es el CoreBundle para el CMF de Symfony 2. Este paquete proporciona funcionalidad común, ayudantes y utilidades para los otros paquetes del CMF.
Una de las características proporcionadas es una interfaz e implementación de un supervisor del flujo de trabajo para la publicación con una interfaz acompañante en la cual los modelos pueden implementar aquello que quieran apoyar con este supervisor.
Además, proporciona un ayudante de Twig que expone varias funciones útiles para que las plantillas de Twig interaccinen con documentos PHPCR-ODM.
# app/config/config.yml
symfony_cmf_core:
document_manager: default
role: IS_AUTHENTICATED_ANONYMOUSLY # usado por el supervisor del
# flujo de trabajo
# para publicación
El paquete proporciona un servicio symfony_cmf_core.publish_workflow_checker que implementa la PublishWorkflowCheckerInterface. Esta interfaz define un solo método checkIsPublished().
$publishWorkflowChecker = $container->get('symfony_cmf_core.publish_workflow_checker');
$ignoreRole = false // si ignora el rol al momento de decidir si considera
// el documento como publicado
if ($publishWorkflowChecker->checkIsPublished($document, $ignoreRole)) {
..
}
Implementa las siguientes funciones:
{% set page = cmf_find('/alguna/ruta') %}
{% if cmf_is_published(page) %}
{% set prev = cmf_prev(page) %}
{% if prev %}
<a href="{{ path(prev) }}">prev</a>
{% endif %}
{% set next = cmf_next(page) %}
{% if next %}
<span style="float: right; padding-right: 40px;"><a href="{{ path(next) }}">next</a></span>
{% endif %}
{% for news in cmf_children(page)|reverse %}
<li><a href="{{ path(news) }}">{{ news.title }}</a> ({{ news.publishStartDate | date('Y-m-d') }})</li>
{% endfor %}
{% if 'de' in cmf_document_locales(page) %}
<a href="{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge(app.request.query.all)|merge({'_locale': 'de'})) }}">DE</a>
{% endif %}
{% if 'fr' in cmf_document_locales(page) %}
<a href="{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge(app.request.query.all)|merge({'_locale': 'fr'})) }}">DE</a>
{% endif %}
{% endif %}