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_pi extends tx_kickstarter_sectionbase {
00034 var $sectionID = 'pi';
00035
00039 function render_wizard() {
00040 $lines=array();
00041
00042 $action = explode(":",$this->wizard->modData["wizAction"]);
00043 if ($action[0]=="edit") {
00044 $this->regNewEntry($this->sectionID,$action[1]);
00045 $lines = $this->catHeaderLines($lines,$this->sectionID,$this->wizard->options[$this->sectionID],"<strong>Edit Plugin #".$action[1]."</strong>",$action[1]);
00046 $piConf = $this->wizard->wizArray[$this->sectionID][$action[1]];
00047 $ffPrefix='['.$this->sectionID.']['.$action[1].']';
00048
00049
00050
00051 $subContent="<strong>Enter a title for the plugin:</strong><BR>".
00052 $this->renderStringBox_lang("title",$ffPrefix,$piConf);
00053 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00054
00055 $subContent = $this->renderCheckBox($ffPrefix."[plus_user_obj]",$piConf["plus_user_obj"])."USER cObjects are cached. Make it a non-cached USER_INT instead<BR>";
00056 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00057
00058 $subContent = $this->renderCheckBox($ffPrefix."[plus_not_staticTemplate]",$piConf["plus_not_staticTemplate"])."Enable this option if you want the TypoScript code to be set by default. Otherwise the code will go into a static template file which must be included in the template record (recommended is to <em>not</em> set this option).<BR>";
00059 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00060
00061
00062
00063 if (is_array($this->wizard->wizArray["fields"])) {
00064 $optValues = array(
00065 "0" => "",
00066 );
00067 foreach($this->wizard->wizArray["fields"] as $kk => $fC) {
00068 if ($fC["which_table"]=="tt_content") {
00069 $optValues[$kk]=($fC["title"]?$fC["title"]:"Item ".$kk)." (".count($fC["fields"])." fields)";
00070 }
00071 }
00072 if (count($optValues)>1) {
00073 $subContent="<strong>Apply a set of extended fields</strong><BR>
00074 If you have configured a set of extra fields (Extend existing Tables) for the tt_content table, you can have them assigned to this plugin.
00075 <BR>".
00076 $this->renderSelectBox($ffPrefix."[apply_extended]",$piConf["apply_extended"],$optValues);
00077 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00078 }
00079 }
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095 if (is_array($this->wizard->wizArray["tables"])) {
00096 $optValues = array(
00097 "0" => "",
00098 );
00099 foreach($this->wizard->wizArray["tables"] as $kk => $fC) {
00100 $optValues[$kk]=($fC["tablename"]||$fC["title"]?$fC["title"]." (".$this->returnName($this->wizard->extKey,"tables").($fC["tablename"]?"_".$fC["tablename"]:"").")":"Item ".$kk)." (".count($fC["fields"])." fields)";
00101 }
00102 $incListing="<BR><BR>If you have configured custom tables you can select one of the tables to list by default as an example:
00103 <BR>".
00104 $this->renderSelectBox($ffPrefix."[list_default]",$piConf["list_default"],$optValues);
00105 $incListing.="<BR>".$this->renderCheckBox($ffPrefix."[list_default_listmode]",$piConf["list_default_listmode"]).
00106 "Listing: Sections instead of table-rows";
00107 $incListing.="<BR>".$this->renderCheckBox($ffPrefix."[list_default_singlemode]",$piConf["list_default_singlemode"]).
00108 "Singleview: Sections instead of table-rows";
00109 } else $incListing="";
00110
00111
00112 if (!$piConf["addType"]) $piConf["addType"]="list_type";
00113 $subContent=$this->renderRadioBox($ffPrefix."[addType]",$piConf["addType"],"list_type").
00114 $this->textSetup(
00115 "Add to 'Insert Plugin' list in Content Elements",
00116 "Most frontend plugins should be added to the Plugin list of Content Element type 'Insert Plugin'. This is what happens with most other plugins you know of.".
00117 $this->resImg("pi_pi.png").
00118 "<BR>".$this->renderCheckBox($ffPrefix."[plus_wiz]",$piConf["plus_wiz"]).
00119 "Add icon to 'New Content Element' wizard:".
00120 $this->resImg("pi_cewiz.png").
00121 "Write a description for the entry (if any):<BR>".
00122 $this->renderStringBox_lang("plus_wiz_description",$ffPrefix,$piConf).$incListing
00123 );
00124 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00125
00126
00127 $subContent=$this->renderRadioBox($ffPrefix."[addType]",$piConf["addType"],"textbox").
00128 $this->textSetup("Add as a 'Textbox' type",
00129 "The Textbox Content Element is not very common but has a confortable set of fields: Bodytext and image upload.".
00130 $this->resImg("pi_textbox.png"));
00131 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00132
00133
00134 $subContent=$this->renderRadioBox($ffPrefix."[addType]",$piConf["addType"],"menu_sitemap").
00135 $this->textSetup("Add as a 'Menu/Sitemap' item",
00136 "Adds the plugin to the Menu/Sitemap list. Use this if your plugin is a list of links to pages or elements on the website. An alternative sitemap? Or some special kind of menu in a special design?".
00137 $this->resImg("pi_menu_sitemap.png"));
00138 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00139
00140
00141 $subContent=$this->renderRadioBox($ffPrefix."[addType]",$piConf["addType"],"ce").
00142 $this->textSetup("Add as a totally new Content Element type",
00143 "You can also take the plunge into a whole new content element type! Scarry eh?".
00144 $this->resImg("pi_ce.png").
00145
00146
00147
00148
00149
00150
00151
00152 ''
00153 );
00154 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00155
00156
00157 $subContent=$this->renderRadioBox($ffPrefix."[addType]",$piConf["addType"],"header").
00158 $this->textSetup("Add as a new header type",
00159 "Finally you might insert a new header type here:".
00160 $this->resImg("pi_header.png"));
00161 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00162
00163
00164 $subContent=$this->renderRadioBox($ffPrefix."[addType]",$piConf["addType"],"typotags").
00165 $this->textSetup("Processing of userdefined tag",
00166 htmlspecialchars("If you wish the plugin to process content from a userdefined tag in Content Element text-fields, enter the tagname here. Eg. if you wish the tags <mytag>This is the content</mytag> to be your userdefined tags, just enter 'mytag' in this field (lowercase a-z, 0-9 and underscore):")."<BR>".
00167 $this->renderStringBox($ffPrefix."[tag_name]",$piConf["tag_name"])
00168 );
00169 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00170
00171
00172 $subContent=$this->renderRadioBox($ffPrefix."[addType]",$piConf["addType"],"includeLib").
00173 $this->textSetup("Just include library",
00174 "In this case your library is just included when pages are rendered.<BR><BR>".
00175 $this->renderCheckBox($ffPrefix."[plus_user_ex]",$piConf["plus_user_ex"])."Provide TypoScript example for USER cObject in 'page.1000'<BR>"
00176 );
00177 $lines[]='<tr'.$this->bgCol(3).'><td>'.$this->fw($subContent).'</td></tr>';
00178 }
00179
00180
00181 if(is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['kickstarter']['add_cat_pi'])) {
00182 foreach($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['kickstarter']['add_cat_pi'] as $_funcRef) {
00183 $lines = t3lib_div::callUserFunction($_funcRef, $lines, $this->wizard);
00184 }
00185 }
00186
00187 $content = '<table border=0 cellpadding=2 cellspacing=2>'.implode("",$lines).'</table>';
00188 return $content;
00189 }
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201 function render_extPart($k,$config,$extKey) {
00202 $WOP="[pi][".$k."]";
00203 $cN = $this->returnName($extKey,"class","pi".$k);
00204 $pathSuffix = "pi".$k."/";
00205
00206 #debug($config);
00207 $setType="";
00208 switch($config["addType"]) {
00209 case "list_type":
00210 $setType="list_type";
00211
00212 $this->wizard->ext_tables[]=$this->sPS('
00213 '.$this->WOPcomment('WOP:'.$WOP.'[addType]')."
00214 t3lib_div::loadTCA('tt_content');
00215 \$TCA['tt_content']['types']['list']['subtypes_excludelist'][\$_EXTKEY.'_pi".$k."']='layout,select_key';
00216 ".($config['apply_extended']?"\$TCA['tt_content']['types']['list']['subtypes_addlist'][\$_EXTKEY.'_pi".$k."']='".$this->wizard->_apply_extended_types[$config['apply_extended']]."';":"")."
00217 ");
00218
00219 $this->wizard->ext_localconf[]=$this->sPS('
00220 '.$this->WOPcomment('WOP:'.$WOP.'[addType] / '.$WOP.'[tag_name]')."
00221 ## Extending TypoScript from static template uid=43 to set up userdefined tag:
00222 t3lib_extMgm::addTypoScript(\$_EXTKEY,'editorcfg','
00223 tt_content.CSS_editor.ch.".$cN." = < plugin.".$cN.".CSS_editor
00224 ',43);
00225 ");
00226 break;
00227 case "textbox":
00228 $setType="splash_layout";
00229
00230 if ($config["apply_extended"]) {
00231 $this->wizard->ext_tables[]=$this->sPS('
00232 '.$this->WOPcomment('WOP:'.$WOP.'[addType]')."
00233 t3lib_div::loadTCA('tt_content');
00234 \$TCA['tt_content']['types']['splash']['subtype_value_field']='splash_layout';
00235 \$TCA['tt_content']['types']['splash']['subtypes_addlist'][\$_EXTKEY.'_pi".$k."']='".$this->wizard->_apply_extended_types[$config['apply_extended']]."';
00236 ");
00237 }
00238 break;
00239 case "menu_sitemap":
00240 $setType="menu_type";
00241
00242 if ($config["apply_extended"]) {
00243 $this->wizard->ext_tables[]=$this->sPS('
00244 '.$this->WOPcomment('WOP:'.$WOP.'[addType]')."
00245 t3lib_div::loadTCA('tt_content');
00246 \$TCA['tt_content']['types']['menu']['subtype_value_field']='menu_type';
00247 \$TCA['tt_content']['types']['menu']['subtypes_addlist'][\$_EXTKEY.'_pi".$k."']='".$this->wizard->_apply_extended_types[$config['apply_extended']]."';
00248 ");
00249 }
00250 break;
00251 case "ce":
00252 $setType="CType";
00253
00254 $tFields=array();
00255 $tFields[] = "CType;;4;button;1-1-1, header;;3;;2-2-2";
00256 if ($config["apply_extended"]) {
00257 $tFields[] = $this->wizard->_apply_extended_types[$config["apply_extended"]];
00258 }
00259 $this->wizard->ext_tables[]=$this->sPS('
00260 '.$this->WOPcomment('WOP:'.$WOP.'[addType]')."
00261 t3lib_div::loadTCA('tt_content');
00262 \$TCA['tt_content']['types'][\$_EXTKEY.'_pi".$k."']['showitem']='".implode(', ',$tFields)."';
00263 ");
00264 break;
00265 case "header":
00266 $setType="header_layout";
00267 break;
00268 case "includeLib":
00269 if ($config["plus_user_ex"]) $setType="includeLib";
00270 break;
00271 case "typotags":
00272 $tagName = ereg_replace("[^a-z0-9_]","",strtolower($config["tag_name"]));
00273 if ($tagName) {
00274 $this->wizard->ext_localconf[]=$this->sPS('
00275 '.$this->WOPcomment('WOP:'.$WOP.'[addType] / '.$WOP.'[tag_name]')."
00276 ## Extending TypoScript from static template uid=43 to set up userdefined tag:
00277 t3lib_extMgm::addTypoScript(\$_EXTKEY,'setup','
00278 tt_content.text.20.parseFunc.tags.".$tagName." = < plugin.'.t3lib_extMgm::getCN(\$_EXTKEY).'_pi".$k."
00279 ',43);
00280 ");
00281 }
00282 break;
00283 default:
00284 break;
00285 }
00286
00287 $cache= $config["plus_user_obj"] ? 0 : 1;
00288
00289 $this->wizard->ext_localconf[]=$this->sPS('
00290 '.$this->WOPcomment('WOP:'.$WOP.'[addType]')."
00291 t3lib_extMgm::addPItoST43(\$_EXTKEY,'pi".$k."/class.".$cN.".php','_pi".$k."','".$setType."',".$cache.");
00292 ");
00293
00294 if ($setType && !t3lib_div::inList("typotags,includeLib",$setType)) {
00295 $this->wizard->ext_tables[]=$this->sPS('
00296 '.$this->WOPcomment('WOP:'.$WOP.'[addType]')."
00297 t3lib_extMgm::addPlugin(Array('".addslashes($this->getSplitLabels_reference($config,'title','tt_content.'.$setType.'_pi'.$k))."', \$_EXTKEY.'_pi".$k."'),'".$setType."');
00298 ");
00299 }
00300
00301
00302 switch($config["addType"]) {
00303 case "list_type":
00304 if ($config["list_default"]) {
00305 if (is_array($this->wizard->wizArray["tables"][$config["list_default"]])) {
00306 $tempTableConf = $this->wizard->wizArray["tables"][$config["list_default"]];
00307 $tableName = $this->returnName($extKey,"tables",$tempTableConf["tablename"]);
00308
00309 $ll=array();
00310
00311 $theLines = Array();
00312 $theLines["getListRow"]=Array();
00313 $theLines["getListHeader"]=Array();
00314 $theLines["getFieldContent"]=Array();
00315 $theLines["getFieldHeader"]=Array();
00316 $theLines["singleRows"]=Array();
00317 $theLines["listItemRows"]=Array();
00318 $theLines["singleRows_section"]=Array();
00319 $P_classes=array();
00320
00321 $theLines["searchFieldList"]=Array();
00322 $theLines["orderByList"]=Array();
00323
00324 $tcol="uid";
00325 $theLines["getListRow"][$tcol] = '<td><p>\'.$this->getFieldContent(\''.$tcol.'\').\'</p></td>';
00326 $theLines["getListHeader"][$tcol] = '<td><p>\'.$this->getFieldHeader_sortLink(\''.$tcol.'\').\'</p></td>';
00327 $theLines["orderByList"][$tcol]=$tcol;
00328
00329 if (is_array($tempTableConf["fields"])) {
00330 reset($tempTableConf["fields"]);
00331 while(list(,$fC)=each($tempTableConf["fields"])) {
00332 $tcol = $fC["fieldname"];
00333 if ($tcol) {
00334 $theLines["singleRows"][$tcol] = trim($this->sPS('
00335 <tr>
00336 <td nowrap valign="top"\'.$this->pi_classParam(\'singleView-HCell\').\'><p>\'.$this->getFieldHeader(\''.$tcol.'\').\'</p></td>
00337 <td valign="top"><p>\'.$this->getFieldContent(\''.$tcol.'\').\'</p></td>
00338 </tr>
00339 '));
00340
00341 if ($this->fieldIsRTE($fC)) {
00342 $theLines["singleRows_section"][$tcol] = trim($this->sPS('
00343 \'.$this->getFieldContent(\''.$tcol.'\').\'
00344 '));
00345 } else {
00346 $tempN='singleViewField-'.str_replace("_","-",$tcol);
00347 $theLines["singleRows_section"][$tcol] = trim($this->sPS('
00348 <p\'.$this->pi_classParam("'.$tempN.'").\'><strong>\'.$this->getFieldHeader(\''.$tcol.'\').\':</strong> \'.$this->getFieldContent(\''.$tcol.'\').\'</p>
00349 '));
00350 $P_classes["SV"][]=$tempN;
00351 }
00352
00353 if (!strstr($fC["type"],"textarea")) {
00354 $theLines["getListRow"][$tcol] = '<td valign="top"><p>\'.$this->getFieldContent(\''.$tcol.'\').\'</p></td>';
00355 $theLines["getListHeader"][$tcol] = '<td nowrap><p>\'.$this->getFieldHeader(\''.$tcol.'\').\'</p></td>';
00356
00357 $tempN='listrowField-'.str_replace("_","-",$tcol);
00358 $theLines["listItemRows"][$tcol] = trim($this->sPS('
00359 <p\'.$this->pi_classParam(\''.$tempN.'\').\'>\'.$this->getFieldContent(\''.$tcol.'\').\'</p>
00360 '));
00361 $P_classes["LV"][]=$tempN;
00362 }
00363
00364
00365 $this->addLocalConf($ll,array("listFieldHeader_".$tcol=>$fC["title"]),"listFieldHeader_".$tcol,"pi",$k,1,1);
00366
00367 if ($tcol=="title") {
00368 $theLines["getFieldContent"][$tcol] = trim($this->sPS('
00369 case "'.$tcol.'":
00370
00371 return $this->pi_list_linkSingle($this->internal[\'currentRow\'][\''.$tcol.'\'],$this->internal[\'currentRow\'][\'uid\'],1);
00372 break;
00373 '));
00374 $theLines["getFieldHeader"][$tcol] = trim($this->sPS('
00375 case "'.$tcol.'":
00376 return $this->pi_getLL(\'listFieldHeader_'.$tcol.'\',\'<em>'.$tcol.'</em>\');
00377 break;
00378 '));
00379 } elseif ($this->fieldIsRTE($fC)) {
00380 $theLines["getFieldContent"][$tcol] = trim($this->sPS('
00381 case "'.$tcol.'":
00382 return $this->pi_RTEcssText($this->internal[\'currentRow\'][\''.$tcol.'\']);
00383 break;
00384 '));
00385 } elseif ($fC["type"]=="datetime") {
00386 $theLines["getFieldContent"][$tcol] = trim($this->sPS('
00387 case "'.$tcol.'":
00388 return strftime(\'%d-%m-%y %H:%M:%S\',$this->internal[\'currentRow\'][\''.$tcol.'\']);
00389 break;
00390 '));
00391 } elseif ($fC["type"]=="date") {
00392 $theLines["getFieldContent"][$tcol] = trim($this->sPS('
00393 case "'.$tcol.'":
00394
00395 return strftime(\'%A %e. %B %Y\',$this->internal[\'currentRow\'][\''.$tcol.'\']);
00396 break;
00397 '));
00398 }
00399 if (strstr($fC["type"],"input")) {
00400 $theLines["getListHeader"][$tcol] = '<td><p>\'.$this->getFieldHeader_sortLink(\''.$tcol.'\').\'</p></td>';
00401 $theLines["orderByList"][$tcol]=$tcol;
00402 }
00403 if (strstr($fC["type"],"input")||strstr($fC["type"],"textarea")) {
00404 $theLines["searchFieldList"][$tcol]=$tcol;
00405 }
00406 }
00407 }
00408 }
00409
00410 $theLines["singleRows"]["tstamp"] = trim($this->sPS('
00411 <tr>
00412 <td nowrap\'.$this->pi_classParam(\'singleView-HCell\').\'><p>Last updated:</p></td>
00413 <td valign="top"><p>\'.date(\'d-m-Y H:i\',$this->internal[\'currentRow\'][\'tstamp\']).\'</p></td>
00414 </tr>
00415 '));
00416 $theLines["singleRows"]["crdate"] = trim($this->sPS('
00417 <tr>
00418 <td nowrap\'.$this->pi_classParam(\'singleView-HCell\').\'><p>Created:</p></td>
00419 <td valign="top"><p>\'.date(\'d-m-Y H:i\',$this->internal[\'currentRow\'][\'crdate\']).\'</p></td>
00420 </tr>
00421 '));
00422
00423
00424 $ll = $this->addStdLocalLangConf($ll,$k);
00425
00426 $this->addLocalLangFile($ll,$pathSuffix."locallang.php",'Language labels for plugin "'.$cN.'"');
00427
00428
00429 $innerMainContent = $this->sPS('
00433 function main($content,$conf) {
00434 switch((string)$conf[\'CMD\']) {
00435 case \'singleView\':
00436 list($t) = explode(\':\',$this->cObj->currentRecord);
00437 $this->internal[\'currentTable\']=$t;
00438 $this->internal[\'currentRow\']=$this->cObj->data;
00439 return $this->pi_wrapInBaseClass($this->singleView($content,$conf));
00440 break;
00441 default:
00442 if (strstr($this->cObj->currentRecord,\'tt_content\')) {
00443 $conf[\'pidList\'] = $this->cObj->data[\'pages\'];
00444 $conf[\'recursive\'] = $this->cObj->data[\'recursive\'];
00445 }
00446 return $this->pi_wrapInBaseClass($this->listView($content,$conf));
00447 break;
00448 }
00449 }
00450 ');
00451
00452 $innerMainContent.= $this->sPS('
00456 function listView($content,$conf) {
00457 $this->conf=$conf;
00458 $this->pi_setPiVarDefaults();
00459 $this->pi_loadLL();
00460 '.(!$cache ? '$this->pi_USER_INT_obj=1;
00461 $lConf = $this->conf[\'listView.\'];
00462
00463 if ($this->piVars[\'showUid\']) {
00464 $this->internal[\'currentTable\'] = \''.$tableName.'\';
00465 $this->internal[\'currentRow\'] = $this->pi_getRecord(\''.$tableName.'\',$this->piVars[\'showUid\']);
00466
00467 $content = $this->singleView($content,$conf);
00468 return $content;
00469 } else {
00470 $items=array(
00471 \'1\'=> $this->pi_getLL(\'list_mode_1\',\'Mode 1\'),
00472 \'2\'=> $this->pi_getLL(\'list_mode_2\',\'Mode 2\'),
00473 \'3\'=> $this->pi_getLL(\'list_mode_3\',\'Mode 3\'),
00474 );
00475 if (!isset($this->piVars[\'pointer\'])) $this->piVars[\'pointer\']=0;
00476 if (!isset($this->piVars[\'mode\'])) $this->piVars[\'mode\']=1;
00477
00478
00479 list($this->internal[\'orderBy\'],$this->internal[\'descFlag\']) = explode(\':\',$this->piVars[\'sort\']);
00480 $this->internal[\'results_at_a_time\']=t3lib_div::intInRange($lConf[\'results_at_a_time\'],0,1000,3);
00481 $this->internal[\'maxPages\']=t3lib_div::intInRange($lConf[\'maxPages\'],0,1000,2);;
00482 $this->internal[\'searchFieldList\']=\''.implode(",",$theLines["searchFieldList"]).'\';
00483 $this->internal[\'orderByList\']=\''.implode(",",$theLines["orderByList"]).'\';
00484
00485
00486 $res = $this->pi_exec_query(\''.$tableName.'\',1);
00487 list($this->internal[\'res_count\']) = $GLOBALS[\'TYPO3_DB\']->sql_fetch_row($res);
00488
00489
00490 $res = $this->pi_exec_query(\''.$tableName.'\');
00491 $this->internal[\'currentTable\'] = \''.$tableName.'\';
00492
00493
00494 $fullTable=\'\';
00495 # $fullTable.=t3lib_div::view_array($this->piVars); // DEBUG: Output the content of $this->piVars for debug purposes. REMEMBER to comment out the IP-lock in the debug() function in t3lib/config_default.php if nothing happens when you un-comment this line!
00496
00497
00498 $fullTable.=$this->pi_list_modeSelector($items);
00499
00500
00501 $fullTable.='.($config["list_default_listmode"]?'$this->makelist($res);':'$this->pi_list_makelist($res);').'
00502
00503
00504 $fullTable.=$this->pi_list_searchBox();
00505
00506
00507 $fullTable.=$this->pi_list_browseresults();
00508
00509
00510 return $fullTable;
00511 }
00512 }
00513 ');
00514
00515
00516 if ($config["list_default_listmode"]) {
00517 $innerMainContent.= $this->wrapBody('
00521 function makelist($res) {
00522 $items=Array();
00523
00524 while($this->internal[\'currentRow\'] = $GLOBALS[\'TYPO3_DB\']->sql_fetch_assoc($res)) {
00525 $items[]=$this->makeListItem();
00526 }
00527
00528 $out = \'<div\'.$this->pi_classParam(\'listrow\').\'>
00529 \'.implode(chr(10),$items).\'
00530 </div>\';
00531 return $out;
00532 }
00533
00537 function makeListItem() {
00538 $out=\'
00539 ',implode(chr(10),$theLines["listItemRows"]),'
00540 \';
00541 return $out;
00542 }
00543 ',3);
00544 }
00545
00546
00547 if ($config["list_default_singlemode"]) {
00548 $innerMainContent.= $this->wrapBody('
00552 function singleView($content,$conf) {
00553 $this->conf=$conf;
00554 $this->pi_setPiVarDefaults();
00555 $this->pi_loadLL();
00556 '.(!$cache ? '$this->pi_USER_INT_obj=1;
00557
00558
00559 if ($this->internal[\'currentRow\'][\'title\']) $GLOBALS[\'TSFE\']->indexedDocTitle=$this->internal[\'currentRow\'][\'title\'];
00560
00561 $content=\'<div\'.$this->pi_classParam(\'singleView\').\'>
00562 <H2>Record "\'.$this->internal[\'currentRow\'][\'uid\'].\'" from table "\'.$this->internal[\'currentTable\'].\'":</H2>
00563 ',implode(chr(10),$theLines["singleRows_section"]),'
00564 <p>\'.$this->pi_list_linkSingle($this->pi_getLL(\'back\',\'Back\'),0).\'</p></div>\'.
00565 $this->pi_getEditPanel();
00566
00567 return $content;
00568 }
00569 ',3);
00570 } else {
00571 $innerMainContent.= $this->wrapBody('
00575 function singleView($content,$conf) {
00576 $this->conf=$conf;
00577 $this->pi_setPiVarDefaults();
00578 $this->pi_loadLL();
00579 '.(!$cache ? '$this->pi_USER_INT_obj=1;
00580
00581
00582 if ($this->internal[\'currentRow\'][\'title\']) $GLOBALS[\'TSFE\']->indexedDocTitle=$this->internal[\'currentRow\'][\'title\'];
00583
00584 $content=\'<div\'.$this->pi_classParam(\'singleView\').\'>
00585 <H2>Record "\'.$this->internal[\'currentRow\'][\'uid\'].\'" from table "\'.$this->internal[\'currentTable\'].\'":</H2>
00586 <table>
00587 ',implode(chr(10),$theLines["singleRows"]),'
00588 </table>
00589 <p>\'.$this->pi_list_linkSingle($this->pi_getLL(\'back\',\'Back\'),0).\'</p></div>\'.
00590 $this->pi_getEditPanel();
00591
00592 return $content;
00593 }
00594 ',3);
00595 }
00596
00597 $this->wizard->ext_localconf[]=$this->sPS('
00598 '.$this->WOPcomment('WOP:'.$WOP.'[...]').'
00599 t3lib_extMgm::addTypoScript($_EXTKEY,\'setup\',\'
00600 tt_content.shortcut.20.0.conf.'.$tableName.' = < plugin.\'.t3lib_extMgm::getCN($_EXTKEY).\'_pi'.$k.'
00601 tt_content.shortcut.20.0.conf.'.$tableName.'.CMD = singleView
00602 \',43);
00603 ');
00604
00605 if (!$config["list_default_listmode"]) {
00606 $innerMainContent.= $this->wrapBody('
00610 function pi_list_row($c) {
00611 $editPanel = $this->pi_getEditPanel();
00612 if ($editPanel) $editPanel=\'<TD>\'.$editPanel.\'</TD>\';
00613
00614 return \'<tr\'.($c%2 ? $this->pi_classParam(\'listrow-odd\') : \'\').\'>
00615 ',implode(chr(10),$theLines['getListRow']),'
00616 '.$editPanel.'
00617 </tr>\';
00618 }
00619 ',3);
00620 $innerMainContent.= $this->wrapBody('
00624 function pi_list_header() {
00625 return \'<tr\'.$this->pi_classParam(\'listrow-header\').\'>
00626 ',implode(chr(10),$theLines["getListHeader"]),'
00627 </tr>\';
00628 }
00629 ',3);
00630 }
00631 $innerMainContent.= $this->wrapBody('
00635 function getFieldContent($fN) {
00636 switch($fN) {
00637 case \'uid\':
00638 return $this->pi_list_linkSingle($this->internal[\'currentRow\'][$fN],$this->internal[\'currentRow\'][\'uid\'],1);
00639 break;
00640 ',implode(chr(10),$theLines['getFieldContent']),'
00641 default:
00642 return $this->internal[\'currentRow\'][$fN];
00643 break;
00644 }
00645 }
00646 ',2);
00647 $innerMainContent.= $this->wrapBody('
00651 function getFieldHeader($fN) {
00652 switch($fN) {
00653 ',implode(chr(10),$theLines["getFieldHeader"]),'
00654 default:
00655 return $this->pi_getLL(\'listFieldHeader_\'.$fN,\'[\'.$fN.\']\');
00656 break;
00657 }
00658 }
00659 ',2);
00660 $innerMainContent.= $this->sPS('
00664 function getFieldHeader_sortLink($fN) {
00665 return $this->pi_linkTP_keepPIvars($this->getFieldHeader($fN),array(\'sort\'=>$fN.\':\'.($this->internal[\'descFlag\']?0:1)));
00666 }
00667 ');
00668
00669
00670
00671
00672
00673
00674 $CSS_editor_code="";
00675 $pCSSSel = str_replace("_","-",$cN);
00676
00677 if ($config["list_default_listmode"]) {
00678 $temp_merge=array();
00679 if (is_array($P_classes["LV"])) {
00680 while(list($c,$LVc)=each($P_classes["LV"])) {
00681 $temp_merge[]=$this->sPS('
00682 P_'.$c.' = ['.$LVc.']
00683 P_'.$c.'.selector = +.'.$pCSSSel.'-'.$LVc.'
00684 P_'.$c.'.attribs = BODYTEXT
00685 P_'.$c.'.example = <p class="'.$pCSSSel.'-'.$LVc.'">['.$LVc.'] text <a href="#">with a link</a> in it.</p><p class="'.$pCSSSel.'-'.$LVc.'">In principio creavit Deus caelum et terram terra autem erat inanis et vacua et tenebrae super faciem abyssi et spiritus...</p>
00686 P_'.$c.'.exampleStop = 1
00687 P_'.$c.'.ch.links = < CSS_editor.ch.A
00688 ',1);
00689 }
00690 }
00691 $CSS_editor_code.=$this->wrapBody('
00692 list = List display
00693 list.selector = .'.$pCSSSel.'-listrow
00694 list.example = <div class="'.$pCSSSel.'-listrow"><p>This is regular bodytext in the list display.</p><p>Viditque Deus cuncta quae fecit et erant valde bona et factum est vespere et mane dies sextus.</p></div>
00695 list.exampleWrap = <div class="'.$pCSSSel.'-listrow"> | </div>
00696 list.ch.P < .P
00697 list.ch.P.exampleStop = 0
00698 list.ch.P.ch {
00699 ',implode(chr(10),$temp_merge),'
00700 }
00701 ');
00702 } else {
00703 $CSS_editor_code.=$this->sPS('
00704 list = List display
00705 list.selector = .'.$pCSSSel.'-listrow
00706 list.example = <div class="'.$pCSSSel.'-listrow"><table><tr class="'.$pCSSSel.'-listrow-header"><td nowrap><p>Time / Date:</p></td><td><p><a HREF="#">Title:</a></p></td></tr><tr><td valign="top"><p>25-08-02</p></td><td valign="top"><p><a HREF="#">New company name...</a></p></td></tr><tr class="'.$pCSSSel.'-listrow-odd"><td valign="top"><p>16-08-02</p></td><td valign="top"><p><a HREF="#">Yet another headline here</a></p></td></tr><tr><td valign="top"><p>05-08-02</p></td><td valign="top"><p><a HREF="#">The third line - even row</a></p></td></tr></table></div>
00707 list.exampleStop = 1
00708 list.ch {
00709 TABLE = Table
00710 TABLE.selector = TABLE
00711 TABLE.attribs = TABLE
00712 TD = Table cells
00713 TD.selector = TD
00714 TD.attribs = TD
00715 TD_header = Header row cells
00716 TD_header.selector = TR.'.$pCSSSel.'-listrow-header TD
00717 TD_header.attribs = TD
00718 TD_odd = Odd rows cells
00719 TD_odd.selector = TR.'.$pCSSSel.'-listrow-odd TD
00720 TD_odd.attribs = TD
00721 }
00722 list.ch.TD.ch.P < .P
00723 list.ch.TD_header.ch.P < .P
00724 list.ch.TD_odd.ch.P < .P
00725 ');
00726 }
00727
00728 if ($config["list_default_singlemode"]) {
00729 $temp_merge=array();
00730 if (is_array($P_classes["SV"])) {
00731 while(list($c,$LVc)=each($P_classes["SV"])) {
00732 $temp_merge[]=$this->sPS('
00733 P_'.$c.' = ['.$LVc.']
00734 P_'.$c.'.selector = +.'.$pCSSSel.'-'.$LVc.'
00735 P_'.$c.'.attribs = BODYTEXT
00736 P_'.$c.'.example = <p class="'.$pCSSSel.'-'.$LVc.'">['.$LVc.'] text <a href="#">with a link</a> in it.</p><p class="'.$pCSSSel.'-'.$LVc.'">In principio creavit Deus caelum et terram terra autem erat inanis et vacua et tenebrae super faciem abyssi et spiritus...</p>
00737 P_'.$c.'.exampleStop = 1
00738 P_'.$c.'.ch.links = < CSS_editor.ch.A
00739 ',1);
00740 }
00741 }
00742 $CSS_editor_code.=$this->wrapBody('
00743 single = Single display
00744 single.selector = .'.$pCSSSel.'-singleView
00745 single.example = <div class="'.$pCSSSel.'-singleView"><H2>Header, if any:</H2><p>This is regular bodytext in the list display.</p><p>Viditque Deus cuncta quae fecit et erant valde bona et factum est vespere et mane dies sextus.</p><p><a href="#">Back</a></p></div>
00746 single.exampleWrap = <div class="'.$pCSSSel.'-singleView"> | </div>
00747 single.ch.P < .P
00748 single.ch.P.exampleStop = 0
00749 single.ch.P.ch {
00750 ',implode(chr(10),$temp_merge),'
00751 }
00752 ');
00753 } else {
00754 $CSS_editor_code.=$this->sPS('
00755 single = Single display
00756 single.selector = .'.$pCSSSel.'-singleView
00757 single.example = <div class="'.$pCSSSel.'-singleView"><H2>Header, if any:</H2><table><tr><td nowrap valign="top" class="'.$pCSSSel.'-singleView-HCell"><p>Date:</p></td><td valign="top"><p>13-09-02</p></td></tr><tr><td nowrap valign="top" class="'.$pCSSSel.'-singleView-HCell"><p>Title:</p></td><td valign="top"><p><a HREF="#">New title line</a></p></td></tr><tr><td nowrap valign="top" class="'.$pCSSSel.'-singleView-HCell"><p>Teaser text:</p></td><td valign="top"><p>Vocavitque Deus firmamentum caelum et factum est vespere et mane dies secundus dixit vero Deus congregentur.</p><p>Aquae quae sub caelo sunt in locum unum et appareat arida factumque est ita et vocavit Deus aridam terram congregationesque aquarum appellavit maria et vidit Deus quod esset bonum et ait germinet terra herbam virentem et facientem semen et lignum pomiferum faciens fructum iuxta genus suum cuius semen in semet ipso sit super terram et factum est ita et protulit terra herbam virentem et adferentem semen iuxta genus suum lignumque faciens fructum et habens unumquodque sementem secundum speciem suam et vidit Deus quod esset bonum.</p></td></tr><tr><td nowrap class="'.$pCSSSel.'-singleView-HCell"><p>Last updated:</p></td><td valign="top"><p>25-08-2002 18:28</p></td></tr><tr><td nowrap class="'.$pCSSSel.'-singleView-HCell"><p>Created:</p></td><td valign="top"><p>25-08-2002 18:27</p></td></tr></table><p><a href="#">Back</a></p></div>
00758 single.exampleStop = 1
00759 single.ch {
00760 TABLE = Table
00761 TABLE.selector = TABLE
00762 TABLE.attribs = TABLE
00763 TD = Table cells
00764 TD.selector = TD
00765 TD.attribs = TD
00766 TD.ch {
00767 TD = Header cells
00768 TD.selector = +.'.$pCSSSel.'-singleView-HCell
00769 TD.attribs = TD
00770 }
00771 }
00772 single.ch.P < .P
00773 single.ch.H2 < .H2
00774 single.ch.TD.ch.P < .P
00775 single.ch.TD.ch.TD.ch.P < .P
00776 ');
00777 }
00778
00779 $this->addFileToFileArray($config["plus_not_staticTemplate"]?"ext_typoscript_editorcfg.txt":$pathSuffix."static/editorcfg.txt",$this->wrapBody('
00780 plugin.'.$cN.'.CSS_editor = Plugin: "'.$cN.'"
00781 plugin.'.$cN.'.CSS_editor.selector = .'.$pCSSSel.'
00782 plugin.'.$cN.'.CSS_editor.exampleWrap = <HR><strong>Plugin: "'.$cN.'"</strong><HR><div class="'.$pCSSSel.'"> | </div>
00783 plugin.'.$cN.'.CSS_editor.ch {
00784 P = Text
00785 P.selector = P
00786 P.attribs = BODYTEXT
00787 P.example = <p>General text wrapped in <P>:<BR>This is text <a href="#">with a link</a> in it. In principio creavit Deus caelum et terram terra autem erat inanis et vacua et tenebrae super faciem abyssi et spiritus...</p>
00788 P.exampleStop = 1
00789 P.ch.links = < CSS_editor.ch.A
00790
00791 H2 = Header 2
00792 H2.selector = H2
00793 H2.attribs = HEADER
00794 H2.example = <H2>Header 2 example <a href="#"> with link</a></H2><p>Bodytext, Et praeessent diei ac nocti et dividerent lucem ac tenebras et vidit Deus quod esset bonum et factum est...</p>
00795 H2.ch.links = < CSS_editor.ch.A
00796 H2.exampleStop = 1
00797
00798 H3 = Header 3
00799 H3.selector = H3
00800 H3.attribs = HEADER
00801 H3.example = <h3>Header 3 example <a href="#"> with link</a></h3><p>Bodytext, Et praeessent diei ac nocti et dividerent lucem ac tenebras et vidit Deus quod esset bonum et factum est...</p>
00802 H3.ch.links = < CSS_editor.ch.A
00803 H3.exampleStop = 1
00804
00805
00806 ## LISTING:
00807 modeSelector = Mode selector
00808 modeSelector.selector = .'.$pCSSSel.'-modeSelector
00809 modeSelector.example = <div class="'.$pCSSSel.'-modeSelector"><table><tr><td class="'.$pCSSSel.'-modeSelector-SCell"><p><a HREF="#">Mode 1 (S)</a></p></td><td><p><a HREF="#">Mode 2</a></p></td><td><p><a HREF="#">Mode 3</a></p></td></tr></table></div>
00810 modeSelector.exampleStop = 1
00811 modeSelector.ch.P < .P
00812 modeSelector.ch.TABLE = Table
00813 modeSelector.ch.TABLE.selector = TABLE
00814 modeSelector.ch.TABLE.attribs = TABLE
00815 modeSelector.ch.TD = Table cells
00816 modeSelector.ch.TD.selector = TD
00817 modeSelector.ch.TD.attribs = TD
00818 modeSelector.ch.TD.ch {
00819 TD = Selected table cells
00820 TD.selector = + .'.$pCSSSel.'-modeSelector-SCell
00821 TD.attribs = TD
00822 }
00823 modeSelector.ch.TD.ch.TD.ch.P < .P
00824
00825
00826 browsebox = Browsing box
00827 browsebox.selector = .'.$pCSSSel.'-browsebox
00828 browsebox.example = <div class="'.$pCSSSel.'-browsebox"><p>Displaying results <span class="'.$pCSSSel.'-browsebox-strong">1 to 3</span> out of <span class="'.$pCSSSel.'-browsebox-strong">4</span></p><table><tr><td class="'.$pCSSSel.'-browsebox-SCell"><p><a HREF="#">Page 1 (S)</a></p></td><td><p><a HREF="#">Page 2</a></p></td><td><p><a HREF="#">Next ></a></p></td></tr></table></div>
00829 browsebox.exampleStop = 1
00830 browsebox.ch.P < .P
00831 browsebox.ch.P.ch.strong = Emphasized numbers
00832 browsebox.ch.P.ch.strong {
00833 selector = SPAN.'.$pCSSSel.'-browsebox-strong
00834 attribs = TEXT
00835 }
00836 browsebox.ch.TABLE = Table
00837 browsebox.ch.TABLE.selector = TABLE
00838 browsebox.ch.TABLE.attribs = TABLE
00839 browsebox.ch.TD = Table cells
00840 browsebox.ch.TD.selector = TD
00841 browsebox.ch.TD.attribs = TD
00842 browsebox.ch.TD.ch {
00843 TD = Selected table cells
00844 TD.selector = + .'.$pCSSSel.'-browsebox-SCell
00845 TD.attribs = TD
00846 }
00847 browsebox.ch.TD.ch.P < .P
00848 browsebox.ch.TD.ch.TD.ch.P < .P
00849
00850
00851 searchbox = Search box
00852 searchbox.selector = .'.$pCSSSel.'-searchbox
00853 searchbox.example = <div class="'.$pCSSSel.'-searchbox"><table><form action="#" method="POST"><tr><td><input type="text" name="'.$cN.'[sword]" value="Search word" class="'.$pCSSSel.'-searchbox-sword"></td><td><input type="submit" value="Search" class="'.$pCSSSel.'-searchbox-button"></td></tr></form></table></div>
00854 searchbox.exampleStop = 1
00855 searchbox.ch {
00856 TABLE = Table
00857 TABLE.selector = TABLE
00858 TABLE.attribs = TABLE
00859 TD = Table cells
00860 TD.selector = TD
00861 TD.attribs = TD
00862 INPUT = Form fields
00863 INPUT.selector = INPUT
00864 INPUT.attribs = TEXT,background-color,width
00865 INPUT.ch {
00866 sword = Search word field
00867 sword.selector = +.'.$pCSSSel.'-searchbox-sword
00868 sword.attribs = TEXT,background-color,width
00869
00870 button = Submit button
00871 button.selector = +.'.$pCSSSel.'-searchbox-button
00872 button.attribs = TEXT,background-color,width
00873 }
00874 }
00875 ',$CSS_editor_code,'
00876 }
00877 '),1);
00878
00879 $this->addFileToFileArray($config["plus_not_staticTemplate"]?"ext_typoscript_setup.txt":$pathSuffix."static/setup.txt",$this->sPS('
00880 plugin.'.$cN.' {
00881 CMD =
00882 pidList =
00883 recursive =
00884 }
00885 plugin.'.$cN.'.listView {
00886 results_at_a_time =
00887 maxPages =
00888 }
00889 # Example of default set CSS styles (these go into the document header):
00890 plugin.'.$cN.'._CSS_DEFAULT_STYLE (
00891 .'.$pCSSSel.' H2 { margin-top: 0px; margin-bottom: 0px; }
00892 )
00893 # Example of how to overrule LOCAL_LANG values for the plugin:
00894 plugin.'.$cN.'._LOCAL_LANG.default {
00895 pi_list_searchBox_search = Search!
00896 }
00897 # Example of how to set default values from TS in the incoming array, $this->piVars of the plugin:
00898 plugin.'.$cN.'._DEFAULT_PI_VARS.test = test
00899 '),1);
00900
00901 $this->wizard->EM_CONF_presets["clearCacheOnLoad"]=1;
00902
00903 if (!$config["plus_not_staticTemplate"]) {
00904 $this->wizard->ext_tables[]=$this->sPS('
00905 t3lib_extMgm::addStaticFile($_EXTKEY,\''.$pathSuffix.'static/\',\''.addslashes(trim($config['title'])).'\');
00906 ');
00907 }
00908 }
00909 } else {
00910
00911 $ll=$this->addStdLocalLangConf($ll,$k,1);
00912 $this->addLocalConf($ll,array("submit_button_label"=>"Click here to submit value"),"submit_button_label","pi",$k,1,1);
00913
00914 $this->addLocalLangFile($ll,$pathSuffix."locallang.php",'Language labels for plugin "'.$cN.'"');
00915
00916
00917 $innerMainContent = $this->sPS('
00921 function main($content,$conf) {
00922 $this->conf=$conf;
00923 $this->pi_setPiVarDefaults();
00924 $this->pi_loadLL();
00925 '.(!$cache ? '$this->pi_USER_INT_obj=1;
00926
00927 $content=\'
00928 <strong>This is a few paragraphs:</strong><BR>
00929 <p>This is line 1</p>
00930 <p>This is line 2</p>
00931
00932 <h3>This is a form:</h3>
00933 <form action="\'.$this->pi_getPageLink($GLOBALS[\'TSFE\']->id).\'" method="POST">
00934 <input type="hidden" name="no_cache" value="1">
00935 <input type="text" name="\'.$this->prefixId.\'[input_field]" value="\'.htmlspecialchars($this->piVars[\'input_field\']).\'">
00936 <input type="submit" name="\'.$this->prefixId.\'[submit_button]" value="\'.htmlspecialchars($this->pi_getLL(\'submit_button_label\')).\'">
00937 </form>
00938 <BR>
00939 <p>You can click here to \'.$this->pi_linkToPage(\'get to this page again\',$GLOBALS[\'TSFE\']->id).\'</p>
00940 \';
00941
00942 return $this->pi_wrapInBaseClass($content);
00943 }
00944 ');
00945
00946
00947 $CSS_editor_code="";
00948 $pCSSSel = str_replace("_","-",$cN);
00949
00950 $this->addFileToFileArray($config["plus_not_staticTemplate"]?"ext_typoscript_editorcfg.txt":$pathSuffix."static/editorcfg.txt",$this->sPS('
00951 plugin.'.$cN.'.CSS_editor = Plugin: "'.$cN.'"
00952 plugin.'.$cN.'.CSS_editor.selector = .'.$pCSSSel.'
00953 plugin.'.$cN.'.CSS_editor.exampleWrap = <HR><strong>Plugin: "'.$cN.'"</strong><HR><div class="'.$pCSSSel.'"> | </div>
00954 plugin.'.$cN.'.CSS_editor.ch {
00955 P = Text
00956 P.selector = P
00957 P.attribs = BODYTEXT
00958 P.example = <p>General text wrapped in <P>:<BR>This is text <a href="#">with a link</a> in it. In principio creavit Deus caelum et terram terra autem erat inanis et vacua et tenebrae super faciem abyssi et spiritus...</p>
00959 P.exampleStop = 1
00960 P.ch.links = < CSS_editor.ch.A
00961
00962 H3 = Header 3
00963 H3.selector = H3
00964 H3.attribs = HEADER
00965 H3.example = <h3>Header 3 example <a href="#"> with link</a></h3><p>Bodytext, Et praeessent diei ac nocti et dividerent lucem ac tenebras et vidit Deus quod esset bonum et factum est...</p>
00966 H3.ch.links = < CSS_editor.ch.A
00967 H3.exampleStop = 1
00968 }
00969 '),1);
00970
00971 if (!$config["plus_not_staticTemplate"]) {
00972 $this->wizard->ext_tables[]=$this->sPS('
00973 t3lib_extMgm::addStaticFile($_EXTKEY,"'.$pathSuffix.'static/","'.addslashes(trim($config['title'])).'");
00974 ');
00975 }
00976 }
00977 break;
00978 case "textbox":
00979 $this->wizard->ext_localconf[]=$this->sPS('
00980 ## Setting TypoScript for the image in the textbox:
00981 t3lib_extMgm::addTypoScript($_EXTKEY,\'setup\',\'
00982 plugin.'.$cN.'_pi'.$k.'.IMAGEcObject {
00983 file.width=100
00984 }
00985 \',43);
00986 ');
00987
00988 $innerMainContent = $this->sPS('
00992 function main($content,$conf) {
00993
00994
00995
00996
00997 $imageFiles = explode(\',\',$this->cObj->data[\'image\']);
00998 $imageRows=array();
00999 reset($imageFiles);
01000 while(list(,$iFile)=each($imageFiles)) {
01001 $imageRows[] = \'<tr>
01002 <td>\'.$this->getImage($iFile,$conf[\'IMAGEcObject.\']).\'</td>
01003 </tr>\';
01004 }
01005 $imageBlock = count($imageRows)?\'<table border=0 cellpadding=5 cellspacing=0>\'.implode(\'\',$imageRows).\'</table>\':\'<img src=clear.gif width=100 height=1>\';
01006
01007
01008 $bodyText = nl2br($this->cObj->data[\'bodytext\']);
01009
01010
01011 $finalContent = \'<table border=1>
01012 <tr>
01013 <td valign=top>\'.$imageBlock.\'</td>
01014 <td valign=top>\'.$bodyText.\'</td>
01015 </tr>
01016 </table>\';
01017
01018
01019 return $finalContent;
01020 }
01025 function getImage($filename,$TSconf) {
01026 list($theImage)=explode(\',\',$filename);
01027 $TSconf[\'file\'] = \'uploads/pics/\'.$theImage;
01028 $img = $this->cObj->IMAGE($TSconf);
01029 return $img;
01030 }
01031 ');
01032 break;
01033 case "header":
01034 $innerMainContent = $this->sPS('
01038 function main($content,$conf) {
01039 return \'<H1>\'.$this->cObj->data[\'header\'].\'</H1>\';
01040 }
01041 ');
01042 break;
01043 case "menu_sitemap":
01044 $innerMainContent = $this->sPS('
01045
01049 function main($content,$conf) {
01050
01051
01052
01053 $menuPid = intval($this->cObj->data[\'pages\']?$this->cObj->data[\'pages\']:$GLOBALS[\'TSFE\']->id);
01054
01055
01056
01057 $menuItems_level1 = $GLOBALS[\'TSFE\']->sys_page->getMenu($menuPid);
01058
01059
01060 $tRows=array();
01061
01062
01063 reset($menuItems_level1);
01064 while(list($uid,$pages_row)=each($menuItems_level1)) {
01065 $tRows[]=\'<tr bgColor="#cccccc"><td>\'.$this->pi_linkToPage(
01066 $pages_row[\'nav_title\']?$pages_row[\'nav_title\']:$pages_row[\'title\'],
01067 $pages_row[\'uid\'],
01068 $pages_row[\'target\']
01069 ).\'</td></tr>\';
01070 }
01071
01072 $totalMenu = \'<table border=0 cellpadding=0 cellspacing=2>
01073 <tr><td>This is a menu. Go to your favourite page:</td></tr>
01074 \'.implode(\'\',$tRows).
01075 \'</table><BR>(\'.$this->tellWhatToDo(\'Click here if you want to know where to change the menu design\').\')\';
01076
01077 return $totalMenu;
01078 }
01079
01080 function tellWhatToDo($str) {
01081 return \'<a href="#" onClick="alert(\\\'Open the PHP-file \'.t3lib_extMgm::siteRelPath(\''.$extKey.'\').\''.$pathSuffix.'class.'.$cN.'.php and edit the function main()\nto change how the menu is rendered! It is pure PHP coding!\\\')">\'.$str.\'</a>\';
01082 }
01083 ');
01084 break;
01085 case "typotags":
01086 $innerMainContent = $this->sPS('
01090 function main($content,$conf) {
01091 $tag_content = $this->cObj->getCurrentVal();
01092 return \'<b>\'.$this->tellWhatToDo(strtoupper($tag_content)).\'</b>\';
01093 }
01094 function tellWhatToDo($str) {
01095 return \'<a href="#" onClick="alert(\\\'Open the PHP-file \'.t3lib_extMgm::siteRelPath(\''.$extKey.'\').\''.$pathSuffix.'class.'.$cN.'.php and edit the function main()\nto change how the tag content is processed!\\\')">\'.$str.\'</a>\';
01096 }
01097 ');
01098 break;
01099 default:
01100 $innerMainContent = $this->sPS('
01104 function main($content,$conf) {
01105 return \'Hello World!<HR>
01106 Here is the TypoScript passed to the method:\'.
01107 t3lib_div::view_array($conf);
01108 }
01109 ');
01110 break;
01111 }
01112 $indexContent= $this->wrapBody('
01113 require_once(PATH_tslib.\'class.tslib_pibase.php\');
01114
01115 class '.$cN.' extends tslib_pibase {
01116 var $prefixId = \''.$cN.'\';
01117 var $scriptRelPath = \''.($pathSuffix."class.".$cN.".php").'\';
01118 var $extKey = \''.$extKey.'\';
01119 '.($cache ? 'var $pi_checkCHash = TRUE;
01120 ' : '').'
01121 ',$innerMainContent,'
01122 }
01123 ');
01124 $this->addFileToFileArray($pathSuffix."class.".$cN.".php",$this->PHPclassFile($extKey,$pathSuffix."class.".$cN.".php",$indexContent,"Plugin '".$config["title"]."' for the '".$extKey."' extension."));
01125
01126
01127 if ($config["plus_wiz"] && $config["addType"]=="list_type") {
01128 $this->addLocalConf($this->wizard->ext_locallang,$config,"title","pi",$k);
01129 $this->addLocalConf($this->wizard->ext_locallang,$config,"plus_wiz_description","pi",$k);
01130
01131 $indexContent= $this->sPS('
01132 class '.$cN.'_wizicon {
01133 function proc($wizardItems) {
01134 global $LANG;
01135
01136 $LL = $this->includeLocalLang();
01137
01138 $wizardItems[\'plugins_'.$cN.'\'] = array(
01139 \'icon\'=>t3lib_extMgm::extRelPath(\''.$extKey.'\').\''.$pathSuffix.'ce_wiz.gif\',
01140 \'title\'=>$LANG->getLLL(\'pi'.$k.'_title\',$LL),
01141 \'description\'=>$LANG->getLLL(\'pi'.$k.'_plus_wiz_description\',$LL),
01142 \'params\'=>\'&defVals[tt_content][CType]=list&defVals[tt_content][list_type]='.$extKey.'_pi'.$k.'\'
01143 );
01144
01145 return $wizardItems;
01146 }
01147 function includeLocalLang() {
01148 include(t3lib_extMgm::extPath(\''.$extKey.'\').\'locallang.php\');
01149 return $LOCAL_LANG;
01150 }
01151 }
01152 ');
01153 $this->addFileToFileArray($pathSuffix."class.".$cN."_wizicon.php",$this->PHPclassFile($extKey,$pathSuffix."class.".$cN."_wizicon.php",$indexContent,"Class that adds the wizard icon."));
01154
01155
01156 $this->addFileToFileArray($pathSuffix."ce_wiz.gif",t3lib_div::getUrl(t3lib_extMgm::extPath("kickstarter")."res/wiz.gif"));
01157
01158
01159 $this->addFileToFileArray($pathSuffix."clear.gif",t3lib_div::getUrl(t3lib_extMgm::extPath("kickstarter")."res/clear.gif"));
01160
01161 $this->wizard->ext_tables[]=$this->sPS('
01162 '.$this->WOPcomment('WOP:'.$WOP.'[plus_wiz]:').'
01163 if (TYPO3_MODE=="BE") $TBE_MODULES_EXT["xMOD_db_new_content_el"]["addElClasses"]["'.$cN.'_wizicon"] = t3lib_extMgm::extPath($_EXTKEY).\'pi'.$k.'/class.'.$cN.'_wizicon.php\';
01164 ');
01165 }
01166 }
01167
01168 }
01169
01170
01171
01172 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/kickstarter/sections/class.tx_kickstarter_section_pi.php']) {
01173 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/kickstarter/sections/class.tx_kickstarter_section_pi.php']);
01174 }
01175
01176 ?>