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
00060 unset($MCONF);
00061 require ('mod/web/list/conf.php');
00062 require ('init.php');
00063 require ('template.php');
00064 $LANG->includeLLFile('EXT:lang/locallang_mod_web_list.xml');
00065 require_once (PATH_t3lib.'class.t3lib_page.php');
00066 require_once (PATH_t3lib.'class.t3lib_pagetree.php');
00067 require_once (PATH_t3lib.'class.t3lib_recordlist.php');
00068 require_once (PATH_t3lib.'class.t3lib_clipboard.php');
00069 require_once ('class.db_list.inc');
00070 require_once ('class.db_list_extra.inc');
00071 $BE_USER->modAccess($MCONF,1);
00072
00073 t3lib_BEfunc::lockRecords();
00074
00075
00076
00077
00078
00079
00080
00081
00089 class SC_db_list {
00090
00091
00092 var $id;
00093 var $pointer;
00094 var $imagemode;
00095 var $table;
00096 var $search_field;
00097 var $search_levels;
00098 var $showLimit;
00099 var $returnUrl;
00100
00101 var $clear_cache;
00102 var $cmd;
00103 var $cmd_table;
00104
00105
00106 var $perms_clause;
00107 var $modTSconfig;
00108 var $pageinfo;
00109 var $doc;
00110
00111 var $MCONF=array();
00112 var $MOD_MENU=array();
00113 var $MOD_SETTINGS=array();
00114 var $include_once=array();
00115
00116
00117 var $content;
00118
00119
00125 function init() {
00126 global $BE_USER;
00127
00128
00129 $this->MCONF = $GLOBALS['MCONF'];
00130 $this->perms_clause = $BE_USER->getPagePermsClause(1);
00131
00132
00133 $this->id = t3lib_div::_GP('id');
00134 $this->pointer = t3lib_div::_GP('pointer');
00135 $this->imagemode = t3lib_div::_GP('imagemode');
00136 $this->table = t3lib_div::_GP('table');
00137 $this->search_field = t3lib_div::_GP('search_field');
00138 $this->search_levels = t3lib_div::_GP('search_levels');
00139 $this->showLimit = t3lib_div::_GP('showLimit');
00140 $this->returnUrl = t3lib_div::_GP('returnUrl');
00141
00142 $this->clear_cache = t3lib_div::_GP('clear_cache');
00143 $this->cmd = t3lib_div::_GP('cmd');
00144 $this->cmd_table = t3lib_div::_GP('cmd_table');
00145
00146
00147 $this->menuConfig();
00148
00149
00150 if ($this->clear_cache || $this->cmd=='delete') {
00151 $this->include_once[]=PATH_t3lib.'class.t3lib_tcemain.php';
00152 }
00153 }
00154
00160 function menuConfig() {
00161
00162
00163 $this->MOD_MENU = array(
00164 'bigControlPanel' => '',
00165 'clipBoard' => '',
00166 'localization' => ''
00167 );
00168
00169
00170 $this->modTSconfig = t3lib_BEfunc::getModTSconfig($this->id,'mod.'.$this->MCONF['name']);
00171
00172
00173 $this->MOD_SETTINGS = t3lib_BEfunc::getModuleData($this->MOD_MENU, t3lib_div::_GP('SET'), $this->MCONF['name']);
00174 }
00175
00181 function clearCache() {
00182 if ($this->clear_cache) {
00183 $tce = t3lib_div::makeInstance('t3lib_TCEmain');
00184 $tce->stripslashes_values=0;
00185 $tce->start(Array(),Array());
00186 $tce->clear_cacheCmd($this->id);
00187 }
00188 }
00189
00195 function main() {
00196 global $BE_USER,$LANG,$BACK_PATH,$CLIENT;
00197
00198
00199 $this->doc = t3lib_div::makeInstance('template');
00200 $this->doc->backPath = $BACK_PATH;
00201 $this->doc->docType='xhtml_trans';
00202
00203
00204 $this->pageinfo = t3lib_BEfunc::readPageAccess($this->id,$this->perms_clause);
00205 $access = is_array($this->pageinfo) ? 1 : 0;
00206
00207
00208 $dblist = t3lib_div::makeInstance('localRecordList');
00209 $dblist->backPath = $BACK_PATH;
00210 $dblist->calcPerms = $BE_USER->calcPerms($this->pageinfo);
00211 $dblist->thumbs = $BE_USER->uc['thumbnailsByDefault'];
00212 $dblist->returnUrl=$this->returnUrl;
00213 $dblist->allFields = ($this->MOD_SETTINGS['bigControlPanel'] || $this->table) ? 1 : 0;
00214 $dblist->localizationView = $this->MOD_SETTINGS['localization'];
00215 $dblist->showClipboard = 1;
00216 $dblist->disableSingleTableView = $this->modTSconfig['properties']['disableSingleTableView'];
00217 $dblist->listOnlyInSingleTableMode = $this->modTSconfig['properties']['listOnlyInSingleTableView'];
00218 $dblist->clickTitleMode = $this->modTSconfig['properties']['clickTitleMode'];
00219 $dblist->alternateBgColors=$this->modTSconfig['properties']['alternateBgColors']?1:0;
00220 $dblist->allowedNewTables = t3lib_div::trimExplode(',',$this->modTSconfig['properties']['allowedNewTables'],1);
00221 $dblist->newWizards=$this->modTSconfig['properties']['newWizards']?1:0;
00222
00223
00224
00225
00226 $dblist->clipObj = t3lib_div::makeInstance('t3lib_clipboard');
00227 $dblist->clipObj->initializeClipboard();
00228
00229
00230 $CB = t3lib_div::_GET('CB');
00231 if ($this->cmd=='setCB') {
00232
00233
00234 $CB['el'] = $dblist->clipObj->cleanUpCBC(array_merge(t3lib_div::_POST('CBH'),t3lib_div::_POST('CBC')),$this->cmd_table);
00235 }
00236 if (!$this->MOD_SETTINGS['clipBoard']) $CB['setP']='normal';
00237 $dblist->clipObj->setCmd($CB);
00238 $dblist->clipObj->cleanCurrent();
00239 $dblist->clipObj->endClipboard();
00240
00241
00242
00243 $dblist->dontShowClipControlPanels = $CLIENT['FORMSTYLE'] && !$this->MOD_SETTINGS['bigControlPanel'] && $dblist->clipObj->current=='normal' && !$BE_USER->uc['disableCMlayers'] && !$this->modTSconfig['properties']['showClipControlPanelsDespiteOfCMlayers'];
00244
00245
00246
00247
00248 if ($access) {
00249
00250
00251
00252 if ($this->cmd=='delete') {
00253 $items = $dblist->clipObj->cleanUpCBC(t3lib_div::_POST('CBC'),$this->cmd_table,1);
00254 if (count($items)) {
00255 $cmd=array();
00256 reset($items);
00257 while(list($iK)=each($items)) {
00258 $iKParts = explode('|',$iK);
00259 $cmd[$iKParts[0]][$iKParts[1]]['delete']=1;
00260 }
00261 $tce = t3lib_div::makeInstance('t3lib_TCEmain');
00262 $tce->stripslashes_values=0;
00263 $tce->start(array(),$cmd);
00264 $tce->process_cmdmap();
00265
00266 if (isset($cmd['pages'])) {
00267 t3lib_BEfunc::getSetUpdateSignal('updatePageTree');
00268 }
00269
00270 $tce->printLogErrorMessages(t3lib_div::getIndpEnv('REQUEST_URI'));
00271 }
00272 }
00273
00274
00275 $this->pointer = t3lib_div::intInRange($this->pointer,0,100000);
00276 $dblist->start($this->id,$this->table,$this->pointer,$this->search_field,$this->search_levels,$this->showLimit);
00277 $dblist->setDispFields();
00278
00279
00280 $dblist->writeTop($this->pageinfo);
00281
00282
00283 $dblist->HTMLcode.= $this->doc->getVersionSelector($this->id);
00284
00285
00286 $dblist->generateList($this->id,$this->table);
00287
00288
00289 $dblist->writeBottom();
00290
00291
00292 $this->doc->JScode=$this->doc->wrapScriptTags('
00293 function jumpToUrl(URL) {
00294 document.location = URL;
00295 return false;
00296 }
00297 function jumpExt(URL,anchor) {
00298 var anc = anchor?anchor:"";
00299 document.location = URL+(T3_THIS_LOCATION?"&returnUrl="+T3_THIS_LOCATION:"")+anc;
00300 return false;
00301 }
00302 function jumpSelf(URL) {
00303 document.location = URL+(T3_RETURN_URL?"&returnUrl="+T3_RETURN_URL:"");
00304 return false;
00305 }
00306 '.$this->doc->redirectUrls($dblist->listURL()).'
00307 '.$dblist->CBfunctions().'
00308 function editRecords(table,idList,addParams,CBflag) {
00309 document.location="'.$backPath.'alt_doc.php?returnUrl='.rawurlencode(t3lib_div::getIndpEnv('REQUEST_URI')).
00310 '&edit["+table+"]["+idList+"]=edit"+addParams;
00311 }
00312 function editList(table,idList) {
00313 var list="";
00314
00315
00316 var pointer=0;
00317 var pos = idList.indexOf(",");
00318 while (pos!=-1) {
00319 if (cbValue(table+"|"+idList.substr(pointer,pos-pointer))) {
00320 list+=idList.substr(pointer,pos-pointer)+",";
00321 }
00322 pointer=pos+1;
00323 pos = idList.indexOf(",",pointer);
00324 }
00325 if (cbValue(table+"|"+idList.substr(pointer))) {
00326 list+=idList.substr(pointer)+",";
00327 }
00328
00329 return list ? list : idList;
00330 }
00331
00332 if (top.fsMod) top.fsMod.recentIds["web"] = '.intval($this->id).';
00333 ');
00334
00335
00336 $CMparts=$this->doc->getContextMenuCode();
00337 $this->doc->bodyTagAdditions = $CMparts[1];
00338 $this->doc->JScode.=$CMparts[0];
00339 $this->doc->postCode.= $CMparts[2];
00340 }
00341
00342
00343
00344
00345 $this->content='';
00346 $this->content.=$this->doc->startPage('DB list');
00347 $this->content.= '<form action="'.htmlspecialchars($dblist->listURL()).'" method="post" name="dblistForm">';
00348
00349
00350 if (!strlen($this->id)) {
00351 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'list_module_noId', $GLOBALS['BACK_PATH'],'<br/>|');
00352 } elseif (!$this->id) {
00353 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'list_module_root', $GLOBALS['BACK_PATH'],'<br/>|');
00354 }
00355
00356
00357 $this->content.= $dblist->HTMLcode;
00358 $this->content.= '<input type="hidden" name="cmd_table" /><input type="hidden" name="cmd" /></form>';
00359
00360
00361 if ($this->id) {
00362 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'list_module', $GLOBALS['BACK_PATH'],'<br/>|');
00363 }
00364
00365
00366
00367 if ($dblist->HTMLcode) {
00368
00369
00370 if ($dblist->table) {
00371 $this->content.=$dblist->fieldSelectBox($dblist->table);
00372 }
00373
00374
00375 $this->content.='
00376
00377 <!--
00378 Listing options for clipboard and thumbnails
00379 -->
00380 <div id="typo3-listOptions">
00381 <form action="" method="post">';
00382
00383 $this->content.=t3lib_BEfunc::getFuncCheck($this->id,'SET[bigControlPanel]',$this->MOD_SETTINGS['bigControlPanel'],'db_list.php','').' '.$LANG->getLL('largeControl',1).'<br />';
00384 if ($dblist->showClipboard) {
00385 $this->content.=t3lib_BEfunc::getFuncCheck($this->id,'SET[clipBoard]',$this->MOD_SETTINGS['clipBoard'],'db_list.php','').' '.$LANG->getLL('showClipBoard',1).'<br />';
00386 }
00387 $this->content.=t3lib_BEfunc::getFuncCheck($this->id,'SET[localization]',$this->MOD_SETTINGS['localization'],'db_list.php','').' '.$LANG->getLL('localization',1).'<br />';
00388 $this->content.='
00389 </form>
00390 </div>';
00391 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'list_options', $GLOBALS['BACK_PATH']);
00392
00393
00394 if ($this->MOD_SETTINGS['clipBoard'] && $dblist->showClipboard) {
00395 $this->content.= $dblist->clipObj->printClipboard();
00396 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'list_clipboard', $GLOBALS['BACK_PATH']);
00397 }
00398
00399
00400 if (!$this->modTSconfig['properties']['noCreateRecordsLink']) {
00401 $this->content.='
00402
00403 <!--
00404 Link for creating a new record:
00405 -->
00406 <div id="typo3-newRecordLink">
00407 <a href="'.htmlspecialchars('db_new.php?id='.$this->id.'&returnUrl='.rawurlencode(t3lib_div::getIndpEnv('REQUEST_URI'))).'">'.
00408 '<img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/new_el.gif','width="11" height="12"').' alt="" />'.
00409 $LANG->getLL('newRecordGeneral',1).
00410 '</a>
00411 </div>';
00412 }
00413
00414
00415 $this->content.=$dblist->getSearchBox();
00416
00417
00418 $this->content.=$dblist->showSysNotesForPage();
00419
00420
00421 if ($BE_USER->mayMakeShortcut()) {
00422 $this->content.='<br/>'.$this->doc->makeShortcutIcon('id,imagemode,pointer,table,search_field,search_levels,showLimit,sortField,sortRev',implode(',',array_keys($this->MOD_MENU)),$this->MCONF['name']);
00423 }
00424 }
00425
00426
00427 $this->content.= $this->doc->endPage();
00428 }
00429
00435 function printContent() {
00436 echo $this->content;
00437 }
00438 }
00439
00440
00441 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/db_list.php']) {
00442 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/db_list.php']);
00443 }
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457 $SOBE = t3lib_div::makeInstance('SC_db_list');
00458 $SOBE->init();
00459
00460
00461 foreach($SOBE->include_once as $INC_FILE) include_once($INC_FILE);
00462
00463 $SOBE->clearCache();
00464 $SOBE->main();
00465 $SOBE->printContent();
00466 ?>