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 ($BACK_PATH.'class.db_list.inc');
00070 require_once ($BACK_PATH.'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->hideTables = $this->modTSconfig['properties']['hideTables'];
00219 $dblist->clickTitleMode = $this->modTSconfig['properties']['clickTitleMode'];
00220 $dblist->alternateBgColors=$this->modTSconfig['properties']['alternateBgColors']?1:0;
00221 $dblist->allowedNewTables = t3lib_div::trimExplode(',',$this->modTSconfig['properties']['allowedNewTables'],1);
00222 $dblist->newWizards=$this->modTSconfig['properties']['newWizards']?1:0;
00223
00224
00225
00226
00227 $dblist->clipObj = t3lib_div::makeInstance('t3lib_clipboard');
00228 $dblist->clipObj->initializeClipboard();
00229
00230
00231 $CB = t3lib_div::_GET('CB');
00232 if ($this->cmd=='setCB') {
00233
00234
00235 $CB['el'] = $dblist->clipObj->cleanUpCBC(array_merge((array)t3lib_div::_POST('CBH'),(array)t3lib_div::_POST('CBC')),$this->cmd_table);
00236 }
00237 if (!$this->MOD_SETTINGS['clipBoard']) $CB['setP']='normal';
00238 $dblist->clipObj->setCmd($CB);
00239 $dblist->clipObj->cleanCurrent();
00240 $dblist->clipObj->endClipboard();
00241
00242
00243
00244 $dblist->dontShowClipControlPanels = $CLIENT['FORMSTYLE'] && !$this->MOD_SETTINGS['bigControlPanel'] && $dblist->clipObj->current=='normal' && !$BE_USER->uc['disableCMlayers'] && !$this->modTSconfig['properties']['showClipControlPanelsDespiteOfCMlayers'];
00245
00246
00247
00248
00249 if ($access) {
00250
00251
00252
00253 if ($this->cmd=='delete') {
00254 $items = $dblist->clipObj->cleanUpCBC(t3lib_div::_POST('CBC'),$this->cmd_table,1);
00255 if (count($items)) {
00256 $cmd=array();
00257 reset($items);
00258 while(list($iK)=each($items)) {
00259 $iKParts = explode('|',$iK);
00260 $cmd[$iKParts[0]][$iKParts[1]]['delete']=1;
00261 }
00262 $tce = t3lib_div::makeInstance('t3lib_TCEmain');
00263 $tce->stripslashes_values=0;
00264 $tce->start(array(),$cmd);
00265 $tce->process_cmdmap();
00266
00267 if (isset($cmd['pages'])) {
00268 t3lib_BEfunc::getSetUpdateSignal('updatePageTree');
00269 }
00270
00271 $tce->printLogErrorMessages(t3lib_div::getIndpEnv('REQUEST_URI'));
00272 }
00273 }
00274
00275
00276 $this->pointer = t3lib_div::intInRange($this->pointer,0,100000);
00277 $dblist->start($this->id,$this->table,$this->pointer,$this->search_field,$this->search_levels,$this->showLimit);
00278 $dblist->setDispFields();
00279
00280
00281 $dblist->writeTop($this->pageinfo);
00282
00283
00284 $dblist->HTMLcode.= $this->doc->getVersionSelector($this->id);
00285
00286
00287 $dblist->generateList();
00288
00289
00290 $dblist->writeBottom();
00291
00292
00293 $this->doc->JScode=$this->doc->wrapScriptTags('
00294 function jumpToUrl(URL) {
00295 window.location.href = URL;
00296 return false;
00297 }
00298 function jumpExt(URL,anchor) {
00299 var anc = anchor?anchor:"";
00300 window.location.href = URL+(T3_THIS_LOCATION?"&returnUrl="+T3_THIS_LOCATION:"")+anc;
00301 return false;
00302 }
00303 function jumpSelf(URL) {
00304 window.location.href = URL+(T3_RETURN_URL?"&returnUrl="+T3_RETURN_URL:"");
00305 return false;
00306 }
00307
00308 function setHighlight(id) {
00309 top.fsMod.recentIds["web"]=id;
00310 top.fsMod.navFrameHighlightedID["web"]="pages"+id+"_"+top.fsMod.currentBank;
00311
00312 if (top.content && top.content.nav_frame && top.content.nav_frame.refresh_nav) {
00313 top.content.nav_frame.refresh_nav();
00314 }
00315 }
00316 '.$this->doc->redirectUrls($dblist->listURL()).'
00317 '.$dblist->CBfunctions().'
00318 function editRecords(table,idList,addParams,CBflag) {
00319 window.location.href="'.$BACK_PATH.'alt_doc.php?returnUrl='.rawurlencode(t3lib_div::getIndpEnv('REQUEST_URI')).
00320 '&edit["+table+"]["+idList+"]=edit"+addParams;
00321 }
00322 function editList(table,idList) {
00323 var list="";
00324
00325
00326 var pointer=0;
00327 var pos = idList.indexOf(",");
00328 while (pos!=-1) {
00329 if (cbValue(table+"|"+idList.substr(pointer,pos-pointer))) {
00330 list+=idList.substr(pointer,pos-pointer)+",";
00331 }
00332 pointer=pos+1;
00333 pos = idList.indexOf(",",pointer);
00334 }
00335 if (cbValue(table+"|"+idList.substr(pointer))) {
00336 list+=idList.substr(pointer)+",";
00337 }
00338
00339 return list ? list : idList;
00340 }
00341
00342 if (top.fsMod) top.fsMod.recentIds["web"] = '.intval($this->id).';
00343 ');
00344
00345
00346 $CMparts=$this->doc->getContextMenuCode();
00347 $this->doc->bodyTagAdditions = $CMparts[1];
00348 $this->doc->JScode.=$CMparts[0];
00349 $this->doc->postCode.= $CMparts[2];
00350 }
00351
00352
00353
00354
00355 $this->content='';
00356 $this->content.=$this->doc->startPage('DB list');
00357 $this->content.= '<form action="'.htmlspecialchars($dblist->listURL()).'" method="post" name="dblistForm">';
00358
00359
00360 if (!strlen($this->id)) {
00361 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'list_module_noId', $GLOBALS['BACK_PATH'],'<br/>|');
00362 } elseif (!$this->id) {
00363 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'list_module_root', $GLOBALS['BACK_PATH'],'<br/>|');
00364 }
00365
00366
00367 $this->content.= $dblist->HTMLcode;
00368 $this->content.= '<input type="hidden" name="cmd_table" /><input type="hidden" name="cmd" /></form>';
00369
00370
00371 if ($this->id) {
00372 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'list_module', $GLOBALS['BACK_PATH'],'<br/>|');
00373 }
00374
00375
00376
00377 if ($dblist->HTMLcode) {
00378
00379
00380 if ($dblist->table) {
00381 $this->content.=$dblist->fieldSelectBox($dblist->table);
00382 }
00383
00384
00385 $this->content.='
00386
00387 <!--
00388 Listing options for clipboard and thumbnails
00389 -->
00390 <div id="typo3-listOptions">
00391 <form action="" method="post">';
00392
00393 $this->content.=t3lib_BEfunc::getFuncCheck($this->id,'SET[bigControlPanel]',$this->MOD_SETTINGS['bigControlPanel'],'db_list.php',($this->table?'&table='.$this->table:''),'id="checkLargeControl"').' <label for="checkLargeControl">'.$LANG->getLL('largeControl',1).'</label><br />';
00394 if ($dblist->showClipboard) {
00395 $this->content.=t3lib_BEfunc::getFuncCheck($this->id,'SET[clipBoard]',$this->MOD_SETTINGS['clipBoard'],'db_list.php',($this->table?'&table='.$this->table:''),'id="checkShowClipBoard"').' <label for="checkShowClipBoard">'.$LANG->getLL('showClipBoard',1).'</label><br />';
00396 }
00397 $this->content.=t3lib_BEfunc::getFuncCheck($this->id,'SET[localization]',$this->MOD_SETTINGS['localization'],'db_list.php',($this->table?'&table='.$this->table:''),'id="checkLocalization"').' <label for="checkLocalization">'.$LANG->getLL('localization',1).'</label><br />';
00398 $this->content.='
00399 </form>
00400 </div>';
00401 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'list_options', $GLOBALS['BACK_PATH']);
00402
00403
00404 if ($this->MOD_SETTINGS['clipBoard'] && $dblist->showClipboard) {
00405 $this->content.= $dblist->clipObj->printClipboard();
00406 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'list_clipboard', $GLOBALS['BACK_PATH']);
00407 }
00408
00409
00410 if (!$this->modTSconfig['properties']['noCreateRecordsLink']) {
00411 $this->content.='
00412
00413 <!--
00414 Link for creating a new record:
00415 -->
00416 <div id="typo3-newRecordLink">
00417 <a href="'.htmlspecialchars($this->doc->backPath . 'db_new.php?id='.$this->id.'&returnUrl='.rawurlencode(t3lib_div::getIndpEnv('REQUEST_URI'))).'">'.
00418 '<img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/new_el.gif','width="11" height="12"').' alt="" />'.
00419 $LANG->getLL('newRecordGeneral',1).
00420 '</a>
00421 </div>';
00422 }
00423
00424
00425 $this->content.=$dblist->getSearchBox();
00426
00427
00428 $this->content.=$dblist->showSysNotesForPage();
00429
00430
00431 if ($BE_USER->mayMakeShortcut()) {
00432 $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']);
00433 }
00434 }
00435
00436
00437 $this->content.= $this->doc->endPage();
00438 }
00439
00445 function printContent() {
00446 echo $this->content;
00447 }
00448 }
00449
00450
00451 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/db_list.php']) {
00452 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/db_list.php']);
00453 }
00454
00455
00456
00457
00458
00459
00460
00461
00462
00463
00464
00465
00466
00467 $SOBE = t3lib_div::makeInstance('SC_db_list');
00468 $SOBE->init();
00469
00470
00471 foreach($SOBE->include_once as $INC_FILE) include_once($INC_FILE);
00472
00473 $SOBE->clearCache();
00474 $SOBE->main();
00475 $SOBE->printContent();
00476 ?>