00001 <?php
00002
00003 #vars that probably still need "wizard->" added: dontPrintImages printWOP
00004
00005 class tx_kickstarter_sectionbase {
00006
00007
00008 var $wizard;
00009
00010
00011 var $compilefiles;
00012
00013
00014 var $sectionID = 'uniqueID';
00015
00016
00017 var $varPrefix = 'kickstarter';
00018
00019
00020 function render_wizard() {
00021 }
00022
00023
00024 function render_extPart() {
00025 }
00026
00027 function &process_hook($hookName, &$data) {
00028 if(is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['kickstarter'][$this->sectionID][$hookName])) {
00029 foreach($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['kickstarter'][$this->sectionID][$hookName] as $_funcRef) {
00030 $data =& t3lib_div::callUserFunction($_funcRef, $data, $this);
00031 }
00032 }
00033 return $data;
00034 }
00035
00036 function renderCheckBox($prefix,$value,$defVal=0) {
00037 if (!isset($value)) $value=$defVal;
00038 $onCP = $this->getOnChangeParts($prefix);
00039 return $this->wopText($prefix).$onCP[0].'<input type="hidden" name="'.$this->piFieldName("wizArray_upd").$prefix.'" value="0"><input type="checkbox" name="'.$this->piFieldName("wizArray_upd").$prefix.'" value="1"'.($value?" CHECKED":"").' onClick="'.$onCP[1].'"'.$this->wop($prefix).'>';
00040 }
00041
00042 function renderTextareaBox($prefix,$value) {
00043 $onCP = $this->getOnChangeParts($prefix);
00044 return $this->wopText($prefix).$onCP[0].'<textarea name="'.$this->piFieldName("wizArray_upd").$prefix.'" style="width:600px;" rows="10" wrap="OFF" onChange="'.$onCP[1].'" title="'.htmlspecialchars("WOP:".$prefix).'"'.$this->wop($prefix).'>'.t3lib_div::formatForTextarea($value).'</textarea>';
00045 }
00046
00047 function renderStringBox($prefix,$value,$width=200) {
00048 $onCP = $this->getOnChangeParts($prefix);
00049 return $this->wopText($prefix).$onCP[0].'<input type="text" name="'.$this->piFieldName("wizArray_upd").$prefix.'" value="'.htmlspecialchars($value).'" style="width:'.$width.'px;" onChange="'.$onCP[1].'"'.$this->wop($prefix).'>';
00050 }
00051
00052 function renderRadioBox($prefix,$value,$thisValue) {
00053 $onCP = $this->getOnChangeParts($prefix);
00054 return $this->wopText($prefix).$onCP[0].'<input type="radio" name="'.$this->piFieldName("wizArray_upd").$prefix.'" value="'.$thisValue.'"'.(!strcmp($value,$thisValue)?" CHECKED":"").' onClick="'.$onCP[1].'"'.$this->wop($prefix).'>';
00055 }
00056
00057 function renderSelectBox($prefix,$value,$optValues) {
00058 $onCP = $this->getOnChangeParts($prefix);
00059 $opt=array();
00060 $isSelFlag=0;
00061 foreach($optValues as $k=>$v) {
00062 $sel = (!strcmp($k,$value)?" SELECTED":"");
00063 if ($sel) $isSelFlag++;
00064 $opt[]='<option value="'.htmlspecialchars($k).'"'.$sel.'>'.htmlspecialchars($v).'</option>';
00065 }
00066 if (!$isSelFlag && strcmp("",$value)) $opt[]='<option value="'.$value.'" SELECTED>'.htmlspecialchars("CURRENT VALUE '".$value."' DID NOT EXIST AMONG THE OPTIONS").'</option>';
00067 return $this->wopText($prefix).$onCP[0].'<select name="'.$this->piFieldName("wizArray_upd").$prefix.'" onChange="'.$onCP[1].'"'.$this->wop($prefix).'>'.implode("",$opt).'</select>';
00068 }
00069
00070 function whatIsThis($str) {
00071 return ' <a href="#" title="'.htmlspecialchars($str).'" style="cursor:help" onClick="alert('.$GLOBALS['LANG']->JScharCode($str).');return false;">(What is this?)</a>';
00072 }
00073
00074 function renderStringBox_lang($fieldName,$ffPrefix,$piConf) {
00075 $content = $this->renderStringBox($ffPrefix."[".$fieldName."]",$piConf[$fieldName])." [English]";
00076 if (count($this->wizard->selectedLanguages)) {
00077 $lines=array();
00078 foreach($this->wizard->selectedLanguages as $k=>$v) {
00079 $lines[]=$this->renderStringBox($ffPrefix."[".$fieldName."_".$k."]",$piConf[$fieldName."_".$k])." [".$v."]";
00080 }
00081 $content.=$this->textSetup("",implode("<BR>",$lines));
00082 }
00083 return $content;
00084 }
00085
00086 function textSetup($header,$content) {
00087 return ($header?"<strong>".$header."</strong><BR>":"")."<blockquote>".trim($content)."</blockquote>";
00088 }
00089
00090 function resImg($name,$p='align="center"',$pre="<BR>",$post="<BR>") {
00091 if ($this->dontPrintImages) return "<BR>";
00092 $imgRel = $this->path_resources().$name;
00093 $imgInfo = @getimagesize(PATH_site.$imgRel);
00094 return $pre.'<img src="'.$this->wizard->siteBackPath.$imgRel.'" '.$imgInfo[3].($p?" ".$p:"").' vspace=5 border=1 style="border:solid 1px;">'.$post;
00095 }
00096
00097 function resIcon($name,$p="") {
00098 if ($this->dontPrintImages) return "";
00099 $imgRel = $this->path_resources("icons/").$name;
00100 if (!@is_file(PATH_site.$imgRel)) return "";
00101 $imgInfo = @getimagesize(PATH_site.$imgRel);
00102 return '<img src="'.$this->wizard->siteBackPath.$imgRel.'" '.$imgInfo[3].($p?" ".$p:"").'>';
00103 }
00104
00105 function path_resources($subdir="res/") {
00106 return substr(t3lib_extMgm::extPath("kickstarter"),strlen(PATH_site)).$subdir;
00107 }
00108
00109 function getOnChangeParts($prefix) {
00110 $md5h=t3lib_div::shortMd5($this->piFieldName("wizArray_upd").$prefix);
00111 return array('<a name="'.$md5h.'"></a>',"setFormAnchorPoint('".$md5h."');");
00112 }
00113
00114 function wop($prefix) {
00115 return ' title="'.htmlspecialchars("WOP: ".$prefix).'"';
00116 }
00117
00118 function returnName($extKey,$type,$suffix='') {
00119 if (substr($extKey,0,5)=='user_') {
00120 $extKey = substr($extKey,5);
00121 switch($type) {
00122 case 'class':
00123 return 'user_'.str_replace('_','',$extKey).($suffix?'_'.$suffix:'');
00124 break;
00125 case 'tables':
00126 case 'fields':
00127 case 'fields':
00128 return 'user_'.str_replace('_','',$extKey).($suffix?'_'.$suffix:'');
00129 break;
00130 case 'module':
00131 return 'u'.str_replace('_','',$extKey).$suffix;
00132 break;
00133 }
00134 } else {
00135 switch($type) {
00136 case 'class':
00137 return 'tx_'.str_replace('_','',$extKey).($suffix?'_'.$suffix:'');
00138 break;
00139 case 'tables':
00140 case 'fields':
00141 case 'fields':
00142 return 'tx_'.str_replace('_','',$extKey).($suffix?'_'.$suffix:'');
00143 break;
00144 case 'module':
00145 return 'tx'.str_replace('_','',$extKey).$suffix;
00146 break;
00147 }
00148 }
00149 }
00150
00151 function wopText($prefix) {
00152 return $this->printWOP?'<font face="verdana,arial,sans-serif" size=1 color=#999999>'.htmlspecialchars($prefix).':</font><BR>':'';
00153 }
00154
00155 function catHeaderLines($lines,$k,$v,$altHeader="",$index="") {
00156 $lines[]='<tr'.$this->bgCol(1).'><td><strong>'.$this->fw($v[0]).'</strong></td></tr>';
00157 $lines[]='<tr'.$this->bgCol(2).'><td>'.$this->fw($v[1]).'</td></tr>';
00158 $lines[]='<tr><td></td></tr>';
00159 return $lines;
00160 }
00161
00162 function linkCurrentItems($cat) {
00163 $items = $this->wizard->wizArray[$cat];
00164 $lines=array();
00165 $c=0;
00166 if (is_array($items)) {
00167 foreach($items as $k=>$conf) {
00168 $lines[]='<strong>'.$this->linkStr($conf["title"]?$conf["title"]:"<em>Item ".$k."</em>",$cat,'edit:'.$k).'</strong>';
00169 $c=$k;
00170 }
00171 }
00172 if (!t3lib_div::inList("save,ts,TSconfig,languages",$cat) || !count($lines)) {
00173 $c++;
00174 if (count($lines)) $lines[]='';
00175 $lines[]=$this->linkStr('Add new item',$cat,'edit:'.$c);
00176 }
00177 return $this->fw(implode("<BR>",$lines));
00178 }
00179
00180 function linkStr($str,$wizSubCmd,$wizAction) {
00181 return '<a href="#" onClick="
00182 document.'.$this->varPrefix.'_wizard[\''.$this->piFieldName("wizSubCmd").'\'].value=\''.$wizSubCmd.'\';
00183 document.'.$this->varPrefix.'_wizard[\''.$this->piFieldName("wizAction").'\'].value=\''.$wizAction.'\';
00184 document.'.$this->varPrefix.'_wizard.submit();
00185 return false;">'.$str.'</a>';
00186 }
00187
00188 function bgCol($n,$mod=0) {
00189 $color = $this->color[$n-1];
00190 if ($mod) $color = t3lib_div::modifyHTMLcolor($color,$mod,$mod,$mod);
00191 return ' bgColor="'.$color.'"';
00192 }
00193
00194 function regNewEntry($k,$index) {
00195 if (!is_array($this->wizard->wizArray[$k][$index])) {
00196 $this->wizard->wizArray[$k][$index]=array();
00197 }
00198 }
00199
00200 function bwWithFlag($str,$flag) {
00201 if ($flag) $str = '<strong>'.$str.'</strong>';
00202 return $str;
00203 }
00204
00211 function linkThisCmd($uPA=array()) {
00212 $url = t3lib_div::linkThisScript($uPA);
00213 return $url;
00214 }
00215
00222 function fw($str) {
00223 return '<span style="font-family:verdana,arial,sans-serif; font-size:10px;">'.$str.'</span>';
00224 }
00225
00226
00227 function piFieldName($key) {
00228 return $this->varPrefix."[".$key."]";
00229 }
00230
00231 function cmdHiddenField() {
00232 return '<input type="hidden" name="'.$this->piFieldName("cmd").'" value="'.htmlspecialchars($this->currentCMD).'">';
00233 }
00234
00235 function preWrap($str) {
00236 $str = str_replace(chr(9)," ",htmlspecialchars($str));
00237 $str = '<pre>'.$str.'</pre>';
00238 return $str;
00239 }
00240
00241 function fieldIsRTE($fC) {
00242 return !strcmp($fC["type"],"textarea_rte") &&
00243 ($fC["conf_rte"]=="basic" ||
00244 (t3lib_div::inList("custom,moderate",$fC["conf_rte"]) && $fC["conf_mode_cssOrNot"])
00245 );
00246 }
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259 ######### Functions from compilefiles #########
00260
00261 function sPS($content,$preLines=1) {
00262 $lines = explode(chr(10),str_replace(chr(13),"",$content));
00263 $lastLineWithContent=0;
00264 $firstLineWithContent=-1;
00265 $min=array();
00266 reset($lines);
00267 while(list($k,$v)=each($lines)) {
00268 if (trim($v)) {
00269 if ($firstLineWithContent==-1) $firstLineWithContent=$k;
00270 list($preSpace) = split("[^[:space:]]",$v,2);
00271 $min[]=count(explode(chr(9),$preSpace));
00272 $lastLineWithContent=$k;
00273 }
00274 }
00275 $number_of=count($min) ? min($min) : 0;
00276 $newLines=array();
00277 if ($firstLineWithContent>=0) {
00278 for ($a=$firstLineWithContent;$a<=$lastLineWithContent;$a++) {
00279 $parts = explode(chr(9),$lines[$a],$number_of);
00280 $newLines[]=end($parts);
00281 }
00282 }
00283 return str_pad("",$preLines,chr(10)).implode(chr(10),$newLines).chr(10);
00284 }
00285
00286 function getSplitLabels_reference($config,$key,$LLkey) {
00287 $this->wizard->ext_locallang_db["default"][$LLkey]=array(trim($config[$key]));
00288 if (count($this->wizard->languages)) {
00289 reset($this->wizard->languages);
00290 while(list($lk,$lv)=each($this->wizard->languages)) {
00291 if (isset($this->wizard->selectedLanguages[$lk])) {
00292 $this->wizard->ext_locallang_db[$lk][$LLkey]=array(trim($config[$key."_".$lk]));
00293 }
00294 }
00295 }
00296 return "LLL:EXT:".$this->wizard->extKey."/locallang_db.php:".$LLkey;
00297 }
00298
00299 function WOPcomment($str) {
00300 return $str&&$this->wizard->outputWOP ? "## ".$str : "";
00301 }
00302
00303 function indentLines($content,$number=1) {
00304 $preTab = str_pad("",$number,chr(9));
00305 $lines = explode(chr(10),str_replace(chr(13),"",$content));
00306 while(list($k,$v)=each($lines)) {
00307 $lines[$k]=$preTab.$v;
00308 }
00309 return implode(chr(10),$lines);
00310 }
00311
00312 function printPre($content) {
00313 echo '<pre>'.htmlspecialchars(str_replace(chr(9),' ',$content)).'</pre>';
00314 }
00315
00316 function wrapBody($before,$content,$after,$indent=1) {
00317 $parts=array();
00318 $parts[] = $this->sPS($before,0);
00319 $parts[] = $this->indentLines(rtrim($content),$indent);
00320 $parts[] = chr(10).$this->sPS($after,0);
00321
00322 return implode('',$parts);
00323 }
00324
00325 function replaceMarkers($content,$markers) {
00326 reset($markers);
00327 while(list($k,$v)=each($markers)) {
00328 $content = str_replace($k,$v,$content);
00329 }
00330 return $content;
00331 }
00332
00333 function makeFileArray($name,$content) {
00334 # echo '<HR><strong>'.$name.'</strong><HR><pre>'.htmlspecialchars($content).'</pre>';
00335
00336 return array(
00337 'name' => $name,
00338 'size' => strlen($content),
00339 'mtime' => time(),
00340 'is_executable' => 0,
00341 'content' => $content,
00342 'content_md5' => md5($content)
00343 );
00344 }
00345
00346 function slashValueForSingleDashes($value) {
00347 return str_replace("'","\'",str_replace('\\','\\\\',$value));
00348 }
00349
00350 function getSplitLabels($config,$key) {
00351 $language=array();
00352 $language[]=str_replace('|','',$config[$key]);
00353 if (count($this->wizard->languages)) {
00354 reset($this->wizard->languages);
00355 while(list($lk,$lv)=each($this->wizard->languages)) {
00356 if (isset($this->wizard->selectedLanguages[$lk])) {
00357 $language[]=str_replace('|','',$config[$key.'_'.$lk]);
00358 } else $language[]='';
00359 }
00360 }
00361 $out = implode('|',$language);
00362 $out = str_replace(chr(10),'',$out);
00363 $out = rtrim(str_replace('|',chr(10),$out));
00364 $out = str_replace(chr(10),'|',$out);
00365 return $out;
00366 }
00367
00368 function addLocalLangFile($arr,$filename,$description) {
00369 $lines=array();
00370 reset($arr);
00371 $lines[]='<?php';
00372 $lines[]=trim($this->sPS('
00378 '));
00379 $lines[]='';
00380 $lines[]='$LOCAL_LANG = Array (';
00381 while(list($lK,$labels)=each($arr)) {
00382 if (is_array($labels)) {
00383 $lines[]=" '".$lK."' => Array (";
00384 while(list($l,$v)=each($labels)) {
00385 if (strcmp($v[0],'')) $lines[]=" '".$l."' => '".addslashes($v[0])."', ".$this->WOPcomment($v[1]);
00386 }
00387 $lines[]=' ),';
00388 }
00389 }
00390 $lines[]=');';
00391 $lines[]='?>';
00392 $this->addFileToFileArray($filename,implode(chr(10),$lines));
00393 }
00394
00395 function writeStandardBE_xMod($extKey,$config,$pathSuffix,$cN,$k,$k_prefix) {
00396
00397 $content = $this->sPS("
00398 // DO NOT REMOVE OR CHANGE THESE 3 LINES:
00399 define('TYPO3_MOD_PATH', 'ext/".$extKey."/".$pathSuffix."');
00400 \$BACK_PATH='../../../';
00401 \$MCONF['name']='xMOD_".$cN."';
00402 ");
00403 $content=$this->wrapBody('
00404 <?php
00405 ',$content,'
00406 ?>
00407 ',0);
00408 $this->addFileToFileArray($pathSuffix."conf.php",trim($content));
00409 $this->wizard->EM_CONF_presets["module"][]=ereg_replace("\/$","",$pathSuffix);
00410
00411
00412 $ll=array();
00413 $this->addLocalConf($ll,$config,"title",$k_prefix,$k,1);
00414 $this->addLocalConf($ll,array("function1"=>"Function #1"),"function1",$k_prefix,$k,1,1);
00415 $this->addLocalConf($ll,array("function2"=>"Function #2"),"function2",$k_prefix,$k,1,1);
00416 $this->addLocalConf($ll,array("function3"=>"Function #3"),"function3",$k_prefix,$k,1,1);
00417 $this->addLocalLangFile($ll,$pathSuffix."locallang.php",'Language labels for '.$extKey.' module '.$k_prefix.$k);
00418
00419
00420 $this->addFileToFileArray($pathSuffix."clear.gif",t3lib_div::getUrl(t3lib_extMgm::extPath("kickstarter")."res/clear.gif"));
00421
00422
00423 $indexContent = $this->sPS("
00424 // DEFAULT initialization of a module [BEGIN]
00425 unset(\$MCONF);
00426 require ('conf.php');
00427 require (\$BACK_PATH.'init.php');
00428 require (\$BACK_PATH.'template.php');
00429 \$LANG->includeLLFile('EXT:".$extKey."/".$pathSuffix."locallang.php');
00430 #include ('locallang.php');
00431 require_once (PATH_t3lib.'class.t3lib_scbase.php');
00432 // ....(But no access check here...)
00433 // DEFAULT initialization of a module [END]
00434 ");
00435
00436 $indexContent.= $this->sPS("
00437 class ".$cN." extends t3lib_SCbase {
00441 function menuConfig() {
00442 global \$LANG;
00443 \$this->MOD_MENU = Array (
00444 'function' => Array (
00445 '1' => \$LANG->getLL('function1'),
00446 '2' => \$LANG->getLL('function2'),
00447 '3' => \$LANG->getLL('function3'),
00448 )
00449 );
00450 parent::menuConfig();
00451 }
00452
00456 function main() {
00457 global \$BE_USER,\$LANG,\$BACK_PATH,\$TCA_DESCR,\$TCA,\$CLIENT,\$TYPO3_CONF_VARS;
00458
00459 // Draw the header.
00460 \$this->doc = t3lib_div::makeInstance('mediumDoc');
00461 \$this->doc->backPath = \$BACK_PATH;
00462 \$this->doc->form='<form action=\"\" method=\"POST\">';
00463
00464 // JavaScript
00465 \$this->doc->JScode = '
00466 <script language=\"javascript\" type=\"text/javascript\">
00467 script_ended = 0;
00468 function jumpToUrl(URL) {
00469 document.location = URL;
00470 }
00471 </script>
00472 ';
00473
00474 \$this->pageinfo = t3lib_BEfunc::readPageAccess(\$this->id,\$this->perms_clause);
00475 \$access = is_array(\$this->pageinfo) ? 1 : 0;
00476 if ((\$this->id && \$access) || (\$BE_USER->user['admin'] && !\$this->id)) {
00477 if (\$BE_USER->user['admin'] && !\$this->id) {
00478 \$this->pageinfo=array('title' => '[root-level]','uid'=>0,'pid'=>0);
00479 }
00480
00481 \$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);
00482
00483 \$this->content.=\$this->doc->startPage(\$LANG->getLL('title'));
00484 \$this->content.=\$this->doc->header(\$LANG->getLL('title'));
00485 \$this->content.=\$this->doc->spacer(5);
00486 \$this->content.=\$this->doc->section('',\$this->doc->funcMenu(\$headerSection,t3lib_BEfunc::getFuncMenu(\$this->id,'SET[function]',\$this->MOD_SETTINGS['function'],\$this->MOD_MENU['function'])));
00487 \$this->content.=\$this->doc->divider(5);
00488
00489
00490 // Render content:
00491 \$this->moduleContent();
00492
00493
00494 // ShortCut
00495 if (\$BE_USER->mayMakeShortcut()) {
00496 \$this->content.=\$this->doc->spacer(20).\$this->doc->section('',\$this->doc->makeShortcutIcon('id',implode(',',array_keys(\$this->MOD_MENU)),\$this->MCONF['name']));
00497 }
00498 }
00499 \$this->content.=\$this->doc->spacer(10);
00500 }
00501 function printContent() {
00502
00503 \$this->content.=\$this->doc->endPage();
00504 echo \$this->content;
00505 }
00506
00507 function moduleContent() {
00508 switch((string)\$this->MOD_SETTINGS['function']) {
00509 case 1:
00510 \$content='<div align=center><strong>Hello World!</strong></div><BR>
00511 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!
00512 <HR>
00513 <BR>This is the GET/POST vars sent to the script:<BR>'.
00514 'GET:'.t3lib_div::view_array(\$_GET).'<BR>'.
00515 'POST:'.t3lib_div::view_array(\$_POST).'<BR>'.
00516 '';
00517 \$this->content.=\$this->doc->section('Message #1:',\$content,0,1);
00518 break;
00519 case 2:
00520 \$content='<div align=center><strong>Menu item #2...</strong></div>';
00521 \$this->content.=\$this->doc->section('Message #2:',\$content,0,1);
00522 break;
00523 case 3:
00524 \$content='<div align=center><strong>Menu item #3...</strong></div>';
00525 \$this->content.=\$this->doc->section('Message #3:',\$content,0,1);
00526 break;
00527 }
00528 }
00529 }
00530 ");
00531
00532 $this->addFileToFileArray($pathSuffix."index.php",$this->PHPclassFile($extKey,$pathSuffix."index.php",$indexContent,$extKey.' module '.$k_prefix.$k,$cN));
00533 }
00534
00535 function addLLfunc($extKey) {
00536 return $this->sPS("
00540 function includeLL() {
00541 include(t3lib_extMgm::extPath('".$extKey."').'locallang.php');
00542 return \$LOCAL_LANG;
00543 }
00544 ");
00545 }
00546 function addStdLocalLangConf($ll,$k,$onlyMode=0) {
00547 $this->addLocalConf($ll,array(
00548 "list_mode_1"=>"Mode 1",
00549 "list_mode_1_dk"=>"Visning 1"
00550 ),"list_mode_1","pi",$k,1,1);
00551 $this->addLocalConf($ll,array(
00552 "list_mode_2"=>"Mode 2",
00553 "list_mode_2_dk"=>"Visning 2"
00554 ),"list_mode_2","pi",$k,1,1);
00555 $this->addLocalConf($ll,array(
00556 "list_mode_3"=>"Mode 3",
00557 "list_mode_3_dk"=>"Visning 3"
00558 ),"list_mode_3","pi",$k,1,1);
00559 $this->addLocalConf($ll,array(
00560 "back"=>"Back",
00561 "back_dk"=>"Tilbage"
00562 ),"back","pi",$k,1,1);
00563
00564 if (!$onlyMode) {
00565 $this->addLocalConf($ll,array(
00566 "pi_list_browseresults_prev"=>"< Previous",
00567 "pi_list_browseresults_prev_dk"=>"< Forrige"
00568 ),"pi_list_browseresults_prev","pi",$k,1,1);
00569 $this->addLocalConf($ll,array(
00570 "pi_list_browseresults_page"=>"Page",
00571 "pi_list_browseresults_page_dk"=>"Side"
00572 ),"pi_list_browseresults_page","pi",$k,1,1);
00573 $this->addLocalConf($ll,array(
00574 "pi_list_browseresults_next"=>"Next >",
00575 "pi_list_browseresults_next_dk"=>"Nćste >"
00576 ),"pi_list_browseresults_next","pi",$k,1,1);
00577 $this->addLocalConf($ll,array(
00578 "pi_list_browseresults_displays"=>"Displaying results ###SPAN_BEGIN###%s to %s</span> out of ###SPAN_BEGIN###%s</span>",
00579 "pi_list_browseresults_displays_dk"=>"Viser resultaterne ###SPAN_BEGIN###%s til %s</span> ud af ###SPAN_BEGIN###%s</span>"
00580 ),"pi_list_browseresults_displays","pi",$k,1,1);
00581
00582 $this->addLocalConf($ll,array(
00583 "pi_list_searchBox_search"=>"Search",
00584 "pi_list_searchBox_search_dk"=>"Sřg"
00585 ),"pi_list_searchBox_search","pi",$k,1,1);
00586 }
00587
00588 return $ll;
00589 }
00590
00591 function addLocalConf(&$lArray,$confArray,$key,$prefix,$subPrefix,$dontPrefixKey=0,$noWOP=0,$overruleKey="") {
00592 reset($this->wizard->languages);
00593
00594 $overruleKey = $overruleKey ? $overruleKey : ($dontPrefixKey?"":$prefix.$subPrefix."_").$key;
00595
00596 $lArray["default"][$overruleKey] = array($confArray[$key],(!$noWOP?'WOP:['.$prefix.']['.$subPrefix.']['.$key.']':''));
00597 while(list($k)=each($this->wizard->languages)) {
00598 $lArray[$k][$overruleKey] = array(trim($confArray[$key."_".$k]),(!$noWOP?'WOP:['.$prefix.']['.$subPrefix.']['.$key."_".$k.']':''));
00599 }
00600 return $lArray;
00601 }
00602
00603
00604
00605
00606 function PHPclassFile($extKey,$filename,$content,$desrc,$SOBE_class="",$SOBE_extras="") {
00607 $file = trim($this->sPS('
00608 <?php
00609
00610
00611
00612
00613
00614
00615
00616
00617
00618
00619
00620
00621
00622
00623
00624
00625
00626
00627
00628
00629
00630
00636 '));
00637
00638 $file.="\n\n\n".$content."\n\n\n";
00639
00640 $file.=trim($this->sPS("
00641
00642 if (defined('TYPO3_MODE') && \$TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/".$extKey."/".$filename."']) {
00643 include_once(\$TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/".$extKey."/".$filename."']);
00644 }
00645 ".($SOBE_class?"
00646
00647
00648
00649 // Make instance:
00650 \$SOBE = t3lib_div::makeInstance('".$SOBE_class."');
00651 \$SOBE->init();
00652 ".($SOBE_extras['include']?"
00653 // Include files?
00654 foreach(\$SOBE->include_once as \$INC_FILE) include_once(\$INC_FILE);":"")."
00655 ".($SOBE_extras['firstLevel']?"
00656 \$SOBE->checkExtObj(); // Checking for first level external objects":"")."
00657 \$SOBE->main();
00658 \$SOBE->printContent();
00659 ":"")."
00660 ?>
00661 "));
00662
00663 return $file;
00664 }
00665
00666
00667
00668 function addFileToFileArray($name,$content,$mode=0) {
00669 switch($mode) {
00670 case 1:
00671 $this->wizard->fileArray[$name]=$this->makeFileArray($name,$this->wizard->fileArray[$name]["content"].chr(10).$content);
00672 break;
00673 case -1:
00674 $this->wizard->fileArray[$name]=$this->makeFileArray($name,$content.chr(10).$this->wizard->fileArray[$name]["content"]);
00675 break;
00676 default:
00677 $this->wizard->fileArray[$name]=$this->makeFileArray($name,$content);
00678 break;
00679 }
00680 }
00681
00682 function makeEMCONFpreset($prefix="") {
00683 $this->wizard->_addArray = $this->wizard->wizArray["emconf"][1];
00684 $EM_CONF=array();
00685 $presetFields = explode(",","title,description,category,shy,dependencies,conflicts,priority,module,state,internal,uploadfolder,createDirs,modify_tables,clearCacheOnLoad,lockType,author,author_email,author_company,private,download_password,version");
00686 while(list(,$s)=each($presetFields)) {
00687 $EM_CONF[$prefix.$s]="";
00688 }
00689
00690
00691 $EM_CONF[$prefix."uploadfolder"] = $this->wizard->EM_CONF_presets["uploadfolder"]?1:0;
00692 $EM_CONF[$prefix."clearCacheOnLoad"] = $this->wizard->EM_CONF_presets["clearCacheOnLoad"]?1:0;
00693
00694 if (is_array($this->wizard->EM_CONF_presets["createDirs"])) {
00695 $EM_CONF[$prefix."createDirs"] = implode(",",array_unique($this->wizard->EM_CONF_presets["createDirs"]));
00696 }
00697
00698 if (is_array($this->wizard->EM_CONF_presets["dependencies"]) || $this->wizard->wizArray["emconf"][1]["dependencies"]) {
00699 $aa= t3lib_div::trimExplode(",",strtolower($this->wizard->wizArray["emconf"][1]["dependencies"]),1);
00700 $EM_CONF[$prefix."dependencies"] = implode(",",array_unique(array_merge($this->wizard->EM_CONF_presets["dependencies"],$aa)));
00701 }
00702 unset($this->wizard->_addArray["dependencies"]);
00703 if (is_array($this->wizard->EM_CONF_presets["module"])) {
00704 $EM_CONF[$prefix."module"] = implode(",",array_unique($this->wizard->EM_CONF_presets["module"]));
00705 }
00706 if (is_array($this->wizard->EM_CONF_presets["modify_tables"])) {
00707 $EM_CONF[$prefix."modify_tables"] = implode(",",array_unique($this->wizard->EM_CONF_presets["modify_tables"]));
00708 }
00709
00710 return $EM_CONF;
00711 }
00712 function userField($k) {
00713 $v = "";
00714 if($k == "name") {
00715 $v = ($this->wizard->wizArray["emconf"][1]["author"] != "") ? $this->wizard->wizArray["emconf"][1]["author"] : $GLOBALS['BE_USER']->user['realName'];
00716 } else if ($k == "email") {
00717 $v = ($this->wizard->wizArray["emconf"][1]["author_email"] != "") ? $this->wizard->wizArray["emconf"][1]["author_email"] : $GLOBALS['BE_USER']->user['email'];
00718 }
00719 return $v;
00720 }
00721 }
00722
00723
00724
00725 if (defined("TYPO3_MODE") && $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/kickstarter/class.tx_kickstarter_sectionbase.php"]) {
00726 include_once($TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/kickstarter/class.tx_kickstarter_sectionbase.php"]);
00727 }
00728
00729
00730 ?>