Skip to content
Snippets Groups Projects
Select Git revision
  • 6e3ed8fae755a9f06604ca3a18edd1b097207b05
  • master default protected
  • update-min-openvox-version-07f8cb2
  • cleanup_fixtures
  • add-openvox
  • freebsd-14
  • remove-legacy-top-scope-syntax
  • rel430
  • tests
  • revert-363-augeas-module-cleanup
  • release-4.1.0
  • puppet8
  • relax-dependencies
  • rel400
  • mode
  • puppet7
  • release-3.1.0
  • freebsd13
  • freebsd11
  • stdlib
  • centos
  • v6.0.0
  • v5.1.0
  • v5.0.0
  • v4.5.0
  • v4.4.0
  • v4.3.0
  • v4.2.1
  • v4.2.0
  • v4.1.0
  • v4.0.0
  • v3.1.0
  • v3.0.0
  • v2.0.0
  • 1.12.0
  • 1.11.0
  • 1.10.0
  • 1.9.0
  • 1.8.0
  • 1.7.0
  • 1.6.0
41 results

postfix-mailman.pp

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Module.php 9.64 KiB
    <?php
    namespace UnicaenApp;
    
    use \UnicaenApp\Options\ModuleOptions;
    use Zend\EventManager\EventInterface;
    use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
    use Zend\ModuleManager\Feature\BootstrapListenerInterface;
    use Zend\ModuleManager\Feature\ConfigProviderInterface;
    use Zend\ModuleManager\Feature\ControllerPluginProviderInterface;
    use Zend\ModuleManager\Feature\ServiceProviderInterface;
    use Zend\ModuleManager\Feature\ViewHelperProviderInterface;
    use Zend\View\HelperPluginManager;
    use Zend\Mvc\Controller\PluginManager;
    
    define('__VENDOR_DIR__', dirname(dirname(__DIR__)));
    
    /**
     * Point d'entrée du module.
     * 
     * @author Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr>
     */
    class Module implements 
            BootstrapListenerInterface, 
            ConfigProviderInterface, 
            ControllerPluginProviderInterface,
            ViewHelperProviderInterface, 
            ServiceProviderInterface
    {
    
        /**
         * 
         * @return array
         * @see ConfigProviderInterface
         */
        public function getConfig()
        {
            return include __DIR__ . '/config/module.config.php';
        }
    
        /**
         * 
         * @return array
         * @see AutoloaderProviderInterface
         */
        public function getAutoloaderConfig()
        {
            return array(
                'Zend\Loader\ClassMapAutoloader' => array(
                    __DIR__ . '/autoload_classmap.php',
                ),
                'Zend\Loader\StandardAutoloader' => array(
                    'namespaces' => array(
                        __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                    ),
                ),
            );
        }
    
        /**
         * This method is called once the MVC bootstrapping is complete,
         * after the "loadModule.post" event, once $application->bootstrap() is called.
         * 
         * @param EventInterface $e
         * @see BootstrapListenerInterface
         */
        public function onBootstrap(EventInterface $e) /* @var $e \Zend\Mvc\MvcEvent */
        {
            /* @var $application \Zend\Mvc\Application */
            $application = $e->getApplication();
            /* @var $services ServiceManager */
            $services    = $application->getServiceManager();
            
    //        // Set the translator for default validation messages
    //        $translator = $services->get('translator');
    //        \Zend\Validator\AbstractValidator::setDefaultTranslator($translator);
            
            /* @var $vhm HelperPluginManager */
            $vhm = $services->get('view_helper_manager');
            
            /* @var $nvh Navigation */
            $nvh = $vhm->get('navigation');
            // Déclaration des plugins maison pour l'aide de vue de navigation
            $invokables = array(
                'menuPrincipal'  => 'UnicaenApp\View\Helper\Navigation\MenuPrincipal',
                'menuSecondaire' => 'UnicaenApp\View\Helper\Navigation\MenuSecondaire',
                'menuContextuel' => 'UnicaenApp\View\Helper\Navigation\MenuContextuel',
                'menuPiedDePage' => 'UnicaenApp\View\Helper\Navigation\MenuPiedDePage',
                'filAriane'      => 'UnicaenApp\View\Helper\Navigation\FilAriane',
                'plan'           => 'UnicaenApp\View\Helper\Navigation\Plan',
            );
            foreach ($invokables as $key => $value) {
                $nvh->getPluginManager()->setInvokableClass($key, $value);
            }
        }
    
        /**
         * Expected to return \Zend\ServiceManager\Config object or array to
         * seed such an object.
         *
         * @return array|\Zend\ServiceManager\Config
         */
        public function getControllerPluginConfig()
        {
            return array(
                'factories' => array(
                    'ldapPeopleService' => function (PluginManager $sm) {
                        return new Controller\Plugin\LdapPeopleService($sm->getServiceLocator()->get('ldap_people_service'));
                    },
                    'ldapStructureService' => function (PluginManager $sm) {
                        return new Controller\Plugin\LdapStructureService($sm->getServiceLocator()->get('ldap_structure_service'));
                    },
                    'ldapGroupService' => function (PluginManager $sm) {
                        return new Controller\Plugin\LdapGroupService($sm->getServiceLocator()->get('ldap_group_service'));
                    },
                    'mail' => function (PluginManager $sm) {
                        $options = $sm->getServiceLocator()->get('unicaen-app_module_options'); /* @var $options ModuleOptions */
                        $mailOptions = $options->getMail();
                        $transport = new \Zend\Mail\Transport\Smtp(new \Zend\Mail\Transport\SmtpOptions($mailOptions['transport_options']));
                        $plugin = new Controller\Plugin\Mail($transport);
                        if (isset($mailOptions['redirect_to'])) {
                            $plugin->setRedirectTo($mailOptions['redirect_to']);
                        }
                        if (isset($mailOptions['do_not_send'])) {
                            $plugin->setDoNotSend($mailOptions['do_not_send']);
                        }
                        return $plugin;
                    },
                ),
                'invokables' => array(
                    'multipageForm' => '\UnicaenApp\Controller\Plugin\MultipageForm',
                ),
            );
        }
    
        /**
         * 
         * @return array
         * @see ViewHelperProviderInterface
         */
        public function getViewHelperConfig()
        {
            return array(
                'factories' => array(
                    'appInfos' => function (HelperPluginManager $sm) {
                        $options = $sm->getServiceLocator()->get('unicaen-app_module_options'); /* @var $options ModuleOptions */
                        return new View\Helper\AppInfos($options->getAppInfos());
                    },
                    'appLink' => function (HelperPluginManager $sm) {
                        $sl = $sm->getServiceLocator();
                        $helper = new View\Helper\AppLink;
                        $router = \Zend\Console\Console::isConsole() ? 'HttpRouter' : 'Router';
                        $helper->setRouter($sl->get($router));
                        $match = $sl->get('application')->getMvcEvent()->getRouteMatch();
                        if ($match instanceof \Zend\Mvc\Router\RouteMatch) {
                            $helper->setRouteMatch($match);
                        }
                        return $helper;
                    },
                    'appConnection' => function (HelperPluginManager $sm) {
                        return new View\Helper\AppConnection();
                    },
                    'messenger' => function (HelperPluginManager $sm) {
                        return new View\Helper\Messenger();
                    },
    //                'flashMessenger' => function (HelperPluginManager $sm) {
    //                    return new View\Helper\FlashMessenger(
    //                            $sm->getServiceLocator()->get('ControllerPluginManager')/*->get('flashMessenger')*/);
    //                },
                    'multipageFormFieldset' => function (HelperPluginManager $sm) {
                        return new Form\View\Helper\MultipageFormFieldset();
                    },
                    'multipageFormNav' => function (HelperPluginManager $sm) {
                        return new Form\View\Helper\MultipageFormNav();
                    },
                    'multipageFormRow' => function (HelperPluginManager $sm) {
                        return new Form\View\Helper\MultipageFormRow();
                    },
                    'multipageFormRecap' => function (HelperPluginManager $sm) {
                        return new Form\View\Helper\MultipageFormRecap();
                    },
                    'formDateInfSup' => function (HelperPluginManager $sm) {
                        return new Form\View\Helper\FormDateInfSup();
                    },
                    'formRowDateInfSup' => function (HelperPluginManager $sm) {
                        return new Form\View\Helper\FormRowDateInfSup();
                    },
                    'formLdapPeople' => function (HelperPluginManager $sm) {
                        return new Form\View\Helper\FormLdapPeople();
                    },
                    'formErrors' => function (HelperPluginManager $sm) {
                        return new Form\View\Helper\FormErrors();
                    },
                )
            );
        }
    
        /**
         * 
         * @return array
         * @see ServiceProviderInterface
         */
        public function getServiceConfig()
        {
            return array(
                'factories' => array(
                    // mapper d'accès aux individus de l'annuaire LDAP
                    'ldap_people_mapper'       => 'UnicaenApp\Mapper\Ldap\PeopleFactory',
                    // mapper d'accès aux groupes de l'annuaire LDAP
                    'ldap_group_mapper'        => 'UnicaenApp\Mapper\Ldap\GroupFactory',
                    // mapper d'accès aux structures de l'annuaire LDAP
                    'ldap_structure_mapper'    => 'UnicaenApp\Mapper\Ldap\StructureFactory',
                    
                    // service d'accès aux options de config de ce module
                    'unicaen-app_module_options' => function ($sm) {
                        $config = $sm->get('Configuration');
                        return new ModuleOptions(isset($config['unicaen-app']) ? $config['unicaen-app'] : array());
                    },
                            
                    // service de manipulation des individus de l'annuaire LDAP
                    'ldap_people_service'      => 'UnicaenApp\Service\Ldap\PeopleFactory',
                    // service de manipulation des groupes de l'annuaire LDAP
                    'ldap_group_service'       => 'UnicaenApp\Service\Ldap\GroupFactory',
                    // service de manipulation des structures de l'annuaire LDAP
                    'ldap_structure_service'   => 'UnicaenApp\Service\Ldap\StructureFactory',
                            
                    // service de création de modules
                    'module_generator_service' => 'UnicaenApp\Service\Module\ModuleServiceFactory',
                ),
            );
        }
    
    }