Issues (98)

application/Bootstrap.php (3 issues)

Labels
Severity
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
The method addDefaultRoutes() 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 ignore-call  annotation

126
        $router->/** @scrutinizer ignore-call */ 
127
                 addDefaultRoutes();
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 ignore-call  annotation

129
        $router->/** @scrutinizer ignore-call */ 
130
                 addRoute('singleid', new Zend_Controller_Router_Route(':controller/:action/:id', ['action' => 'view']));
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 ignore-call  annotation

153
        $db = $this->getPluginResource('db')->/** @scrutinizer ignore-call */ getDbAdapter();
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