@@ -23,51 +23,51 @@ |
||
23 | 23 | * {@inhericDoc} |
24 | 24 | * @see \MyArtJaub\Webtrees\Mvc\View\AbstractView::renderContent() |
25 | 25 | */ |
26 | - protected function renderContent() { |
|
26 | + protected function renderContent() { |
|
27 | 27 | |
28 | - return ' |
|
28 | + return ' |
|
29 | 29 | <tr> |
30 | 30 | <td class="descriptionbox wrap width33">' . |
31 | - I18N::translate('Enable Piwik Statistics') . |
|
32 | - // Ideally, would like to add helpLink, but this does not work for modules... |
|
33 | - // FunctionsPrint::helpLink('piwik_enabled', $this->getName()); |
|
34 | - '</td> |
|
31 | + I18N::translate('Enable Piwik Statistics') . |
|
32 | + // Ideally, would like to add helpLink, but this does not work for modules... |
|
33 | + // FunctionsPrint::helpLink('piwik_enabled', $this->getName()); |
|
34 | + '</td> |
|
35 | 35 | <td class="optionbox">' . |
36 | - FunctionsEdit::editFieldYesNo('piwik_enabled', $this->data->get('piwik_enabled', '0')) . |
|
37 | - '</td> |
|
36 | + FunctionsEdit::editFieldYesNo('piwik_enabled', $this->data->get('piwik_enabled', '0')) . |
|
37 | + '</td> |
|
38 | 38 | </tr>' . |
39 | 39 | |
40 | - '<tr> |
|
40 | + '<tr> |
|
41 | 41 | <td class="descriptionbox wrap width33">' . |
42 | - I18N::translate('Piwik URL') . |
|
43 | - '</td> |
|
42 | + I18N::translate('Piwik URL') . |
|
43 | + '</td> |
|
44 | 44 | <td class="optionbox"> |
45 | 45 | <input type="text" name="piwik_url" size="45" value="' . |
46 | - $this->data->get('piwik_url', '') . '" /> |
|
46 | + $this->data->get('piwik_url', '') . '" /> |
|
47 | 47 | </td> |
48 | 48 | </tr>' . |
49 | 49 | |
50 | - '<tr> |
|
50 | + '<tr> |
|
51 | 51 | <td class="descriptionbox wrap width33">' . |
52 | - I18N::translate('Piwik Token') . |
|
53 | - '</td> |
|
52 | + I18N::translate('Piwik Token') . |
|
53 | + '</td> |
|
54 | 54 | <td class="optionbox"> |
55 | 55 | <input type="text" name="piwik_token" size="45" value="' . |
56 | - $this->data->get('piwik_token', '') . '" /> |
|
56 | + $this->data->get('piwik_token', '') . '" /> |
|
57 | 57 | </td> |
58 | 58 | </tr>' . |
59 | 59 | |
60 | - '<tr> |
|
60 | + '<tr> |
|
61 | 61 | <td class="descriptionbox wrap width33">' . |
62 | - I18N::translate('Piwik Site ID') . |
|
63 | - '</td> |
|
62 | + I18N::translate('Piwik Site ID') . |
|
63 | + '</td> |
|
64 | 64 | <td class="optionbox"> |
65 | 65 | <input type="text" name="piwik_siteid" size="4" value="' . |
66 | - $this->data->get('piwik_siteid', '') . '" /> |
|
66 | + $this->data->get('piwik_siteid', '') . '" /> |
|
67 | 67 | </td> |
68 | 68 | </tr>' ; |
69 | 69 | |
70 | - } |
|
70 | + } |
|
71 | 71 | |
72 | 72 | |
73 | 73 | } |
@@ -34,26 +34,26 @@ |
||
34 | 34 | protected $fact; |
35 | 35 | |
36 | 36 | /** |
37 | - * Contructor for the decorator |
|
38 | - * |
|
39 | - * @param \Fisharebest\Webtrees\Fact $fact_in The Fact to extend |
|
40 | - */ |
|
37 | + * Contructor for the decorator |
|
38 | + * |
|
39 | + * @param \Fisharebest\Webtrees\Fact $fact_in The Fact to extend |
|
40 | + */ |
|
41 | 41 | public function __construct(\Fisharebest\Webtrees\Fact $fact_in){ |
42 | 42 | $this->fact = $fact_in; |
43 | 43 | } |
44 | 44 | |
45 | 45 | /** |
46 | - * Check if a fact has a date and is sourced |
|
47 | - * Values: |
|
48 | - * - 0, if no date is found for the fact |
|
49 | - * - -1, if the date is not precise |
|
50 | - * - -2, if the date is precise, but no source is found |
|
51 | - * - 1, if the date is precise, and a source is found |
|
52 | - * - 2, if the date is precise, a source exists, and is supported by a certificate (requires _ACT usage) |
|
53 | - * - 3, if the date is precise, a source exists, and the certificate supporting the fact is within an acceptable range of date |
|
54 | - * |
|
55 | - * @return int Level of sources |
|
56 | - */ |
|
46 | + * Check if a fact has a date and is sourced |
|
47 | + * Values: |
|
48 | + * - 0, if no date is found for the fact |
|
49 | + * - -1, if the date is not precise |
|
50 | + * - -2, if the date is precise, but no source is found |
|
51 | + * - 1, if the date is precise, and a source is found |
|
52 | + * - 2, if the date is precise, a source exists, and is supported by a certificate (requires _ACT usage) |
|
53 | + * - 3, if the date is precise, a source exists, and the certificate supporting the fact is within an acceptable range of date |
|
54 | + * |
|
55 | + * @return int Level of sources |
|
56 | + */ |
|
57 | 57 | public function isSourced(){ |
58 | 58 | $isSourced=0; |
59 | 59 | $date = $this->fact->getDate(false); |
@@ -16,10 +16,10 @@ discard block |
||
16 | 16 | */ |
17 | 17 | class Cache{ |
18 | 18 | |
19 | - /** |
|
20 | - * Underlying Zend Cache object |
|
21 | - * @var \Zend_Cache_Core|\Zend_Cache_FrontEnd $cache |
|
22 | - */ |
|
19 | + /** |
|
20 | + * Underlying Zend Cache object |
|
21 | + * @var \Zend_Cache_Core|\Zend_Cache_FrontEnd $cache |
|
22 | + */ |
|
23 | 23 | protected $cache=null; |
24 | 24 | |
25 | 25 | /** |
@@ -41,11 +41,11 @@ discard block |
||
41 | 41 | */ |
42 | 42 | protected static function getInstance() |
43 | 43 | { |
44 | - if (null === static::$instance) { |
|
45 | - static::$instance = new static(); |
|
46 | - } |
|
44 | + if (null === static::$instance) { |
|
45 | + static::$instance = new static(); |
|
46 | + } |
|
47 | 47 | |
48 | - return static::$instance; |
|
48 | + return static::$instance; |
|
49 | 49 | } |
50 | 50 | |
51 | 51 | /** |
@@ -91,7 +91,7 @@ discard block |
||
91 | 91 | * @return string Cached key name |
92 | 92 | */ |
93 | 93 | protected function getKeyName($value, AbstractModule $mod = null){ |
94 | - $this->checkInit(); |
|
94 | + $this->checkInit(); |
|
95 | 95 | $mod_name = 'myartjaub'; |
96 | 96 | if($mod != null) $mod_name = $mod->getName(); |
97 | 97 | return $mod_name.'_'.$value; |
@@ -117,7 +117,7 @@ discard block |
||
117 | 117 | * @return bool True is cached |
118 | 118 | */ |
119 | 119 | public static function isCached($value, AbstractModule $mod = null) { |
120 | - self::getInstance()->isCachedI($value, $mod); |
|
120 | + self::getInstance()->isCachedI($value, $mod); |
|
121 | 121 | } |
122 | 122 | |
123 | 123 | /** |
@@ -140,7 +140,7 @@ discard block |
||
140 | 140 | * @return unknown_type Cached value |
141 | 141 | */ |
142 | 142 | public static function get($value, AbstractModule $mod = null){ |
143 | - self::getInstance()->getI($value, $mod); |
|
143 | + self::getInstance()->getI($value, $mod); |
|
144 | 144 | } |
145 | 145 | |
146 | 146 | /** |
@@ -166,7 +166,7 @@ discard block |
||
166 | 166 | * @return unknown_type Cached value |
167 | 167 | */ |
168 | 168 | public static function save($value, $data, AbstractModule $mod = null){ |
169 | - self::getInstance()->saveI($value, $data, $mod); |
|
169 | + self::getInstance()->saveI($value, $data, $mod); |
|
170 | 170 | } |
171 | 171 | |
172 | 172 | /** |
@@ -174,7 +174,7 @@ discard block |
||
174 | 174 | * |
175 | 175 | */ |
176 | 176 | public function cleanI(){ |
177 | - $this->checkInit(); |
|
177 | + $this->checkInit(); |
|
178 | 178 | $this->cache->clean(); |
179 | 179 | } |
180 | 180 | |
@@ -182,7 +182,7 @@ discard block |
||
182 | 182 | * Static invocation of the *clean* method. |
183 | 183 | */ |
184 | 184 | public static function clean() { |
185 | - self::getInstance()->cleanI(); |
|
185 | + self::getInstance()->cleanI(); |
|
186 | 186 | } |
187 | 187 | |
188 | 188 | } |
189 | 189 | \ No newline at end of file |
@@ -39,10 +39,10 @@ |
||
39 | 39 | } |
40 | 40 | |
41 | 41 | /** |
42 | - * Check if this family's marriages are sourced |
|
43 | - * |
|
44 | - * @return int Level of sources |
|
45 | - * */ |
|
42 | + * Check if this family's marriages are sourced |
|
43 | + * |
|
44 | + * @return int Level of sources |
|
45 | + * */ |
|
46 | 46 | function isMarriageSourced(){ |
47 | 47 | if($this->_ismarriagesourced != null) return $this->_ismarriagesourced; |
48 | 48 | $this->_ismarriagesourced = $this->isFactSourced(WT_EVENTS_MARR.'|MARC'); |
@@ -15,12 +15,12 @@ |
||
15 | 15 | */ |
16 | 16 | interface MvcControllerInterface { |
17 | 17 | |
18 | - /** |
|
19 | - * Return the module attached to this controller. |
|
20 | - * |
|
21 | - * @return \Fisharebest\Webtrees\Module\AbstractModule |
|
22 | - */ |
|
23 | - function getModule(); |
|
18 | + /** |
|
19 | + * Return the module attached to this controller. |
|
20 | + * |
|
21 | + * @return \Fisharebest\Webtrees\Module\AbstractModule |
|
22 | + */ |
|
23 | + function getModule(); |
|
24 | 24 | |
25 | 25 | } |
26 | 26 | |
27 | 27 | \ No newline at end of file |
@@ -17,28 +17,28 @@ |
||
17 | 17 | */ |
18 | 18 | class MvcController implements MvcControllerInterface |
19 | 19 | { |
20 | - /** |
|
21 | - * Reference module |
|
22 | - * @var Fisharebest\Webtrees\Module\AbstractModule $module |
|
23 | - */ |
|
24 | - protected $module; |
|
20 | + /** |
|
21 | + * Reference module |
|
22 | + * @var Fisharebest\Webtrees\Module\AbstractModule $module |
|
23 | + */ |
|
24 | + protected $module; |
|
25 | 25 | |
26 | - /** |
|
27 | - * Constructor for MvcController |
|
28 | - * |
|
29 | - * @param AbstractModule $module |
|
30 | - */ |
|
31 | - public function __construct(AbstractModule $module) { |
|
32 | - $this->module = $module; |
|
33 | - } |
|
26 | + /** |
|
27 | + * Constructor for MvcController |
|
28 | + * |
|
29 | + * @param AbstractModule $module |
|
30 | + */ |
|
31 | + public function __construct(AbstractModule $module) { |
|
32 | + $this->module = $module; |
|
33 | + } |
|
34 | 34 | |
35 | - /** |
|
36 | - * {@inheritDoc} |
|
37 | - * @see \MyArtJaub\Webtrees\Mvc\Controller\MvcControllerInterface::getModule() |
|
38 | - */ |
|
39 | - public function getModule() { |
|
40 | - return $this->module; |
|
41 | - } |
|
35 | + /** |
|
36 | + * {@inheritDoc} |
|
37 | + * @see \MyArtJaub\Webtrees\Mvc\Controller\MvcControllerInterface::getModule() |
|
38 | + */ |
|
39 | + public function getModule() { |
|
40 | + return $this->module; |
|
41 | + } |
|
42 | 42 | |
43 | 43 | } |
44 | 44 | |
45 | 45 | \ No newline at end of file |
@@ -21,7 +21,7 @@ |
||
21 | 21 | * @param \Fisharebest\Webtrees\Module\AbstractModule $module |
22 | 22 | * @param string $request |
23 | 23 | */ |
24 | - public function handle(\Fisharebest\Webtrees\Module\AbstractModule $module, $request); |
|
24 | + public function handle(\Fisharebest\Webtrees\Module\AbstractModule $module, $request); |
|
25 | 25 | |
26 | 26 | } |
27 | 27 | |
28 | 28 | \ No newline at end of file |
@@ -17,87 +17,87 @@ |
||
17 | 17 | */ |
18 | 18 | class ViewFactory { |
19 | 19 | |
20 | - /** |
|
21 | - * @var ViewFactory $instance Singleton pattern instance |
|
22 | - */ |
|
23 | - private static $instance = null; |
|
20 | + /** |
|
21 | + * @var ViewFactory $instance Singleton pattern instance |
|
22 | + */ |
|
23 | + private static $instance = null; |
|
24 | 24 | |
25 | - /** |
|
26 | - * Returns the *ViewFactory* instance of this class. |
|
27 | - * |
|
28 | - * @return ViewFactory The *Singleton* instance. |
|
29 | - */ |
|
30 | - public static function getInstance() |
|
31 | - { |
|
32 | - if (null === static::$instance) { |
|
33 | - static::$instance = new static(); |
|
34 | - } |
|
25 | + /** |
|
26 | + * Returns the *ViewFactory* instance of this class. |
|
27 | + * |
|
28 | + * @return ViewFactory The *Singleton* instance. |
|
29 | + */ |
|
30 | + public static function getInstance() |
|
31 | + { |
|
32 | + if (null === static::$instance) { |
|
33 | + static::$instance = new static(); |
|
34 | + } |
|
35 | 35 | |
36 | - return static::$instance; |
|
37 | - } |
|
36 | + return static::$instance; |
|
37 | + } |
|
38 | 38 | |
39 | - /** |
|
40 | - * Protected constructor |
|
41 | - */ |
|
42 | - protected function __construct() {} |
|
39 | + /** |
|
40 | + * Protected constructor |
|
41 | + */ |
|
42 | + protected function __construct() {} |
|
43 | 43 | |
44 | - /** |
|
45 | - * Return the view specified by the controller and view name, using data from the ViewBag |
|
46 | - * |
|
47 | - * @param string $view_name |
|
48 | - * @param \MyArtJaub\Webtrees\Mvc\Controller\MvcControllerInterface $mvc_ctrl |
|
49 | - * @param \Fisharebest\Webtrees\Controller\BaseController $ctrl |
|
50 | - * @param \MyArtJaub\Webtrees\Mvc\View\ViewBag $data |
|
51 | - * @return \MyArtJaub\Webtrees\Mvc\View\AbstractView View |
|
52 | - * @throws \Exception |
|
53 | - */ |
|
54 | - public function makeView($view_name, MvcController $mvc_ctrl, BaseController $ctrl, ViewBag $data) |
|
55 | - { |
|
56 | - if(!$mvc_ctrl) throw new \Exception('Mvc Controller not defined'); |
|
57 | - if(!$ctrl) throw new \Exception('Base Controller not defined'); |
|
58 | - if(!$view_name) throw new \Exception('View not defined'); |
|
44 | + /** |
|
45 | + * Return the view specified by the controller and view name, using data from the ViewBag |
|
46 | + * |
|
47 | + * @param string $view_name |
|
48 | + * @param \MyArtJaub\Webtrees\Mvc\Controller\MvcControllerInterface $mvc_ctrl |
|
49 | + * @param \Fisharebest\Webtrees\Controller\BaseController $ctrl |
|
50 | + * @param \MyArtJaub\Webtrees\Mvc\View\ViewBag $data |
|
51 | + * @return \MyArtJaub\Webtrees\Mvc\View\AbstractView View |
|
52 | + * @throws \Exception |
|
53 | + */ |
|
54 | + public function makeView($view_name, MvcController $mvc_ctrl, BaseController $ctrl, ViewBag $data) |
|
55 | + { |
|
56 | + if(!$mvc_ctrl) throw new \Exception('Mvc Controller not defined'); |
|
57 | + if(!$ctrl) throw new \Exception('Base Controller not defined'); |
|
58 | + if(!$view_name) throw new \Exception('View not defined'); |
|
59 | 59 | |
60 | - $mvc_ctrl_refl = new \ReflectionObject($mvc_ctrl); |
|
61 | - $view_class = $mvc_ctrl_refl->getNamespaceName() . '\\Views\\' . $view_name . 'View'; |
|
62 | - if(!class_exists($view_class)) throw new \Exception('View does not exist'); |
|
60 | + $mvc_ctrl_refl = new \ReflectionObject($mvc_ctrl); |
|
61 | + $view_class = $mvc_ctrl_refl->getNamespaceName() . '\\Views\\' . $view_name . 'View'; |
|
62 | + if(!class_exists($view_class)) throw new \Exception('View does not exist'); |
|
63 | 63 | |
64 | - return new $view_class($ctrl, $data); |
|
65 | - } |
|
64 | + return new $view_class($ctrl, $data); |
|
65 | + } |
|
66 | 66 | |
67 | - /** |
|
68 | - * Static invocation of the makeView method |
|
69 | - * |
|
70 | - * @param string $view_name |
|
71 | - * @param \MyArtJaub\Webtrees\Mvc\Controller\MvcControllerInterface $mvc_ctrl |
|
72 | - * @param \Fisharebest\Webtrees\Controller\BaseController $ctrl |
|
73 | - * @param \MyArtJaub\Webtrees\Mvc\View\ViewBag $data |
|
74 | - * @return \MyArtJaub\Webtrees\Mvc\View\AbstractView View |
|
75 | - * @see \MyArtJaub\Webtrees\Mvc\View\ViewFactory::handle() |
|
76 | - */ |
|
77 | - public static function make($view_name, MvcController $mvc_ctrl, BaseController $ctrl, ViewBag $data) |
|
78 | - { |
|
79 | - return self::getInstance()->makeView($view_name, $mvc_ctrl, $ctrl, $data); |
|
80 | - } |
|
67 | + /** |
|
68 | + * Static invocation of the makeView method |
|
69 | + * |
|
70 | + * @param string $view_name |
|
71 | + * @param \MyArtJaub\Webtrees\Mvc\Controller\MvcControllerInterface $mvc_ctrl |
|
72 | + * @param \Fisharebest\Webtrees\Controller\BaseController $ctrl |
|
73 | + * @param \MyArtJaub\Webtrees\Mvc\View\ViewBag $data |
|
74 | + * @return \MyArtJaub\Webtrees\Mvc\View\AbstractView View |
|
75 | + * @see \MyArtJaub\Webtrees\Mvc\View\ViewFactory::handle() |
|
76 | + */ |
|
77 | + public static function make($view_name, MvcController $mvc_ctrl, BaseController $ctrl, ViewBag $data) |
|
78 | + { |
|
79 | + return self::getInstance()->makeView($view_name, $mvc_ctrl, $ctrl, $data); |
|
80 | + } |
|
81 | 81 | |
82 | - /** |
|
83 | - * Private clone method to prevent cloning of the instance of the |
|
84 | - * *Dispatcher* instance. |
|
85 | - * |
|
86 | - * @return void |
|
87 | - */ |
|
88 | - private function __clone() |
|
89 | - { |
|
90 | - } |
|
82 | + /** |
|
83 | + * Private clone method to prevent cloning of the instance of the |
|
84 | + * *Dispatcher* instance. |
|
85 | + * |
|
86 | + * @return void |
|
87 | + */ |
|
88 | + private function __clone() |
|
89 | + { |
|
90 | + } |
|
91 | 91 | |
92 | - /** |
|
93 | - * Private unserialize method to prevent unserializing of the *Dispatcher* |
|
94 | - * instance. |
|
95 | - * |
|
96 | - * @return void |
|
97 | - */ |
|
98 | - private function __wakeup() |
|
99 | - { |
|
100 | - } |
|
92 | + /** |
|
93 | + * Private unserialize method to prevent unserializing of the *Dispatcher* |
|
94 | + * instance. |
|
95 | + * |
|
96 | + * @return void |
|
97 | + */ |
|
98 | + private function __wakeup() |
|
99 | + { |
|
100 | + } |
|
101 | 101 | |
102 | 102 | } |
103 | 103 | |
104 | 104 | \ No newline at end of file |
@@ -15,62 +15,62 @@ |
||
15 | 15 | */ |
16 | 16 | abstract class AbstractView { |
17 | 17 | |
18 | - /** |
|
19 | - * Reference controller |
|
20 | - * @var \Fisharebest\Webtrees\Controller\BaseController $ctrl |
|
21 | - */ |
|
22 | - protected $ctrl; |
|
18 | + /** |
|
19 | + * Reference controller |
|
20 | + * @var \Fisharebest\Webtrees\Controller\BaseController $ctrl |
|
21 | + */ |
|
22 | + protected $ctrl; |
|
23 | 23 | |
24 | - /** |
|
25 | - * Structure containing the data of the view |
|
26 | - * @var ViewBag $data |
|
27 | - */ |
|
28 | - protected $data; |
|
24 | + /** |
|
25 | + * Structure containing the data of the view |
|
26 | + * @var ViewBag $data |
|
27 | + */ |
|
28 | + protected $data; |
|
29 | 29 | |
30 | - /** |
|
31 | - * Constructor |
|
32 | - * @param \Fisharebest\Webtrees\Controller\BaseController $ctrl Controller |
|
33 | - * @param ViewBag $data ViewBag holding view data |
|
34 | - */ |
|
35 | - public function __construct(\Fisharebest\Webtrees\Controller\BaseController $ctrl, ViewBag $data) { |
|
36 | - $this->ctrl = $ctrl; |
|
37 | - $this->data = $data; |
|
38 | - } |
|
30 | + /** |
|
31 | + * Constructor |
|
32 | + * @param \Fisharebest\Webtrees\Controller\BaseController $ctrl Controller |
|
33 | + * @param ViewBag $data ViewBag holding view data |
|
34 | + */ |
|
35 | + public function __construct(\Fisharebest\Webtrees\Controller\BaseController $ctrl, ViewBag $data) { |
|
36 | + $this->ctrl = $ctrl; |
|
37 | + $this->data = $data; |
|
38 | + } |
|
39 | 39 | |
40 | - /** |
|
41 | - * Render the view to the page, including header. |
|
42 | - * |
|
43 | - * @throws \Exception |
|
44 | - */ |
|
45 | - public function render() { |
|
40 | + /** |
|
41 | + * Render the view to the page, including header. |
|
42 | + * |
|
43 | + * @throws \Exception |
|
44 | + */ |
|
45 | + public function render() { |
|
46 | 46 | global $controller; |
47 | 47 | |
48 | - if(!$this->ctrl) throw new \Exception('Controller not initialised'); |
|
48 | + if(!$this->ctrl) throw new \Exception('Controller not initialised'); |
|
49 | 49 | |
50 | 50 | $controller = $this->ctrl; |
51 | - $this->ctrl->pageHeader(); |
|
51 | + $this->ctrl->pageHeader(); |
|
52 | 52 | |
53 | - echo $this->renderContent(); |
|
54 | - } |
|
53 | + echo $this->renderContent(); |
|
54 | + } |
|
55 | 55 | |
56 | - /** |
|
57 | - * Render the view to the page, without any header |
|
58 | - */ |
|
59 | - public function renderPartial() { |
|
60 | - echo $this->getHtmlPartial(); |
|
61 | - } |
|
56 | + /** |
|
57 | + * Render the view to the page, without any header |
|
58 | + */ |
|
59 | + public function renderPartial() { |
|
60 | + echo $this->getHtmlPartial(); |
|
61 | + } |
|
62 | 62 | |
63 | - /** |
|
64 | - * Return the HTML code generated by the view, without any header |
|
65 | - */ |
|
66 | - public function getHtmlPartial() { |
|
67 | - return $this->renderContent(); |
|
68 | - } |
|
63 | + /** |
|
64 | + * Return the HTML code generated by the view, without any header |
|
65 | + */ |
|
66 | + public function getHtmlPartial() { |
|
67 | + return $this->renderContent(); |
|
68 | + } |
|
69 | 69 | |
70 | - /** |
|
71 | - * Abstract method containing the details of the view. |
|
72 | - */ |
|
73 | - abstract protected function renderContent(); |
|
70 | + /** |
|
71 | + * Abstract method containing the details of the view. |
|
72 | + */ |
|
73 | + abstract protected function renderContent(); |
|
74 | 74 | |
75 | 75 | } |
76 | 76 | |
77 | 77 | \ No newline at end of file |