Skip to content
This repository has been archived by the owner on Dec 5, 2019. It is now read-only.

Commit

Permalink
creation of a menu provider instead of a menu renderer
Browse files Browse the repository at this point in the history
  • Loading branch information
adou600 committed Sep 25, 2012
1 parent 90af9f1 commit ecdfb1e
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 51 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
</div>

<div id="nav">
{{ knp_menu_render('simple', {}, 'custom') }}
{{ knp_menu_render('simple') }}
</div>

<div id="content">
Expand Down
44 changes: 0 additions & 44 deletions src/Cmf/MainBundle/Menu/CustomRenderer.php

This file was deleted.

40 changes: 40 additions & 0 deletions src/Cmf/MainBundle/Menu/MenuProvider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?php

namespace Cmf\MainBundle\Menu;

use Knp\Menu\FactoryInterface;
use \Knp\Menu\MenuItem;
use Symfony\Component\DependencyInjection\ContainerAware;
use Symfony\Component\HttpFoundation\Request;

class MenuProvider extends \Symfony\Cmf\Bundle\MenuBundle\Provider\PHPCRMenuProvider
{
public function get($name, array $options = array())
{
if ('simple' == $name)
{
//get the internal pages of the website
$menu = parent::get($name, $options);

//Home menu item
$item = new MenuItem('Home', $this->factory);
$item->setUri($menu->getUri());
$menu->addChild($item);
$item->moveToFirstPosition();
//Docs menu item
$item = new MenuItem('Docs', $this->factory);
$item->setUri('http://symfony-cmf.readthedocs.org');
$menu->addChild($item);
//Wiki menu item
$item = new MenuItem('Wiki', $this->factory);
$item->setUri('http://wiki.github.com/symfony-cmf/symfony-cmf');
$menu->addChild($item);
//Demo menu item
$item = new MenuItem('Demo', $this->factory);
$item->setUri('http://cmf.liip.ch/');
$menu->addChild($item);

return $menu;
}
}
}
15 changes: 9 additions & 6 deletions src/Cmf/MainBundle/Resources/config/services.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
services:
cmf_main.menu_renderer:
# The class implements Knp\Menu\Renderer\RendererInterface
class: Cmf\MainBundle\Menu\CustomRenderer
arguments: [ @twig, %knp_menu.renderer.twig.template%, %knp_menu.renderer.twig.options% ] # set your own dependencies here
symfony_cmf_menu.provider:
class: Cmf\MainBundle\Menu\MenuProvider
arguments:
- @service_container
- @symfony_cmf_menu.factory
- %symfony_cmf_menu.document_manager_name%
- %symfony_cmf_menu.menu_basepath%
- %symfony_cmf_menu.menu_document_class%
tags:
# The alias is what is used to retrieve the menu
- { name: knp_menu.renderer, alias: custom }
- { name: knp_menu.provider, alias: simple } # The alias is what is used to retrieve the menu

0 comments on commit ecdfb1e

Please sign in to comment.