Advertisement
Eddz

Untitled

Aug 26th, 2013
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.34 KB | None | 0 0
  1. <?php
  2.  
  3. namespace Fcm;
  4.  
  5. use Zend\EventManager\Event;
  6. use BjyAuthorize\View\RedirectionStrategy;
  7.  
  8. class Module
  9. {
  10.  
  11. //    public function onBootstrap(MvcEvent $e)
  12. //    {
  13. //        $eventManager = $e->getApplication()->getEventManager();
  14. //        $moduleRouteListener = new ModuleRouteListener();
  15. //        $moduleRouteListener->attach($eventManager);
  16. //    }
  17.  
  18.     public function getConfig()
  19.     {
  20.         return include __DIR__ . '/config/module.config.php';
  21.     }
  22.  
  23.     public function getAutoloaderConfig()
  24.     {
  25.         return array(
  26.             'Zend\Loader\StandardAutoloader' => array(
  27.                 'namespaces' => array(
  28.                     __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
  29.                 ),
  30.             ),
  31.         );
  32.     }
  33.  
  34.     public function onBootstrap(Event $e)
  35.     {
  36.         $serviceManager = $e->getApplication()->getServiceManager();
  37.  
  38.         $serviceManager->get('viewhelpermanager')->setFactory('Fcmhelper', function ($sm) use ($e) {
  39.                     return new \Fcm\View\Helper\Fcmhelper($sm);
  40.                 });
  41.  
  42.         $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch', function($e) {
  43.                     $controller = $e->getTarget();
  44.                     $controllerClass = get_class($controller);
  45.                     $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
  46.                     $config = $e->getApplication()->getServiceManager()->get('config');
  47.  
  48.                     $routeMatch = $e->getRouteMatch();
  49.                     $actionName = strtolower($routeMatch->getParam('action', 'not-found')); // get the action name
  50.  
  51.                     if (isset($config['module_layouts'][$moduleNamespace][$actionName])) {
  52.                         $controller->layout($config['module_layouts'][$moduleNamespace][$actionName]);
  53.                     } elseif (isset($config['module_layouts'][$moduleNamespace]['default'])) {
  54.                         $controller->layout($config['module_layouts'][$moduleNamespace]['default']);
  55.                     }
  56.                 }, 100);
  57.  
  58.  
  59.         $events = $e->getApplication()->getEventManager()->getSharedManager();
  60.         $events->attach('ZfcUser\Form\Register', 'init', function($e) {
  61.                     $form = $e->getTarget();
  62.                     $form->add(
  63.                             array(
  64.                                 'name' => 'roles',
  65.                                 'type' => 'Zend\Form\Element\Text',
  66.                                 'options' => array(
  67.                                     'label' => 'Select role',
  68.                                 ),
  69.                             )
  70.                     );
  71.                     $form->add(
  72.                             array(
  73.                                 'name' => 'client',
  74.                                 'type' => 'Zend\Form\Element\Text',
  75.                                 'options' => array(
  76.                                     'label' => 'Select client',
  77.                                 ),
  78.                             )
  79.                     );
  80.                     $routeMatch = $e->getRouteMatch();
  81.                     die(var_dump($routeMatch->getParam('action', 'not-found')));
  82.                     $form->get('submit')->setLabel('Add User');
  83.                     // Do what you please with the form instance ($form)
  84.                 });
  85.         $events->attach('ZfcUser\Form\RegisterFilter', 'init', function($e) {
  86.                     $filter = $e->getTarget();
  87.                     $filter->add(array(
  88.                         'name' => 'client',
  89.                         'required' => false,
  90.                             )
  91.                     );
  92.                     $filter->add(array(
  93.                         'name' => 'roles',
  94.                         'required' => false,
  95.                             )
  96.                     );
  97.                     // Do what you please with the filter instance ($filter)
  98.                 });
  99.  
  100.         $em = \Zend\EventManager\StaticEventManager::getInstance();
  101.         $app = $e->getApplication();
  102.         $em->attach('ZfcUser\Service\User', 'register', function($e) use ($app) {
  103.                     $user = $e->getParam('user');  // User account object
  104.                     $form = $e->getParam('form');  // Form object
  105.  
  106.                     $em = $app->getServiceManager()->get('Doctrine\ORM\EntityManager');
  107.                     $clients = $em->getRepository('Fcm\Entity\Client')->findEntity($user->getClient());
  108.                     if ($form->get('roles')->getValue() != null) {
  109.                         $role = $em->getRepository('Fcm\Entity\Role')->findEntity($form->get('roles')->getValue());
  110.                         $user->getRolesCollection()->add($role);
  111.                     }
  112.                     $user->setClient($clients);
  113.                 });
  114.  
  115.  
  116.         // Config RedirectRoute for manage 403 error
  117.         $application = $e->getTarget();
  118.         $eventManager = $application->getEventManager();
  119.  
  120.         $strategy = new RedirectionStrategy();
  121.  
  122.         // eventually set the route name (default is ZfcUser's login route)
  123.         $strategy->setRedirectRoute('login');
  124.  
  125.         // eventually set the URI to be used for redirects
  126. //        $strategy->setRedirectUri('http://example.org/login');
  127.  
  128.         $eventManager->attach($strategy);
  129.     }
  130.  
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement