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
00050 $BACK_PATH = '';
00051 require ('init.php');
00052 require ('template.php');
00053 $LANG->includeLLFile('EXT:lang/locallang_wizards.xml');
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00075 class SC_wizard_add {
00076
00077
00078 var $content;
00079 var $include_once=array();
00080
00081 var $processDataFlag=0;
00082
00083
00084 var $pid;
00085 var $table;
00086 var $id;
00087
00088
00089 var $P;
00090 var $returnEditConf;
00091
00092
00093
00094
00095
00096
00097
00098
00104 function init() {
00105
00106
00107 $this->P = t3lib_div::_GP('P');
00108 $this->returnEditConf = t3lib_div::_GP('returnEditConf');
00109
00110
00111 $origRow = t3lib_BEfunc::getRecord($this->P['table'],$this->P['uid']);
00112
00113
00114 $this->table = $this->P['params']['table'];
00115
00116
00117 $TSconfig = t3lib_BEfunc::getTCEFORM_TSconfig($this->table,is_array($origRow)?$origRow:array('pid'=>$this->P['pid']));
00118
00119
00120 if (substr($this->P['params']['pid'],0,3)=='###' && substr($this->P['params']['pid'],-3)=='###') {
00121 $this->pid = intval($TSconfig['_'.substr($this->P['params']['pid'],3,-3)]);
00122 } else $this->pid = intval($this->P['params']['pid']);
00123
00124
00125 if (!strcmp($this->pid,'')) {
00126 header('Location: '.t3lib_div::locationHeaderUrl($this->P['returnUrl']));
00127 exit;
00128 }
00129
00130
00131 if ($this->returnEditConf) {
00132 $eC = unserialize($this->returnEditConf);
00133 if (is_array($eC[$this->table]) && t3lib_div::testInt($this->P['uid'])) {
00134
00135
00136 reset($eC[$this->table]);
00137 $this->id = intval(key($eC[$this->table]));
00138 $cmd = current($eC[$this->table]);
00139
00140
00141 if ($this->P['params']['setValue'] && $cmd=='edit' && $this->id && $this->P['table'] && $this->P['field'] && $this->P['uid']) {
00142 $this->include_once[]=PATH_t3lib.'class.t3lib_loaddbgroup.php';
00143 $this->include_once[]=PATH_t3lib.'class.t3lib_transferdata.php';
00144 $this->include_once[]=PATH_t3lib.'class.t3lib_tcemain.php';
00145 $this->processDataFlag=1;
00146 }
00147 }
00148 }
00149 }
00150
00157 function main() {
00158
00159 if ($this->returnEditConf) {
00160 if ($this->processDataFlag) {
00161
00162
00163 $trData = t3lib_div::makeInstance('t3lib_transferData');
00164 $trData->fetchRecord($this->P['table'],$this->P['uid'],'');
00165 reset($trData->regTableItems_data);
00166 $current = current($trData->regTableItems_data);
00167
00168
00169 if (is_array($current)) {
00170 $tce = t3lib_div::makeInstance('t3lib_TCEmain');
00171 $tce->stripslashes_values=0;
00172 $data=array();
00173 $addEl = $this->table.'_'.$this->id;
00174 switch((string)$this->P['params']['setValue']) {
00175 case 'set':
00176 $data[$this->P['table']][$this->P['uid']][$this->P['field']] = $addEl;
00177 break;
00178 case 'prepend':
00179 $data[$this->P['table']][$this->P['uid']][$this->P['field']] = $current[$this->P['field']].','.$addEl;
00180 break;
00181 case 'append':
00182 $data[$this->P['table']][$this->P['uid']][$this->P['field']] = $addEl.','.$current[$this->P['field']];
00183 break;
00184 }
00185
00186
00187 $data[$this->P['table']][$this->P['uid']][$this->P['field']] = implode(',',t3lib_div::trimExplode(',',$data[$this->P['table']][$this->P['uid']][$this->P['field']],1));
00188
00189
00190 $tce->start($data,array());
00191 $tce->process_datamap();
00192 }
00193 }
00194
00195 header('Location: '.t3lib_div::locationHeaderUrl($this->P['returnUrl']));
00196 } else {
00197
00198 header('Location: '.t3lib_div::locationHeaderUrl('alt_doc.php?returnUrl='.rawurlencode(t3lib_div::getIndpEnv('REQUEST_URI')).'&returnEditConf=1&edit['.$this->P['params']['table'].']['.$this->pid.']=new'));
00199 }
00200 }
00201 }
00202
00203
00204 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/wizard_add.php']) {
00205 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/wizard_add.php']);
00206 }
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220 $SOBE = t3lib_div::makeInstance('SC_wizard_add');
00221 $SOBE->init();
00222
00223
00224 foreach($SOBE->include_once as $INC_FILE) include_once($INC_FILE);
00225
00226 $SOBE->main();
00227 $SOBE->printContent();
00228 ?>