Failed Conditions
Push — master ( 0277b0...c75260 )
by Adrien
03:37
created

Bootstrap::_initPagination()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 2
c 0
b 0
f 0
dl 0
loc 4
rs 10
ccs 3
cts 3
cp 1
cc 1
nc 1
nop 0
crap 1
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 16
        $view->doctype(Zend_View_Helper_Doctype::XHTML1_STRICT);
18
19
        // Enable our own View Helpers
20 16
        $view->addHelperPath(APPLICATION_PATH . '/mQueue/View/Helper', 'mQueue\\View\\Helper');
21 16
    }
22
23 16
    protected function _initNavigation(): void
24
    {
25 16
        $this->bootstrap('view');
26 16
        $view = $this->getResource('view');
27
28 16
        $navigation = new Zend_Navigation([
29
            [
30 16
                'label' => $view->translate('Movies'),
31 16
                'controller' => 'movie',
32 16
                'route' => 'default',
33
                'pages' => [
34
                    [
35 16
                        'label' => $view->translate('Add movie'),
36 16
                        'controller' => 'movie',
37 16
                        'action' => 'add',
38 16
                        'route' => 'default',
39
                    ],
40
                    [
41 16
                        'label' => $view->translate('Import votes from IMDb'),
42 16
                        'controller' => 'movie',
43 16
                        'action' => 'import',
44 16
                        'route' => 'default',
45
                    ],
46
                ],
47
            ],
48
            [
49 16
                'label' => $view->translate('Activity'),
50 16
                'controller' => 'activity',
51 16
                'route' => 'default',
52
            ],
53
            [
54 16
                'label' => $view->translate('Users'),
55 16
                'controller' => 'user',
56 16
                'route' => 'default',
57
            ],
58
            [
59 16
                'label' => $view->translate('FAQ'),
60 16
                'controller' => 'faq',
61 16
                'route' => 'default',
62
            ],
63
        ]);
64
65 16
        $view->navigation($navigation);
66 16
    }
67
68 16
    protected function _initSession(): void
69
    {
70 16
        Zend_Session::setOptions(['name' => 'mqueue']);
71
72 16
        if (!Zend_Session::sessionExists()) {
73
            Zend_Session::rememberMe(1 * 60 * 60 * 24 * 31 * 12); // Cookie for 1 year
74
        }
75 16
    }
76
77 16
    protected function _initLanguage(): void
78
    {
79 16
        $session = new Zend_Session_Namespace();
80
81
        // handle language switch
82 16
        if (isset($_GET['lang'])) {
83
            $session->locale = $_GET['lang'];
84
        }
85
86 16
        if (isset($session->locale)) {
87
            $locale = new Zend_Locale($session->locale);
88
        } else {
89 16
            $locale = new Zend_Locale(); // autodetect browser
90
        }
91 16
        Zend_Registry::set('Zend_Locale', $locale);
92
93 16
        $adapter = new Zend_Translate('gettext', APPLICATION_PATH . '/localization', $locale, ['scan' => Zend_Translate::LOCALE_FILENAME, 'disableNotices' => true]);
94 16
        Zend_Registry::set('Zend_Translate', $adapter);
95 16
        Zend_Form::setDefaultTranslator($adapter);
96 16
        self::$translator = $adapter;
97 16
    }
98
99 16
    protected function _initPagination(): void
100
    {
101 16
        Zend_Paginator::setDefaultScrollingStyle('Elastic');
102 16
        Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
103 16
    }
104
105 16
    protected function _initRoutes(): void
106
    {
107 16
        $front = Zend_Controller_Front::getInstance();
108 16
        $router = $front->getRouter();
109
110
        // Required for unit tests
111 16
        $router->addDefaultRoutes();
0 ignored issues
show
Bug introduced by
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

111
        $router->/** @scrutinizer ignore-call */ 
112
                 addDefaultRoutes();
Loading history...
112
113
        // A route for single id (typically view a single movie/user)
114 16
        $router->addRoute('singleid', new Zend_Controller_Router_Route(':controller/:action/:id', ['action' => 'view']));
0 ignored issues
show
Bug introduced by
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

114
        $router->/** @scrutinizer ignore-call */ 
115
                 addRoute('singleid', new Zend_Controller_Router_Route(':controller/:action/:id', ['action' => 'view']));
Loading history...
115
116
        // A route for activities
117 16
        $router->addRoute('activity', new Zend_Controller_Router_Route('activity/*', ['controller' => 'activity', 'action' => 'index']));
118 16
        $router->addRoute('activityMovie', new Zend_Controller_Router_Route('activity/movie/:movie/*', ['controller' => 'activity', 'action' => 'index']));
119 16
        $router->addRoute('activityUser', new Zend_Controller_Router_Route('activity/user/:user/*', ['controller' => 'activity', 'action' => 'index']));
120
121
        // For backward compatibility with RSS readers we keep the old route
122 16
        $router->addRoute('activityOld', new Zend_Controller_Router_Route('activity/index/*', ['controller' => 'activity', 'action' => 'index']));
123 16
        $router->addRoute('activityMovieOld', new Zend_Controller_Router_Route('activity/index/movie/:movie/*', ['controller' => 'activity', 'action' => 'index']));
124 16
        $router->addRoute('activityUserOld', new Zend_Controller_Router_Route('activity/index/user/:user/*', ['controller' => 'activity', 'action' => 'index']));
125
126
        // Routes to define and view statuses
127 16
        $router->addRoute('status', new Zend_Controller_Router_Route_Regex('status/(\d+)/(\d)', ['controller' => 'status', 'action' => 'index'], [1 => 'movie', 2 => 'rating'], 'status/%s/%s'));
128 16
        $router->addRoute('statusView', new Zend_Controller_Router_Route_Regex('status/(\d+)', ['controller' => 'status', 'action' => 'index'], [1 => 'movie'], 'status/%s'));
129 16
    }
130
131
    /**
132
     * Add the Zend_Db_Adapter to the registry if we need to call it outside of the modules.
133
     *
134
     * @return Zend_Db_Adapter_Abstract
135
     */
136 16
    protected function _initMyDb()
137
    {
138 16
        $db = $this->getPluginResource('db')->getDbAdapter();
0 ignored issues
show
Bug introduced by
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

138
        $db = $this->getPluginResource('db')->/** @scrutinizer ignore-call */ getDbAdapter();
Loading history...
139 16
        Zend_Registry::set('db', $db);
140
141 16
        return $db;
142
    }
143
}
144
145
/**
146
 * Global shortcut method that returns localized strings
147
 *
148
 * @param string $msgId the original string to translate
149
 *
150
 * @return string the translated string
151
 */
152
function _tr($msgId)
153
{
154 12
    return Bootstrap::$translator->translate($msgId);
155
}
156