info('PLUGIN THEME - START'); $auth = Zend_Auth::getInstance(); $theme = 'default'; //$theme = 'mobile'; if ( $auth->hasIdentity() ) { $theme = !empty($auth->getIdentity()->theme) ? $auth->getIdentity()->theme : 'default'; } $module = $request->getModuleName(); $controller = $request->getControllerName(); $action = $request->getActionName(); //Sauvegarde des paramètres du themes pour gérer les scripts et styles à utiliser $paramsTheme = new stdClass(); $paramsTheme->name = $theme; $paramsTheme->pathStyle = '/themes/'.$theme.'/styles'; $paramsTheme->pathScript = '/themes/'.$theme.'/scripts'; $paramsTheme->pathImg = '/themes/'.$theme.'/images'; Zend_Registry::set('theme', $paramsTheme); //Load bootstrap $bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap'); //Get useragent and device informations $userAgent = $bootstrap->getResource('useragent'); $device = $userAgent->getDevice(); //Module default de l'application $layoutPath = APPLICATION_PATH . '/layouts/' . $theme; $helperPath = APPLICATION_PATH . '/layouts/helpers'; $viewPath = APPLICATION_PATH . '/modules/'.$module.'/views/default'; //Override path for view and layout $view = $bootstrap->bootstrap('View')->getResource('View'); $view->setBasePath($viewPath); $view->setHelperPath($helperPath); $layout = $bootstrap->bootstrap('Layout')->getResource('Layout'); $layout->setLayout('layout'); $layout->setLayoutPath($layoutPath); //Load default style and javascript files for the selected theme switch ( $theme ) { case 'default': case 'default2016': default: $view->doctype('HTML5'); $view->headMeta() ->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8') ->appendHttpEquiv('Content-Language', 'fr-FR'); //Favicon - Touch icon for iOS 2.0+ and Android 2.1+ $view->headLink()->headLink(array( 'rel' => 'apple-touch-icon-precomposed', 'href' => '/favicon-152.png' )); //Favicon - targeted to any additional png size $view->headLink()->headLink(array( 'rel' => 'icon', 'type' => 'image/png', 'href' => '/favicon-32.png' )); $view->headLink()->headLink(array( 'rel' => 'shortcut icon', 'type' => 'image/x-icon', 'href' => '/favicon.ico') ); $UserLogin = false; if ( $module == 'auth' ) { $UserLogin = true; } /** * ===> Standard Styles */ $view->headLink() ->appendStylesheet('/libs/bootstrap-3.3.6/css/bootstrap.min.css', 'all') ->appendStylesheet('/libs/ui-1.11.4/themes/smoothness/jquery-ui.min.css', 'all') ->appendStylesheet('/libs/qtip/jquery.qtip.min.css', 'all') ->appendStylesheet('/libs/font-awesome-4.5.0/css/font-awesome.min.css', 'all'); if ( $UserLogin ) { $view->headLink()->appendStylesheet('/themes/default/styles/user-login.css', 'all'); } else { $view->headLink()->appendStylesheet($paramsTheme->pathStyle.'/main.css', 'all'); } /** * ===> Standard Javascript */ $view->headScript() ->appendFile('/libs/html5shiv.min.js', 'text/javascript', array('conditional' => 'lt IE 9')) ->appendFile('/libs/respond.min.js', 'text/javascript', array('conditional' => 'lt IE 9')) ->appendFile('/libs/jquery/jquery-1.12.3.min.js', 'text/javascript') ->appendFile('/libs/bootstrap-3.3.6/js/bootstrap.min.js', 'text/javascript'); if ( $UserLogin ) { $view->headScript() ->appendFile('/libs/jquery/jquery.placeholder.min.js', 'text/javascript', array('conditional' => 'lt IE 9')); } $view->headScript() ->appendFile('/libs/ui-1.11.4/jquery-ui.min.js', 'text/javascript') ->appendFile('/libs/ui-1.11.4/i18n/datepicker-fr.js', 'text/javascript'); if ( ! $UserLogin ) { $view->headScript() ->appendFile('/libs/qtip/jquery.qtip.min.js', 'text/javascript') ->appendFile($paramsTheme->pathScript.'/script.js', 'text/javascript'); } break; case 'mobile': //@todo $view->doctype('HTML5'); $view->headMeta() ->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8') ->appendHttpEquiv('Content-Language', 'fr-FR') ->appendName('viewport', 'width=device-width, initial-scale=1'); //Favicon - Touch icon for iOS 2.0+ and Android 2.1+ $view->headLink()->headLink(array( 'rel' => 'apple-touch-icon-precomposed', 'href' => '/favicon-152.png' )); //Favicon - targeted to any additional png size $view->headLink()->headLink(array( 'rel' => 'icon', 'type' => 'image/png', 'href' => '/favicon-32.png' )); $view->headLink()->headLink(array( 'rel' => 'shortcut icon', 'type' => 'image/x-icon', 'href' => '/favicon.ico') ); //Style $view->headLink() ->appendStylesheet('/libs/mobile/1.4.2/jquery.mobile-1.4.2.min.css', 'all'); //JavaScript $view->headScript() ->appendFile('/libs/jquery/jquery-2.1.0.min.js', 'text/javascript') ->appendFile('/libs/mobile/1.4.2/jquery.mobile-1.4.2.min.js', 'text/javascript') ->appendFile($paramsTheme->pathScript.'/script.js', 'text/javascript'); break; } Zend_Registry::get('firebug')->info('PLUGIN THEME - STOP'); } }