2016-05-05 14:33:38 +02:00

114 lines
4.9 KiB
PHP

<?php
class Application_Controller_Plugin_Menu extends Zend_Controller_Plugin_Abstract
{
/**
* Créer le menu en fonction des besoins et des paramètres en entrée
* @param Zend_Controller_Request_Abstract $request
*/
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
<<<<<<< Upstream, based on master
Zend_Registry::get('firebug')->info('PLUGIN MENU - START');
$layout = Zend_Layout::getMVCInstance();
$user = new Scores_Utilisateur();
=======
/**
* Définition du menu à afficher par module
* admin => Administration : Liste des utilisateurs, etc
* file => Distribution des fichier + print, pas de navbar
* help => Aide, Faq, Nouveautés
* legal => Identite, Dirigeants, Finance, Juridique, Evaluation, Pieces Officielles, BDF !!!!!
* order => Commandes
* input => Element de saisie, pas de navbar
* search => Formulaire de recherche
* user => Paramètres, Portefeuille, Surveillances
*/
>>>>>>> 489b002 Integration menu
$module = $request->getModuleName();
$controller = $request->getControllerName();
$action = $request->getActionName();
if ($module == 'default' && $controller == 'index' && $action = 'index') {
return;
}
<<<<<<< Upstream, based on master
=======
Zend_Registry::get('firebug')->info('PLUGIN MENU - START');
$layout = Zend_Layout::getMVCInstance();
if ($layout->isEnabled() && $controller != 'print' ) {
$user = new Scores_Utilisateur();
if ($user->isLog()) {
switch ($module) {
case 'search':
$view = $layout->getView();
$view->MenuAdvanced = true;
$config = include APPLICATION_PATH . '/configs/menu.search.php';
$container = new Zend_Navigation($config);
$view->navigation($container);
$view->headLink()
->appendStylesheet('/libs/metisMenu/metisMenu.css', 'all');
$view->headScript()
->appendFile('/libs/metisMenu/metisMenu.js', 'text/javascript');
break;
default:
// --- Override SIRET to complete with zero by left
$siret = $request->getParam('siret');
if ( intval($siret)>100 ) {
$request->setParam('siret', str_pad($siret, 9, '0', STR_PAD_LEFT));
}
// --- Génération du menu
$computeMenu = new Scores_Menu($request->getParams());
$menu = $computeMenu->getMenu();
$view = $layout->getView();
$view->navigation($menu);
// --- Identifiant Menu
$view->menuId = $computeMenu->getIdMenu($controller, $action);
// --- Page Access
$hasPerm = true;
$permPage = $computeMenu->getPagePermission($controller, $action);
if ( !empty($permPage) ) {
$hasPerm = false;
if (is_array($permPage)){
$list = $permPage;
} else if (is_string($permPage)){
$list = (array)$permPage;
}
foreach($list as $permission){
if ($user->checkPerm($permission)){
$hasPerm = true;
break;
}
}
}
if ( !$hasPerm ) {
$request->setModuleName('default')->setControllerName('error')->setActionName('perms');
} else {
//Gestion affichage Lien Print / PDF / XML
$page = new Scores_Export_Print($controller, $action);
if ($page->exportable('print')){
$view->print = $page->filename('print', $request->getParams());
}
if ($page->exportable('pdf')){
$view->pdf = $page->filename('pdf', $request->getParams());
}
if ($page->exportable('xml') && in_array($user->getIdClient(), array(1,147)) ){
$view->xml = $page->filename('xml', $request->getParams());
}
}
break;
}
}
}
>>>>>>> 489b002 Integration menu
Zend_Registry::get('firebug')->info('PLUGIN MENU - END');
}
}