MenuBuilder.php 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace Muzich\AdminBundle\Menu;
  3. use Admingenerator\GeneratorBundle\Menu\AdmingeneratorMenuBuilder as BaseMenu;
  4. use Symfony\Component\HttpFoundation\Request;
  5. class MenuBuilder extends BaseMenu
  6. {
  7. public function createDashboardMenu(Request $request)
  8. {
  9. $menu = $this->factory->createItem('root');
  10. $menu->setChildrenAttributes(array('id' => 'dashboard_sidebar', 'class' => 'nav nav-list'));
  11. $menu->setExtra('request_uri', $this->container->get('request')->getRequestUri());
  12. $menu->setExtra('translation_domain', 'Admingenerator');
  13. $this->addNavHeader($menu, 'Overview');
  14. $this->addNavLinkRoute($menu, 'Dashboard', 'AdmingeneratorDashboard_welcome')->setExtra('icon', 'icon-home');
  15. $this->addNavHeader($menu, 'Features');
  16. $this->addNavLinkRoute($menu, 'Statistics', 'AdmingeneratorDashboard_welcome', array('document' => 'commands'))->setExtra('icon', 'icon-bullhorn');
  17. $this->addNavLinkUri($menu, 'Wiki', 'http://work.bux.fr/projects/muzich/wiki', array('document' => 'filters'))->setExtra('icon', 'icon-filter');
  18. $this->addNavHeader($menu, 'Administration');
  19. $this->addAdministrationLinksToMenu($menu);
  20. $this->addNavHeader($menu, 'Moderation');
  21. $this->addModerationLinksToMenu($menu);
  22. return $menu;
  23. }
  24. protected function addAdministrationLinksToMenu($menu)
  25. {
  26. $this->addNavLinkRoute($menu, 'Users', 'Muzich_AdminBundle_Admin_user_list');
  27. $this->addNavLinkRoute($menu, 'Elements', 'Muzich_AdminBundle_Admin_element_list');
  28. $this->addNavLinkRoute($menu, 'Tags', 'Muzich_AdminBundle_Admin_tag_list');
  29. $this->addNavLinkRoute($menu, 'Groups', 'Muzich_AdminBundle_Admin_group_list');
  30. $this->addNavLinkRoute($menu, 'Group Follows', 'Muzich_AdminBundle_Admin_follow_group_list');
  31. $this->addNavLinkRoute($menu, 'User Follows', 'Muzich_AdminBundle_Admin_follow_user_list');
  32. $this->addNavLinkRoute($menu, 'Users Tags Favorites', 'Muzich_AdminBundle_Admin_users_tags_favorites_list');
  33. $this->addNavLinkRoute($menu, 'Groups Tags Favorites', 'Muzich_AdminBundle_Admin_groups_tags_favorites_list');
  34. $this->addNavLinkRoute($menu, 'Element Tags propositions', 'Muzich_AdminBundle_Admin_element_tags_proposition_list');
  35. $this->addNavLinkRoute($menu, 'Events Archives', 'Muzich_AdminBundle_Admin_event_archive_list');
  36. $this->addNavLinkRoute($menu, 'Registration Tokens', 'Muzich_AdminBundle_Admin_registration_token_list');
  37. $this->addNavLinkRoute($menu, 'Pre-subscriptions', 'Muzich_AdminBundle_Admin_presubscription_list');
  38. }
  39. protected function addModerationLinksToMenu($menu)
  40. {
  41. $this->addNavLinkRoute($menu, 'Element', 'Muzich_AdminBundle_Moderate_element_list');
  42. $this->addNavLinkRoute($menu, 'Tag', 'Muzich_AdminBundle_Moderate_tag_list');
  43. $this->addNavLinkRoute($menu, 'Comment', 'Muzich_AdminBundle_Moderate_comment_list');
  44. }
  45. public function createAdminMenu(Request $request)
  46. {
  47. $menu = parent::createAdminMenu($request);
  48. $menu->setExtra('translation_domain', 'Admingenerator');
  49. $administration = $this->addDropdownMenu($menu, 'Administration');
  50. $this->addAdministrationLinksToMenu($administration);
  51. return $menu;
  52. }
  53. public function createModerationMenu(Request $request)
  54. {
  55. $menu = parent::createAdminMenu($request);
  56. $menu->setExtra('translation_domain', 'Admingenerator');
  57. $moderation = $this->addDropdownMenu($menu, 'Moderation');
  58. $this->addModerationLinksToMenu($moderation);
  59. return $menu;
  60. }
  61. }