PowerKiKi /
mqueue
| 1 | <?php |
||||||
| 2 | |||||||
| 3 | class Bootstrap extends Zend_Application_Bootstrap_Bootstrap |
||||||
| 4 | { |
||||||
| 5 | public static $translator = null; |
||||||
| 6 | |||||||
| 7 | 16 | protected function _initAutoload(): void |
|||||
| 8 | { |
||||||
| 9 | // Add our own action helpers |
||||||
| 10 | 16 | Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . '/mQueue/Controller/ActionHelper', 'mQueue\\Controller\\ActionHelper\\'); |
|||||
| 11 | 16 | } |
|||||
| 12 | |||||||
| 13 | 16 | protected function _initDoctype(): void |
|||||
| 14 | { |
||||||
| 15 | 16 | $this->bootstrap('view'); |
|||||
| 16 | 16 | $view = $this->getResource('view'); |
|||||
| 17 | |||||||
| 18 | // Enable our own View Helpers |
||||||
| 19 | 16 | $view->addHelperPath(APPLICATION_PATH . '/mQueue/View/Helper', 'mQueue\\View\\Helper'); |
|||||
| 20 | 16 | } |
|||||
| 21 | |||||||
| 22 | 16 | protected function _initNavigation(): void |
|||||
| 23 | { |
||||||
| 24 | 16 | $this->bootstrap('view'); |
|||||
| 25 | 16 | $view = $this->getResource('view'); |
|||||
| 26 | |||||||
| 27 | 16 | $navigation = new Zend_Navigation([ |
|||||
| 28 | [ |
||||||
| 29 | 16 | 'label' => $view->translate('Movies'), |
|||||
| 30 | 16 | 'controller' => 'movie', |
|||||
| 31 | 16 | 'route' => 'default', |
|||||
| 32 | 'pages' => [ |
||||||
| 33 | [ |
||||||
| 34 | 16 | 'label' => $view->translate('Add movie'), |
|||||
| 35 | 16 | 'controller' => 'movie', |
|||||
| 36 | 16 | 'action' => 'add', |
|||||
| 37 | 16 | 'route' => 'default', |
|||||
| 38 | ], |
||||||
| 39 | [ |
||||||
| 40 | 16 | 'label' => $view->translate('Import votes from IMDb'), |
|||||
| 41 | 16 | 'controller' => 'movie', |
|||||
| 42 | 16 | 'action' => 'import', |
|||||
| 43 | 16 | 'route' => 'default', |
|||||
| 44 | ], |
||||||
| 45 | ], |
||||||
| 46 | ], |
||||||
| 47 | [ |
||||||
| 48 | 16 | 'label' => $view->translate('Activity'), |
|||||
| 49 | 16 | 'controller' => 'activity', |
|||||
| 50 | 16 | 'route' => 'default', |
|||||
| 51 | ], |
||||||
| 52 | [ |
||||||
| 53 | 16 | 'label' => $view->translate('Users'), |
|||||
| 54 | 16 | 'controller' => 'user', |
|||||
| 55 | 16 | 'route' => 'default', |
|||||
| 56 | ], |
||||||
| 57 | [ |
||||||
| 58 | 16 | 'label' => $view->translate('FAQ'), |
|||||
| 59 | 16 | 'controller' => 'faq', |
|||||
| 60 | 16 | 'route' => 'default', |
|||||
| 61 | ], |
||||||
| 62 | ]); |
||||||
| 63 | |||||||
| 64 | 16 | $view->navigation($navigation); |
|||||
| 65 | 16 | } |
|||||
| 66 | |||||||
| 67 | 16 | protected function _initSession(): void |
|||||
| 68 | { |
||||||
| 69 | // If no open session yet, open it |
||||||
| 70 | 16 | if (isset($_SESSION)) { |
|||||
| 71 | 16 | return; |
|||||
| 72 | } |
||||||
| 73 | |||||||
| 74 | // We need to receive cookie from any third party sites, so we inject SameSite |
||||||
| 75 | // into path, because PHP 7.2 does not have a way to do it properly |
||||||
| 76 | $cookieParams = session_get_cookie_params(); |
||||||
| 77 | session_set_cookie_params( |
||||||
| 78 | $cookieParams['lifetime'], |
||||||
| 79 | $cookieParams['path'] . '; SameSite=None', |
||||||
| 80 | $cookieParams['domain'], |
||||||
| 81 | true, |
||||||
| 82 | true |
||||||
| 83 | ); |
||||||
| 84 | |||||||
| 85 | Zend_Session::setOptions(['name' => 'mqueue']); |
||||||
| 86 | |||||||
| 87 | if (!Zend_Session::sessionExists()) { |
||||||
| 88 | Zend_Session::rememberMe(1 * 60 * 60 * 24 * 31 * 12); // Cookie for 1 year |
||||||
| 89 | } |
||||||
| 90 | } |
||||||
| 91 | |||||||
| 92 | 16 | protected function _initLanguage(): void |
|||||
| 93 | { |
||||||
| 94 | 16 | $session = new Zend_Session_Namespace(); |
|||||
| 95 | |||||||
| 96 | // handle language switch |
||||||
| 97 | 16 | if (isset($_GET['lang'])) { |
|||||
| 98 | $session->locale = $_GET['lang']; |
||||||
| 99 | } |
||||||
| 100 | |||||||
| 101 | 16 | if (isset($session->locale)) { |
|||||
| 102 | $locale = new Zend_Locale($session->locale); |
||||||
| 103 | } else { |
||||||
| 104 | 16 | $locale = new Zend_Locale(); // autodetect browser |
|||||
| 105 | } |
||||||
| 106 | 16 | Zend_Registry::set(Zend_Locale::class, $locale); |
|||||
| 107 | |||||||
| 108 | 16 | $adapter = new Zend_Translate('gettext', APPLICATION_PATH . '/localization', $locale, ['scan' => Zend_Translate::LOCALE_FILENAME, 'disableNotices' => true]); |
|||||
| 109 | 16 | Zend_Registry::set(Zend_Translate::class, $adapter); |
|||||
| 110 | 16 | Zend_Form::setDefaultTranslator($adapter); |
|||||
| 111 | 16 | self::$translator = $adapter; |
|||||
| 112 | 16 | } |
|||||
| 113 | |||||||
| 114 | 16 | protected function _initPagination(): void |
|||||
| 115 | { |
||||||
| 116 | 16 | Zend_Paginator::setDefaultScrollingStyle('Elastic'); |
|||||
| 117 | 16 | Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml'); |
|||||
| 118 | 16 | } |
|||||
| 119 | |||||||
| 120 | 16 | protected function _initRoutes(): void |
|||||
| 121 | { |
||||||
| 122 | 16 | $front = Zend_Controller_Front::getInstance(); |
|||||
| 123 | 16 | $router = $front->getRouter(); |
|||||
| 124 | |||||||
| 125 | // Required for unit tests |
||||||
| 126 | 16 | $router->addDefaultRoutes(); |
|||||
|
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||||||
| 127 | |||||||
| 128 | // A route for single id (typically view a single movie/user) |
||||||
| 129 | 16 | $router->addRoute('singleid', new Zend_Controller_Router_Route(':controller/:action/:id', ['action' => 'view'])); |
|||||
|
0 ignored issues
–
show
The method
addRoute() does not exist on Zend_Controller_Router_Interface. It seems like you code against a sub-type of Zend_Controller_Router_Interface such as Zend_Controller_Router_Rewrite.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||
| 130 | |||||||
| 131 | // A route for activities |
||||||
| 132 | 16 | $router->addRoute('activity', new Zend_Controller_Router_Route('activity/*', ['controller' => 'activity', 'action' => 'index'])); |
|||||
| 133 | 16 | $router->addRoute('activityMovie', new Zend_Controller_Router_Route('activity/movie/:movie/*', ['controller' => 'activity', 'action' => 'index'])); |
|||||
| 134 | 16 | $router->addRoute('activityUser', new Zend_Controller_Router_Route('activity/user/:user/*', ['controller' => 'activity', 'action' => 'index'])); |
|||||
| 135 | |||||||
| 136 | // For backward compatibility with RSS readers we keep the old route |
||||||
| 137 | 16 | $router->addRoute('activityOld', new Zend_Controller_Router_Route('activity/index/*', ['controller' => 'activity', 'action' => 'index'])); |
|||||
| 138 | 16 | $router->addRoute('activityMovieOld', new Zend_Controller_Router_Route('activity/index/movie/:movie/*', ['controller' => 'activity', 'action' => 'index'])); |
|||||
| 139 | 16 | $router->addRoute('activityUserOld', new Zend_Controller_Router_Route('activity/index/user/:user/*', ['controller' => 'activity', 'action' => 'index'])); |
|||||
| 140 | |||||||
| 141 | // Routes to define and view statuses |
||||||
| 142 | 16 | $router->addRoute('status', new Zend_Controller_Router_Route_Regex('status/(\d+)/(\d)', ['controller' => 'status', 'action' => 'index'], [1 => 'movie', 2 => 'rating'], 'status/%s/%s')); |
|||||
| 143 | 16 | $router->addRoute('statusView', new Zend_Controller_Router_Route_Regex('status/(\d+)', ['controller' => 'status', 'action' => 'index'], [1 => 'movie'], 'status/%s')); |
|||||
| 144 | 16 | } |
|||||
| 145 | |||||||
| 146 | /** |
||||||
| 147 | * Add the Zend_Db_Adapter to the registry if we need to call it outside of the modules. |
||||||
| 148 | * |
||||||
| 149 | * @return Zend_Db_Adapter_Abstract |
||||||
| 150 | */ |
||||||
| 151 | 16 | protected function _initMyDb() |
|||||
| 152 | { |
||||||
| 153 | 16 | $db = $this->getPluginResource('db')->getDbAdapter(); |
|||||
|
0 ignored issues
–
show
The method
getDbAdapter() does not exist on Zend_Application_Resource_Resource. It seems like you code against a sub-type of Zend_Application_Resource_Resource such as Zend_Application_Resource_Db.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||
| 154 | 16 | Zend_Registry::set('db', $db); |
|||||
| 155 | |||||||
| 156 | 16 | return $db; |
|||||
| 157 | } |
||||||
| 158 | } |
||||||
| 159 | |||||||
| 160 | /** |
||||||
| 161 | * Global shortcut method that returns localized strings |
||||||
| 162 | * |
||||||
| 163 | * @param string $msgId the original string to translate |
||||||
| 164 | * |
||||||
| 165 | * @return string the translated string |
||||||
| 166 | */ |
||||||
| 167 | function _tr($msgId) |
||||||
| 168 | { |
||||||
| 169 | 12 | return Bootstrap::$translator->translate($msgId); |
|||||
| 170 | } |
||||||
| 171 |