Skip to content
This repository was archived by the owner on Sep 16, 2021. It is now read-only.

Commit c59f4ef

Browse files
committed
Added URIPrefix scenario
1 parent 40c4969 commit c59f4ef

File tree

5 files changed

+46
-2
lines changed

5 files changed

+46
-2
lines changed

DependencyInjection/CmfMenuExtension.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public function load(array $configs, ContainerBuilder $container)
4545
public function loadVoters($config, XmlFileLoader $loader, ContainerBuilder $container)
4646
{
4747
$loader->load('voters.xml');
48+
4849
if (isset($config['voters']['content_identity'])) {
4950
if (empty($config['voters']['content_identity']['content_key'])) {
5051
if (! class_exists('Symfony\\Cmf\\Bundle\\RoutingBundle\\Routing\\DynamicRouter')) {
@@ -59,7 +60,7 @@ public function loadVoters($config, XmlFileLoader $loader, ContainerBuilder $con
5960
$container->removeDefinition('cmf_menu.current_item_voter.content_identity');
6061
}
6162

62-
if (! isset($config['voters']['uri_prefix'])) {
63+
if (!array_key_exists('uri_prefix', $config['voters'])) {
6364
$container->removeDefinition('cmf_menu.current_item_voter.uri_prefix');
6465
}
6566
}

Tests/Resources/Controller/CmiTestController.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ public function blogAction(Request $request)
4141
return $this->render('::tests/cmi/blog.html.twig');
4242
}
4343

44+
public function articlesAction(Request $request)
45+
{
46+
return $this->render('::tests/cmi/articles.html.twig');
47+
}
48+
4449
public function postAction(Request $request)
4550
{
4651
$content = $request->get(DynamicRouter::CONTENT_KEY);

Tests/Resources/DataFixtures/PHPCR/LoadMenuData.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,34 @@ protected function loadSideMenu($manager)
167167
$route->setContent($post);
168168
$manager->persist($route);
169169

170+
// test articles
171+
$articles = new Content;
172+
$articles->setTitle('Articles Index');
173+
$articles->setId('/test/articles');
174+
$manager->persist($articles);
175+
176+
$articlesRoute = new Route();
177+
$articlesRoute->setId('/test/routes/articles');
178+
$articlesRoute->setDefault('_controller', 'Symfony\Cmf\Bundle\MenuBundle\Tests\Resources\Controller\CmiTestController::articlesAction');
179+
$articlesRoute->setContent($articles);
180+
$articlesRoute->setOption('currentUriPrefix', '/articles');
181+
$manager->persist($articlesRoute);
182+
183+
$article1 = new Content();
184+
$article1->setTitle('Article 1');
185+
$article1->setId('/test/article-1');
186+
$manager->persist($article1);
187+
188+
$route = new Route();
189+
$route->setId('/test/routes/articles/some-category');
190+
$manager->persist($route);
191+
192+
$route = new Route();
193+
$route->setId('/test/routes/articles/some-category/article-1');
194+
$route->setDefault('_controller', 'Symfony\Cmf\Bundle\MenuBundle\Tests\Resources\Controller\CmiTestController::postAction');
195+
$route->setContent($article1);
196+
$manager->persist($route);
197+
170198
// menu items
171199
$menu = new Menu;
172200
$menu->setName('side-menu');
@@ -192,6 +220,7 @@ protected function loadSideMenu($manager)
192220
$menuNode->setParent($menu);
193221
$menuNode->setLabel('URI Prefix Voter');
194222
$menuNode->setName('uri-prefix-voter');
223+
$menuNode->setContent($articlesRoute);
195224
$manager->persist($menuNode);
196225

197226
$menuNode = new MenuNode;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{% extends "::layout.html.twig" %}
2+
{% block content %}
3+
{% include "::tests/cmi/_sideMenu.html.twig" %}
4+
<p>
5+
This is the articles page. Click <a href="{{ path('/test/routes/articles/some-category/article-1') }}">To view the article</a>.
6+
</p>
7+
{% endblock %}
8+

Tests/Resources/app/config/cmf_menu.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ cmf_menu:
1111
use_sonata_admin: true
1212
menu_basepath: /test/menus
1313
voters:
14-
content_identity: ~
14+
content_identity: true
15+
uri_prefix: ~
1516

1617
cmf_routing:
1718
dynamic:

0 commit comments

Comments
 (0)