[TASK] Cleanup func and func_wizards
[Packages/TYPO3.CMS.git] / typo3 / sysext / func_wizards / Classes / Controller / WebFunctionWizardsBaseController.php
1 <?php
2 namespace TYPO3\CMS\FuncWizards\Controller;
3
4 /***************************************************************
5 * Copyright notice
6 *
7 * (c) 1999-2011 Kasper Skårhøj (kasperYYYY@typo3.com)
8 * All rights reserved
9 *
10 * This script is part of the TYPO3 project. The TYPO3 project is
11 * 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 2 of the License, or
14 * (at your option) any later version.
15 *
16 * The GNU General Public License can be found at
17 * http://www.gnu.org/copyleft/gpl.html.
18 * A copy is found in the textfile GPL.txt and important notices to the license
19 * from the author is found in LICENSE.txt distributed with these scripts.
20 *
21 *
22 * This script is distributed in the hope that it will be useful,
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 * GNU General Public License for more details.
26 *
27 * This copyright notice MUST APPEAR in all copies of the script!
28 ***************************************************************/
29
30 /**
31 * The Wizard function in the Web>Info module
32 * Creates a framework for adding wizard sub-sub-modules under the Wizard function in Web>Info
33 *
34 * @author Kasper Skårhøj <kasperYYYY@typo3.com>
35 */
36 class WebFunctionWizardsBaseController extends \TYPO3\CMS\Backend\Module\AbstractFunctionModule {
37
38 /**
39 * @todo Define visibility
40 */
41 public $function_key = 'wiz';
42
43 /**
44 * Initialize.
45 * Calls parent init function and then the handleExternalFunctionValue() function from the parent class
46 *
47 * @param object $pObj A reference to the parent (calling) object (which is probably an instance of an extension class to \TYPO3\CMS\Backend\Module\BaseScriptClass)
48 * @param array $conf The configuration set for this module - from global array TBE_MODULES_EXT
49 * @return void
50 * @see \TYPO3\CMS\Backend\Module\AbstractFunctionModule::handleExternalFunctionValue()
51 * @see \TYPO3\CMS\Backend\Module\AbstractFunctionModule::init()
52 * @todo Define visibility
53 */
54 public function init(&$pObj, $conf) {
55 // OK, handles ordinary init. This includes setting up the menu array with ->modMenu
56 parent::init($pObj, $conf);
57 // Making sure that any further external classes are added to the include_once array.
58 // Notice that inclusion happens twice in the main script because of this!!!
59 $this->handleExternalFunctionValue();
60 }
61
62 /**
63 * Modifies parent objects internal MOD_MENU array, adding items this module needs.
64 *
65 * @return array Items merged with the parent objects.
66 * @see \TYPO3\CMS\Backend\Module\AbstractFunctionModule::init()
67 * @todo Define visibility
68 */
69 public function modMenu() {
70 $GLOBALS['LANG']->includeLLFile('EXT:func_wizards/locallang.xlf');
71 $modMenuAdd = array(
72 $this->function_key => array()
73 );
74 $modMenuAdd[$this->function_key] = $this->pObj->mergeExternalItems($this->pObj->MCONF['name'], $this->function_key, $modMenuAdd[$this->function_key]);
75 $modMenuAdd[$this->function_key] = \TYPO3\CMS\Backend\Utility\BackendUtility::unsetMenuItems(
76 $this->pObj->modTSconfig['properties'],
77 $modMenuAdd[$this->function_key],
78 'menu.' . $this->function_key
79 );
80 return $modMenuAdd;
81 }
82
83 /**
84 * Creation of the main content. Calling extObjContent() to trigger content generation from the sub-sub modules
85 *
86 * @return string The content
87 * @see \TYPO3\CMS\Backend\Module\AbstractFunctionModule::extObjContent()
88 * @todo Define visibility
89 */
90 public function main() {
91 global $SOBE, $LANG;
92 $menu = $LANG->getLL('wiz_lWizards', 1) . ': ' . \TYPO3\CMS\Backend\Utility\BackendUtility::getFuncMenu(
93 $this->pObj->id,
94 'SET[wiz]',
95 $this->pObj->MOD_SETTINGS['wiz'],
96 $this->pObj->MOD_MENU['wiz']
97 );
98 $theOutput .= $this->pObj->doc->section('', '<span class="nobr">' . $menu . '</span>');
99 $content = '';
100 $content .= $theOutput;
101 $content .= $this->pObj->doc->spacer(20);
102 $content .= $this->extObjContent();
103 return $content;
104 }
105
106 }
107
108 ?>