]> git.mxchange.org Git - hub.git/blob - application/hub/main/controller/console/class_HubConsoleDefaultNewsController.php
Filters and chains added:
[hub.git] / application / hub / main / controller / console / class_HubConsoleDefaultNewsController.php
1 <?php
2 /**
3  * The default controller with news for e.g. home or news page
4  *
5  * @author              Roland Haeder <webmaster@ship-simu.org>
6  * @version             0.0.0
7  * @copyright   Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
8  * @license             GNU GPL 3.0 or any newer version
9  * @link                http://www.ship-simu.org
10  *
11  * This program is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation, either version 3 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program. If not, see <http://www.gnu.org/licenses/>.
23  */
24 class HubConsoleDefaultNewsController extends BaseController implements Controller {
25         /**
26          * Protected constructor
27          *
28          * @return      void
29          */
30         protected function __construct () {
31                 // Call parent constructor
32                 parent::__construct(__CLASS__);
33
34                 // Init additional filter groups
35                 $this->initFilterChain('bootstrap');
36                 $this->initFilterChain('hub_activation');
37         }
38
39         /**
40          * Creates an instance of this class
41          *
42          * @param       $resolverInstance               An instance of a command resolver class
43          * @return      $controllerInstance             A prepared instance of this class
44          */
45         public final static function createHubConsoleDefaultNewsController (CommandResolver $resolverInstance) {
46                 // Create the instance
47                 $controllerInstance = new HubConsoleDefaultNewsController();
48
49                 // Set the command resolver
50                 $controllerInstance->setResolverInstance($resolverInstance);
51
52                 // Add news filters to this controller
53                 $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_download_filter'));
54                 $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_process_filter'));
55
56                 // Return the prepared instance
57                 return $controllerInstance;
58         }
59
60         /**
61          * Handles the given request and response
62          *
63          * @param       $requestInstance        An instance of a request class
64          * @param       $responseInstance       An instance of a response class
65          * @return      void
66          */
67         public function handleRequest (Requestable $requestInstance, Responseable $responseInstance) {
68                 // Get the command instance from the resolver by sending a request instance to the resolver
69                 $commandInstance = $this->getResolverInstance()->resolveCommandByRequest($requestInstance);
70
71                 // Add more filters by the command
72                 $commandInstance->addExtraFilters($this, $requestInstance);
73
74                 // Run the pre filters
75                 $this->executePreFilters($requestInstance, $responseInstance);
76
77                 // This request was valid! :-D
78                 $requestInstance->requestIsValid();
79
80                 // Execute the command
81                 $commandInstance->execute($requestInstance, $responseInstance);
82
83                 // Run the pre filters
84                 $this->executePostFilters($requestInstance, $responseInstance);
85
86                 // Flush the response out
87                 $responseInstance->flushBuffer();
88         }
89
90         /**
91          * Add a bootstrap filter
92          *
93          * @param       $filterInstance         A Filterable class
94          * @return      void
95          */
96         public function addBootstrapFilter (Filterable $filterInstance) {
97                 $this->addFilter('bootstrap', $filterInstance);
98         }
99
100         /**
101          * Executes all bootstrap filters
102          *
103          * @param       $requestInstance        A Requestable class
104          * @param       $responseInstance       A Responseable class
105          * @return      void
106          */
107         public function executeBootstrapFilters (Requestable $requestInstance, Responseable $responseInstance) {
108                 $this->executeFilters('bootstrap', $requestInstance, $responseInstance);
109         }
110
111         /**
112          * Add a hub activation filter
113          *
114          * @param       $filterInstance         A Filterable class
115          * @return      void
116          */
117         public function addHubActivationFilter (Filterable $filterInstance) {
118                 $this->addFilter('hub_activation', $filterInstance);
119         }
120
121         /**
122          * Executes all hub activation filters
123          *
124          * @param       $requestInstance        A Requestable class
125          * @param       $responseInstance       A Responseable class
126          * @return      void
127          */
128         public function executeHubActivationFilters (Requestable $requestInstance, Responseable $responseInstance) {
129                 $this->executeFilters('hub_activation', $requestInstance, $responseInstance);
130         }
131 }
132
133 // [EOF]
134 ?>