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
![]() |
|||||||
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
![]() |
|||||||
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
![]() |
|||||||
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 |