00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00031 require_once(t3lib_extMgm::extPath("kickstarter")."class.tx_kickstarter_sectionbase.php");
00032
00033 class tx_kickstarter_section_module extends tx_kickstarter_sectionbase {
00034 var $sectionID = 'module';
00038 function render_wizard() {
00039 $lines=array();
00040
00041 $action = explode(":",$this->wizard->modData["wizAction"]);
00042 if ($action[0]=="edit") {
00043 $this->regNewEntry($this->sectionID,$action[1]);
00044 $lines = $this->catHeaderLines($lines,$this->sectionID,$this->wizard->options[$this->sectionID]," ",$action[1]);
00045 $piConf = $this->wizard->wizArray[$this->sectionID][$action[1]];
00046 $ffPrefix='['.$this->sectionID.']['.$action[1].']';
00047
00048
00049 $subContent="<strong>Enter a title for the module:</strong><BR>".
00050 $this->renderStringBox_lang("title",$ffPrefix,$piConf);
00051 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00052
00053
00054 $subContent="<strong>Enter a description:</strong><BR>".
00055 $this->renderStringBox_lang("description",$ffPrefix,$piConf);
00056 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00057
00058
00059 $subContent="<strong>Enter a tab label (shorter description):</strong><BR>".
00060 $this->renderStringBox_lang("tablabel",$ffPrefix,$piConf);
00061 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00062
00063
00064 $optValues = array(
00065 "web" => "Sub in Web-module",
00066 "file" => "Sub in File-module",
00067 "user" => "Sub in User-module",
00068 "tools" => "Sub in Tools-module",
00069 "help" => "Sub in Help-module",
00070 "_MAIN" => "New main module"
00071 );
00072 $subContent="<strong>Sub- or main module?</strong><BR>".
00073 $this->renderSelectBox($ffPrefix."[position]",$piConf["position"],$optValues).
00074 $this->resImg("module.png");
00075 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00076
00077
00078 $optValues = array(
00079 "0" => "Bottom (default)",
00080 "top" => "Top",
00081 "web_after_page" => "If in Web-module, after Web>Page",
00082 "web_before_info" => "If in Web-module, before Web>Info",
00083 );
00084 $subContent="<strong>Position in module menu?</strong><BR>".
00085 $this->renderSelectBox($ffPrefix."[subpos]",$piConf["subpos"],$optValues);
00086 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00087
00088
00089 $subContent = $this->renderCheckBox($ffPrefix."[admin_only]",$piConf["admin_only"])."Admin-only access!<BR>";
00090 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00091
00092
00093 $subContent = $this->renderCheckBox($ffPrefix."[interface]",$piConf["interface"])."Allow other extensions to interface with function menu<BR>";
00094 # $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00095 }
00096
00097
00098 if(is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['kickstarter']['add_cat_module'])) {
00099 foreach($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['kickstarter']['add_cat_module'] as $_funcRef) {
00100 $lines = t3lib_div::callUserFunction($_funcRef, $lines, $this);
00101 }
00102 }
00103
00104 $content = '<table border=0 cellpadding=2 cellspacing=2>'.implode("",$lines).'</table>';
00105 return $content;
00106 }
00107
00108
00109
00110
00111
00112
00113
00114
00118 function render_extPart($k,$config,$extKey) {
00119 $WOP="[module][".$k."]";
00120 $mN = ($config["position"]!="_MAIN"?$config["position"]."_":"").$this->returnName($extKey,"module","M".$k);
00121 $cN = $this->returnName($extKey,"class","module".$k);
00122 $pathSuffix = "mod".$k."/";
00123
00124
00125 switch($config["subpos"]) {
00126 case "top":
00127 $subPos="top";
00128 break;
00129 case "web_after_page":
00130 $subPos="after:layout";
00131 break;
00132 case "web_before_info":
00133 $subPos="before:info";
00134 break;
00135 }
00136 $this->wizard->ext_tables[]=$this->sPS('
00137 '.$this->WOPcomment('WOP:'.$WOP).'
00138 if (TYPO3_MODE=="BE") {
00139 '.$this->WOPcomment('1. and 2. parameter is WOP:'.$WOP.'[position] , 3. parameter is WOP:'.$WOP.'[subpos]').'
00140 t3lib_extMgm::addModule("'.
00141 ($config["position"]!="_MAIN"?$config["position"]:$this->returnName($extKey,"module","M".$k)).
00142 '","'.
00143 ($config["position"]!="_MAIN"?$this->returnName($extKey,"module","M".$k):"").
00144 '","'.
00145 $subPos.
00146 '",t3lib_extMgm::extPath($_EXTKEY)."'.$pathSuffix.'");
00147 }
00148 ');
00149
00150
00151 $content = $this->sPS('
00152
00153 define("TYPO3_MOD_PATH", "ext/'.$extKey.'/'.$pathSuffix.'");
00154 $BACK_PATH="../../../";
00155 $MCONF["name"]="'.$mN.'";
00156
00157 '.$this->WOPcomment('WOP:'.$WOP.'[admin_only]: If the flag was set the value is "admin", otherwise "user,group"').'
00158 $MCONF["access"]="'.($config["admin_only"]?"admin":"user,group").'";
00159 $MCONF["script"]="index.php";
00160
00161 $MLANG["default"]["tabs_images"]["tab"] = "moduleicon.gif";
00162 $MLANG["default"]["ll_ref"]="LLL:EXT:'.$extKey.'/'.$pathSuffix.'locallang_mod.php";
00163 ');
00164 $this->wizard->EM_CONF_presets["module"][]=ereg_replace("\/$","",$pathSuffix);
00165
00166
00167 $ll=array();
00168 $this->addLocalConf($ll,$config,"title","module",$k,1,0,"mlang_tabs_tab");
00169 $this->addLocalConf($ll,$config,"description","module",$k,1,0,"mlang_labels_tabdescr");
00170 $this->addLocalConf($ll,$config,"tablabel","module",$k,1,0,"mlang_labels_tablabel");
00171 $this->addLocalLangFile($ll,$pathSuffix."locallang_mod.php",'Language labels for module "'.$mN.'" - header, description');
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192 $content=$this->wrapBody('
00193 <?php
00194 ',$content,'
00195 ?>
00196 ',0);
00197
00198 $this->addFileToFileArray($pathSuffix."conf.php",trim($content));
00199
00200
00201 $ll=array();
00202 $this->addLocalConf($ll,$config,"title","module",$k,1);
00203 $this->addLocalConf($ll,array("function1"=>"Function #1"),"function1","module",$k,1,1);
00204 $this->addLocalConf($ll,array("function2"=>"Function #2"),"function2","module",$k,1,1);
00205 $this->addLocalConf($ll,array("function3"=>"Function #3"),"function3","module",$k,1,1);
00206 $this->addLocalLangFile($ll,$pathSuffix."locallang.php",'Language labels for module "'.$mN.'"');
00207
00208
00209 $this->addFileToFileArray($pathSuffix."clear.gif",t3lib_div::getUrl(t3lib_extMgm::extPath("kickstarter")."res/clear.gif"));
00210
00211
00212 $this->addFileToFileArray($pathSuffix."moduleicon.gif",t3lib_div::getUrl(t3lib_extMgm::extPath("kickstarter")."res/notfound_module.gif"));
00213
00214
00215
00216 $indexContent = $this->sPS('
00217
00218 unset($MCONF);
00219 require ("conf.php");
00220 require ($BACK_PATH."init.php");
00221 require ($BACK_PATH."template.php");
00222 $LANG->includeLLFile("EXT:'.$extKey.'/'.$pathSuffix.'locallang.php");
00223 #include ("locallang.php");
00224 require_once (PATH_t3lib."class.t3lib_scbase.php");
00225 $BE_USER->modAccess($MCONF,1);
00226
00227 ');
00228
00229 $indexContent.= $this->sPS('
00230 class '.$cN.' extends t3lib_SCbase {
00231 var $pageinfo;
00232
00236 function init() {
00237 global $BE_USER,$LANG,$BACK_PATH,$TCA_DESCR,$TCA,$CLIENT,$TYPO3_CONF_VARS;
00238
00239 parent::init();
00240
00241
00242
00243
00244
00245
00246 }
00247
00251 function menuConfig() {
00252 global $LANG;
00253 $this->MOD_MENU = Array (
00254 "function" => Array (
00255 "1" => $LANG->getLL("function1"),
00256 "2" => $LANG->getLL("function2"),
00257 "3" => $LANG->getLL("function3"),
00258 )
00259 );
00260 parent::menuConfig();
00261 }
00262
00263
00267 function main() {
00268 global $BE_USER,$LANG,$BACK_PATH,$TCA_DESCR,$TCA,$CLIENT,$TYPO3_CONF_VARS;
00269
00270
00271
00272 $this->pageinfo = t3lib_BEfunc::readPageAccess($this->id,$this->perms_clause);
00273 $access = is_array($this->pageinfo) ? 1 : 0;
00274
00275 if (($this->id && $access) || ($BE_USER->user["admin"] && !$this->id)) {
00276
00277
00278 $this->doc = t3lib_div::makeInstance("mediumDoc");
00279 $this->doc->backPath = $BACK_PATH;
00280 $this->doc->form=\'<form action="" method="POST">\';
00281
00282
00283 $this->doc->JScode = \'
00284 <script language="javascript" type="text/javascript">
00285 script_ended = 0;
00286 function jumpToUrl(URL) {
00287 document.location = URL;
00288 }
00289 </script>
00290 \';
00291 $this->doc->postCode=\'
00292 <script language="javascript" type="text/javascript">
00293 script_ended = 1;
00294 if (top.fsMod) top.fsMod.recentIds["web"] = \'.intval($this->id).\';
00295 </script>
00296 \';
00297
00298 $headerSection = $this->doc->getHeader("pages",$this->pageinfo,$this->pageinfo["_thePath"])."<br>".$LANG->sL("LLL:EXT:lang/locallang_core.php:labels.path").": ".t3lib_div::fixed_lgd_pre($this->pageinfo["_thePath"],50);
00299
00300 $this->content.=$this->doc->startPage($LANG->getLL("title"));
00301 $this->content.=$this->doc->header($LANG->getLL("title"));
00302 $this->content.=$this->doc->spacer(5);
00303 $this->content.=$this->doc->section("",$this->doc->funcMenu($headerSection,t3lib_BEfunc::getFuncMenu($this->id,"SET[function]",$this->MOD_SETTINGS["function"],$this->MOD_MENU["function"])));
00304 $this->content.=$this->doc->divider(5);
00305
00306
00307
00308 $this->moduleContent();
00309
00310
00311
00312 if ($BE_USER->mayMakeShortcut()) {
00313 $this->content.=$this->doc->spacer(20).$this->doc->section("",$this->doc->makeShortcutIcon("id",implode(",",array_keys($this->MOD_MENU)),$this->MCONF["name"]));
00314 }
00315
00316 $this->content.=$this->doc->spacer(10);
00317 } else {
00318
00319
00320 $this->doc = t3lib_div::makeInstance("mediumDoc");
00321 $this->doc->backPath = $BACK_PATH;
00322
00323 $this->content.=$this->doc->startPage($LANG->getLL("title"));
00324 $this->content.=$this->doc->header($LANG->getLL("title"));
00325 $this->content.=$this->doc->spacer(5);
00326 $this->content.=$this->doc->spacer(10);
00327 }
00328 }
00329
00333 function printContent() {
00334
00335 $this->content.=$this->doc->endPage();
00336 echo $this->content;
00337 }
00338
00342 function moduleContent() {
00343 switch((string)$this->MOD_SETTINGS["function"]) {
00344 case 1:
00345 $content="<div align=center><strong>Hello World!</strong></div><BR>
00346 The \'Kickstarter\' has made this module automatically, it contains a default framework for a backend module but apart from it does nothing useful until you open the script \'".substr(t3lib_extMgm::extPath("'.$extKey.'"),strlen(PATH_site))."'.$pathSuffix.'index.php\' and edit it!
00347 <HR>
00348 <BR>This is the GET/POST vars sent to the script:<BR>".
00349 "GET:".t3lib_div::view_array($_GET)."<BR>".
00350 "POST:".t3lib_div::view_array($_POST)."<BR>".
00351 "";
00352 $this->content.=$this->doc->section("Message #1:",$content,0,1);
00353 break;
00354 case 2:
00355 $content="<div align=center><strong>Menu item #2...</strong></div>";
00356 $this->content.=$this->doc->section("Message #2:",$content,0,1);
00357 break;
00358 case 3:
00359 $content="<div align=center><strong>Menu item #3...</strong></div>";
00360 $this->content.=$this->doc->section("Message #3:",$content,0,1);
00361 break;
00362 }
00363 }
00364 }
00365 ');
00366
00367 $SOBE_extras["firstLevel"]=0;
00368 $SOBE_extras["include"]=1;
00369 $this->addFileToFileArray($pathSuffix."index.php",$this->PHPclassFile($extKey,$pathSuffix."index.php",$indexContent,"Module '".$config["title"]."' for the '".$extKey."' extension.",$cN,$SOBE_extras));
00370
00371 }
00372
00373 }
00374
00375
00376
00377 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/kickstarter/sections/class.tx_kickstarter_section_module.php']) {
00378 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/kickstarter/sections/class.tx_kickstarter_section_module.php']);
00379 }
00380
00381
00382 ?>