<?php include_once '../doc-typo3-funcs.php'; $doxygen_vars = array( "title" => "TYPO3 4.0.1: typo3_src-4.0.1/typo3/class.db_list.inc Source File", "datetime" => "Sat Dec 2 19:22:20 2006", "date" => "2 Dec 2006", "doxygenversion" => "1.4.6", "projectname" => "TYPO3 4.0.1", "projectnumber" => "4.0.1" ); get_header($doxygen_vars); ?> <!-- Generated by Doxygen 1.4.6 --> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="classes.html"><span>Classes</span></a></li> <li id="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> <li> <form action="search.php" method="get"> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td><label> <u>S</u>earch for </label></td> <td><input type="text" name="query" value="" size="20" accesskey="s"/></td> </tr> </table> </form> </li> </ul></div> <div class="nav"> <a class="el" href="dir_c8daf1ad746050abf985cc546c89e248.html">typo3_src-4.0.1</a> » <a class="el" href="dir_18071ae4545d8b3e0364d30c0659c74a.html">typo3</a></div> <h1>class.db_list.inc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <?php <a name="l00002"></a>00002 <span class="comment">/***************************************************************</span> <a name="l00003"></a>00003 <span class="comment">* Copyright notice</span> <a name="l00004"></a>00004 <span class="comment">*</span> <a name="l00005"></a>00005 <span class="comment">* (c) 1999-2005 Kasper Skaarhoj (kasperYYYY@typo3.com)</span> <a name="l00006"></a>00006 <span class="comment">* All rights reserved</span> <a name="l00007"></a>00007 <span class="comment">*</span> <a name="l00008"></a>00008 <span class="comment">* This script is part of the TYPO3 project. The TYPO3 project is</span> <a name="l00009"></a>00009 <span class="comment">* free software; you can redistribute it and/or modify</span> <a name="l00010"></a>00010 <span class="comment">* it under the terms of the GNU General Public License as published by</span> <a name="l00011"></a>00011 <span class="comment">* the Free Software Foundation; either version 2 of the License, or</span> <a name="l00012"></a>00012 <span class="comment">* (at your option) any later version.</span> <a name="l00013"></a>00013 <span class="comment">*</span> <a name="l00014"></a>00014 <span class="comment">* The GNU General Public License can be found at</span> <a name="l00015"></a>00015 <span class="comment">* http://www.gnu.org/copyleft/gpl.html.</span> <a name="l00016"></a>00016 <span class="comment">* A copy is found in the textfile GPL.txt and important notices to the license</span> <a name="l00017"></a>00017 <span class="comment">* from the author is found in LICENSE.txt distributed with these scripts.</span> <a name="l00018"></a>00018 <span class="comment">*</span> <a name="l00019"></a>00019 <span class="comment">*</span> <a name="l00020"></a>00020 <span class="comment">* This script is distributed in the hope that it will be useful,</span> <a name="l00021"></a>00021 <span class="comment">* but WITHOUT ANY WARRANTY; without even the implied warranty of</span> <a name="l00022"></a>00022 <span class="comment">* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span> <a name="l00023"></a>00023 <span class="comment">* GNU General Public License for more details.</span> <a name="l00024"></a>00024 <span class="comment">*</span> <a name="l00025"></a>00025 <span class="comment">* This copyright notice MUST APPEAR in all copies of the script!</span> <a name="l00026"></a>00026 <span class="comment">***************************************************************/</span> <a name="l00086"></a><a class="code" href="classrecordList.html">00086</a> <span class="keyword">class </span><a class="code" href="classrecordList.html">recordList</a> <span class="keyword">extends</span> <a class="code" href="classt3lib__recordList.html">t3lib_recordList</a> { <a name="l00087"></a>00087 <a name="l00088"></a>00088 <span class="comment">// External, static:</span> <a name="l00089"></a><a class="code" href="classrecordList.html#3bfe1c7c71731411c51cd87a1db36025">00089</a> var <a class="code" href="classrecordList.html#3bfe1c7c71731411c51cd87a1db36025">$tableList</a>=''; <span class="comment">// Specify a list of tables which are the only ones allowed to be displayed.</span> <a name="l00090"></a><a class="code" href="classrecordList.html#80db54861a8e8906be2863aeca74bb61">00090</a> var <a class="code" href="classrecordList.html#80db54861a8e8906be2863aeca74bb61">$returnUrl</a>=''; <span class="comment">// Return URL</span> <a name="l00091"></a><a class="code" href="classrecordList.html#76086b5dff71aa457c9ee1288b1e93c2">00091</a> var <a class="code" href="classrecordList.html#76086b5dff71aa457c9ee1288b1e93c2">$thumbs</a> = 0; <span class="comment">// Boolean. Thumbnails on records containing files (pictures)</span> <a name="l00092"></a><a class="code" href="classrecordList.html#5162625c1d46b8615678287f76323c4e">00092</a> var <a class="code" href="classrecordList.html#5162625c1d46b8615678287f76323c4e">$itemsLimitPerTable</a> = 20; <span class="comment">// default Max items shown per table in "multi-table mode", may be overridden by tables.php</span> <a name="l00093"></a><a class="code" href="classrecordList.html#d82474abf854e418ff8ee3d5c528e28c">00093</a> var <a class="code" href="classrecordList.html#d82474abf854e418ff8ee3d5c528e28c">$itemsLimitSingleTable</a> = 100; <span class="comment">// default Max items shown per table in "single-table mode", may be overridden by tables.php</span> <a name="l00094"></a><a class="code" href="classrecordList.html#bedbc32fa55311a469993eb27bbd9d17">00094</a> var <a class="code" href="classrecordList.html#bedbc32fa55311a469993eb27bbd9d17">$widthGif</a> = '<img src=<span class="stringliteral">"clear.gif"</span> width=<span class="stringliteral">"1"</span> height=<span class="stringliteral">"4"</span> hspace=<span class="stringliteral">"160"</span> alt=<span class="stringliteral">""</span> />'; <a name="l00095"></a><a class="code" href="classrecordList.html#41ab7bf80b477291e1b2f1443ce1d5f0">00095</a> var <a class="code" href="classrecordList.html#41ab7bf80b477291e1b2f1443ce1d5f0">$script</a> = 'db_list.php'; <span class="comment">// Current script name</span> <a name="l00096"></a><a class="code" href="classrecordList.html#fd6c806fb28996f997903e43c587afc2">00096</a> var <a class="code" href="classrecordList.html#fd6c806fb28996f997903e43c587afc2">$allFields</a>=0; <span class="comment">// Indicates if all available fields for a user should be selected or not.</span> <a name="l00097"></a><a class="code" href="classrecordList.html#54613bb34955a1b1d84ffe74344bf5d4">00097</a> var <a class="code" href="classrecordList.html#54613bb34955a1b1d84ffe74344bf5d4">$localizationView</a>=FALSE; <span class="comment">// Whether to show localization view or not.</span> <a name="l00098"></a>00098 <a name="l00099"></a>00099 <span class="comment">// Internal, static: GPvar:</span> <a name="l00100"></a><a class="code" href="classrecordList.html#979f227406fca46089f9c2b56de248cb">00100</a> var <a class="code" href="classrecordList.html#979f227406fca46089f9c2b56de248cb">$csvOutput</a>=FALSE; <span class="comment">// If set, csvList is outputted.</span> <a name="l00101"></a><a class="code" href="classrecordList.html#558a5cf9c360f429946797ae5c93015e">00101</a> var <a class="code" href="classrecordList.html#558a5cf9c360f429946797ae5c93015e">$sortField</a>; <span class="comment">// Field, to sort list by</span> <a name="l00102"></a><a class="code" href="classrecordList.html#e4e7a7b6ad90ad6a204450029dc1745c">00102</a> var <a class="code" href="classrecordList.html#e4e7a7b6ad90ad6a204450029dc1745c">$sortRev</a>; <span class="comment">// Field, indicating to sort in reverse order.</span> <a name="l00103"></a><a class="code" href="classrecordList.html#74bc36d0dddca8296355e2523a66cf7c">00103</a> var <a class="code" href="classrecordList.html#74bc36d0dddca8296355e2523a66cf7c">$displayFields</a>; <span class="comment">// Array, containing which fields to display in extended mode</span> <a name="l00104"></a><a class="code" href="classrecordList.html#2406f8ed1cea5315faa3e1c4c2c44444">00104</a> var <a class="code" href="classrecordList.html#2406f8ed1cea5315faa3e1c4c2c44444">$duplicateField</a>; <span class="comment">// String, can contain the field name from a table which must have duplicate values marked.</span> <a name="l00105"></a>00105 <a name="l00106"></a>00106 <span class="comment">// Internal, static:</span> <a name="l00107"></a><a class="code" href="classrecordList.html#08b423df7325443fb315a15ba7758773">00107</a> var <a class="code" href="classrecordList.html#08b423df7325443fb315a15ba7758773">$id</a>; <span class="comment">// Page id</span> <a name="l00108"></a><a class="code" href="classrecordList.html#9507fa5e4d601dd81cf0c78c16b9e623">00108</a> var <a class="code" href="classrecordList.html#9507fa5e4d601dd81cf0c78c16b9e623">$table</a>=''; <span class="comment">// Tablename if single-table mode</span> <a name="l00109"></a><a class="code" href="classrecordList.html#5b4eb6f9ca500bb2e2a18a323dbbc9bd">00109</a> var <a class="code" href="classrecordList.html#5b4eb6f9ca500bb2e2a18a323dbbc9bd">$listOnlyInSingleTableMode</a>=FALSE; <span class="comment">// If true, records are listed only if a specific table is selected.</span> <a name="l00110"></a><a class="code" href="classrecordList.html#59ef8e4d32dc88c725a86751f11d8718">00110</a> var <a class="code" href="classrecordList.html#59ef8e4d32dc88c725a86751f11d8718">$firstElementNumber</a>=0; <span class="comment">// Pointer for browsing list</span> <a name="l00111"></a><a class="code" href="classrecordList.html#59702968d873b01314566cb01ce9ef81">00111</a> var <a class="code" href="classrecordList.html#59702968d873b01314566cb01ce9ef81">$searchString</a>=''; <span class="comment">// Search string</span> <a name="l00112"></a><a class="code" href="classrecordList.html#17c8c541c9cb95b578734ffc42da5603">00112</a> var <a class="code" href="classrecordList.html#17c8c541c9cb95b578734ffc42da5603">$searchLevels</a>=''; <span class="comment">// Levels to search down.</span> <a name="l00113"></a><a class="code" href="classrecordList.html#93f9d2c702e4ae0cf74fe8c03311ac23">00113</a> var <a class="code" href="classrecordList.html#93f9d2c702e4ae0cf74fe8c03311ac23">$showLimit</a>=0; <span class="comment">// Number of records to show</span> <a name="l00114"></a><a class="code" href="classrecordList.html#cd31545176e6c6bc616e4c3c49e3e90d">00114</a> var <a class="code" href="classrecordList.html#cd31545176e6c6bc616e4c3c49e3e90d">$pidSelect</a>=''; <span class="comment">// List of ids from which to select/search etc. (when search-levels are set high). See start()</span> <a name="l00115"></a><a class="code" href="classrecordList.html#4df22c5a7ab0cd0d1c69690dcec9d863">00115</a> var <a class="code" href="classrecordList.html#4df22c5a7ab0cd0d1c69690dcec9d863">$perms_clause</a>=''; <span class="comment">// Page select permissions</span> <a name="l00116"></a><a class="code" href="classrecordList.html#e6207b8925dec74294494fb9c9b16bf2">00116</a> var <a class="code" href="classrecordList.html#e6207b8925dec74294494fb9c9b16bf2">$calcPerms</a>=0; <span class="comment">// Some permissions...</span> <a name="l00117"></a><a class="code" href="classrecordList.html#df6bf13d0c78effc94298511595befbb">00117</a> var <a class="code" href="classrecordList.html#df6bf13d0c78effc94298511595befbb">$clickTitleMode</a> = ''; <span class="comment">// Mode for what happens when a user clicks the title of a record.</span> <a name="l00118"></a><a class="code" href="classrecordList.html#4fb3d3e2f06b699e7a2fe74a6ecb1bd9">00118</a> var <a class="code" href="classrecordList.html#4fb3d3e2f06b699e7a2fe74a6ecb1bd9">$modSharedTSconfig</a> = array(); <span class="comment">// Shared module configuration, used by localization features</span> <a name="l00119"></a><a class="code" href="classrecordList.html#8cafea1982fe7f1ccb1332b6c8051d54">00119</a> var <a class="code" href="classrecordList.html#8cafea1982fe7f1ccb1332b6c8051d54">$pageRecord</a> = array(); <span class="comment">// Loaded with page record with version overlay if any.</span> <a name="l00120"></a><a class="code" href="classrecordList.html#b780a10ce8a8cb2b3c0ef462f85c9e86">00120</a> var <a class="code" href="classrecordList.html#b780a10ce8a8cb2b3c0ef462f85c9e86">$hideTables</a> = ''; <span class="comment">// Tables which should not get listed</span> <a name="l00121"></a>00121 <a name="l00122"></a>00122 <span class="comment">// Internal, dynamic:</span> <a name="l00123"></a><a class="code" href="classrecordList.html#1b69c03c7724a5f1d29d915dcee8c91f">00123</a> var <a class="code" href="classrecordList.html#1b69c03c7724a5f1d29d915dcee8c91f">$JScode</a> = ''; <span class="comment">// JavaScript code accumulation</span> <a name="l00124"></a><a class="code" href="classrecordList.html#1feee45538380ddd052746ea31dc07af">00124</a> var <a class="code" href="classrecordList.html#1feee45538380ddd052746ea31dc07af">$HTMLcode</a> = ''; <span class="comment">// HTML output</span> <a name="l00125"></a><a class="code" href="classrecordList.html#aeec5139922f9970402a0943871ad4b6">00125</a> var <a class="code" href="classrecordList.html#aeec5139922f9970402a0943871ad4b6">$iLimit</a>=0; <span class="comment">// "LIMIT " in SQL...</span> <a name="l00126"></a><a class="code" href="classrecordList.html#ad903506e3ba6758b5610367629b9ae0">00126</a> var <a class="code" href="classrecordList.html#ad903506e3ba6758b5610367629b9ae0">$eCounter</a>=0; <span class="comment">// Counting the elements no matter what...</span> <a name="l00127"></a><a class="code" href="classrecordList.html#18d1a35382aadf749c1adafa1fd0acca">00127</a> var <a class="code" href="classrecordList.html#18d1a35382aadf749c1adafa1fd0acca">$totalItems</a>=''; <span class="comment">// Set to the total number of items for a table when selecting.</span> <a name="l00128"></a><a class="code" href="classrecordList.html#b76a19c056959b157a29062cce304460">00128</a> var <a class="code" href="classrecordList.html#b76a19c056959b157a29062cce304460">$recPath_cache</a>=array(); <span class="comment">// Cache for record path</span> <a name="l00129"></a><a class="code" href="classrecordList.html#5bf93760f46bf1f3067ac22a9075239c">00129</a> var <a class="code" href="classrecordList.html#5bf93760f46bf1f3067ac22a9075239c">$setFields</a>=array(); <span class="comment">// Fields to display for the current table</span> <a name="l00130"></a><a class="code" href="classrecordList.html#cfa063b4fec3b1998c0b37354c429bc3">00130</a> var <a class="code" href="classrecordList.html#cfa063b4fec3b1998c0b37354c429bc3">$currentTable</a> = array(); <span class="comment">// Used for tracking next/prev uids</span> <a name="l00131"></a><a class="code" href="classrecordList.html#5a9aaab7aa766eabfe44a3c4f5b041f5">00131</a> var <a class="code" href="classrecordList.html#5a9aaab7aa766eabfe44a3c4f5b041f5">$duplicateStack</a>=array(); <span class="comment">// Used for tracking duplicate values of fields</span> <a name="l00132"></a>00132 <a name="l00133"></a>00133 <a name="l00134"></a>00134 <a name="l00135"></a>00135 <a name="l00136"></a>00136 <a name="l00148"></a><a class="code" href="classrecordList.html#2dc6a978e05f93784e895870a90c5213">00148</a> function <a class="code" href="classrecordList.html#2dc6a978e05f93784e895870a90c5213">start</a>(<a class="code" href="classrecordList.html#08b423df7325443fb315a15ba7758773">$id</a>,<a class="code" href="classrecordList.html#9507fa5e4d601dd81cf0c78c16b9e623">$table</a>,$pointer,$search=<span class="stringliteral">""</span>,$levels=<span class="stringliteral">""</span>,<a class="code" href="classrecordList.html#93f9d2c702e4ae0cf74fe8c03311ac23">$showLimit</a>=0) { <a name="l00149"></a>00149 global $TCA; <a name="l00150"></a>00150 <a name="l00151"></a>00151 <span class="comment">// Setting internal variables:</span> <a name="l00152"></a>00152 $this-><span class="keywordtype">id</span>=intval(<a class="code" href="classrecordList.html#08b423df7325443fb315a15ba7758773">$id</a>); <span class="comment">// sets the parent id</span> <a name="l00153"></a>00153 <span class="keywordflow">if</span> ($TCA[<a class="code" href="classrecordList.html#9507fa5e4d601dd81cf0c78c16b9e623">$table</a>]) $this->table=$table; <span class="comment">// Setting single table mode, if table exists:</span> <a name="l00154"></a>00154 $this->firstElementNumber=$pointer; <a name="l00155"></a>00155 $this->searchString=trim($search); <a name="l00156"></a>00156 $this->searchLevels=trim($levels); <a name="l00157"></a>00157 $this->showLimit=<a class="code" href="classt3lib__div.html#79f6a47a7658e28e3f65666f8ebc19f8">t3lib_div::intInRange</a>(<a class="code" href="classrecordList.html#93f9d2c702e4ae0cf74fe8c03311ac23">$showLimit</a>,0,10000); <a name="l00158"></a>00158 <a name="l00159"></a>00159 <span class="comment">// Setting GPvars:</span> <a name="l00160"></a>00160 $this->csvOutput = <a class="code" href="classt3lib__div.html#016d2190758279b2dbb953826c690118">t3lib_div::_GP</a>('csv') ? TRUE : FALSE; <a name="l00161"></a>00161 $this->sortField = <a class="code" href="classt3lib__div.html#016d2190758279b2dbb953826c690118">t3lib_div::_GP</a>('sortField'); <a name="l00162"></a>00162 $this->sortRev = <a class="code" href="classt3lib__div.html#016d2190758279b2dbb953826c690118">t3lib_div::_GP</a>('sortRev'); <a name="l00163"></a>00163 $this->displayFields = <a class="code" href="classt3lib__div.html#016d2190758279b2dbb953826c690118">t3lib_div::_GP</a>('displayFields'); <a name="l00164"></a>00164 $this->duplicateField = <a class="code" href="classt3lib__div.html#016d2190758279b2dbb953826c690118">t3lib_div::_GP</a>('duplicateField'); <a name="l00165"></a>00165 <a name="l00166"></a>00166 <span class="keywordflow">if</span> (<a class="code" href="classt3lib__div.html#016d2190758279b2dbb953826c690118">t3lib_div::_GP</a>('justLocalized')) { <a name="l00167"></a>00167 $this-><a class="code" href="classrecordList.html#1d2092290b07d25763fbc3bbfee056a4">localizationRedirect</a>(<a class="code" href="classt3lib__div.html#016d2190758279b2dbb953826c690118">t3lib_div::_GP</a>('justLocalized')); <a name="l00168"></a>00168 } <a name="l00169"></a>00169 <a name="l00170"></a>00170 <span class="comment">// If thumbnails are disabled, set the "notfound" icon as default:</span> <a name="l00171"></a>00171 <span class="keywordflow">if</span> (!$GLOBALS['TYPO3_CONF_VARS']['GFX']['thumbnails']) { <a name="l00172"></a>00172 $this->thumbScript='gfx/notfound_thumb.gif'; <a name="l00173"></a>00173 } <a name="l00174"></a>00174 <a name="l00175"></a>00175 <span class="comment">// Init dynamic vars:</span> <a name="l00176"></a>00176 $this->counter=0; <a name="l00177"></a>00177 $this->JScode=''; <a name="l00178"></a>00178 $this->HTMLcode=''; <a name="l00179"></a>00179 <a name="l00180"></a>00180 <span class="comment">// Set select levels:</span> <a name="l00181"></a>00181 $sL=intval($this->searchLevels); <a name="l00182"></a>00182 $this->perms_clause = $GLOBALS['BE_USER']->getPagePermsClause(1); <a name="l00183"></a>00183 <a name="l00184"></a>00184 <span class="comment">// this will hide records from display - it has nothing todo with user rights!!</span> <a name="l00185"></a>00185 <span class="keywordflow">if</span> ($pidList = $GLOBALS['BE_USER']->getTSConfigVal('options.hideRecords.pages')) { <a name="l00186"></a>00186 <span class="keywordflow">if</span> ($pidList = $GLOBALS['TYPO3_DB']->cleanIntList($pidList)) { <a name="l00187"></a>00187 $this->perms_clause .= ' AND pages.uid NOT IN ('.$pidList.<span class="charliteral">')'</span>; <a name="l00188"></a>00188 } <a name="l00189"></a>00189 } <a name="l00190"></a>00190 <a name="l00191"></a>00191 <span class="keywordflow">if</span> ($sL>0) { <a name="l00192"></a>00192 $tree = $this-><a class="code" href="classrecordList.html#3b3f780a579554018f62172cc30ef1ce">getTreeObject</a>(<a class="code" href="classrecordList.html#08b423df7325443fb315a15ba7758773">$id</a>,$sL,$this->perms_clause); <a name="l00193"></a>00193 $this->pidSelect = 'pid IN ('.implode(<span class="charliteral">','</span>,$tree->ids).<span class="charliteral">')'</span>; <a name="l00194"></a>00194 } <span class="keywordflow">else</span> { <a name="l00195"></a>00195 $this->pidSelect = 'pid='.intval(<a class="code" href="classrecordList.html#08b423df7325443fb315a15ba7758773">$id</a>); <a name="l00196"></a>00196 } <a name="l00197"></a>00197 <a name="l00198"></a>00198 <span class="comment">// Initialize languages:</span> <a name="l00199"></a>00199 <span class="keywordflow">if</span> ($this->localizationView) { <a name="l00200"></a>00200 $this-><a class="code" href="classt3lib__recordList.html#f20606166b6d284d221931c8c923ec3e">initializeLanguages</a>(); <a name="l00201"></a>00201 } <a name="l00202"></a>00202 } <a name="l00203"></a>00203 <a name="l00211"></a><a class="code" href="classrecordList.html#7a298d0d5bd7ec444c67366b9020860b">00211</a> function generateList() { <a name="l00212"></a>00212 global $TCA; <a name="l00213"></a>00213 <a name="l00214"></a>00214 <span class="comment">// Set page record in header</span> <a name="l00215"></a>00215 $this->pageRecord = <a class="code" href="classt3lib__BEfunc.html#2921570c91cd2543489c9d850cfec311">t3lib_BEfunc::getRecordWSOL</a>('pages',$this-><span class="keywordtype">id</span>); <a name="l00216"></a>00216 <a name="l00217"></a>00217 <span class="comment">// Traverse the TCA table array:</span> <a name="l00218"></a>00218 reset($TCA); <a name="l00219"></a>00219 <span class="keywordflow">while</span> (list($tableName)=each($TCA)) { <a name="l00220"></a>00220 <a name="l00221"></a>00221 <span class="comment">// Checking if the table should be rendered:</span> <a name="l00222"></a>00222 <span class="keywordflow">if</span> ((!$this->table || $tableName==$this->table) && (!$this->tableList || <a class="code" href="classt3lib__div.html#d994a5608365c288d051d6022d4e9976">t3lib_div::inList</a>($this->tableList,$tableName)) && $GLOBALS['BE_USER']->check('tables_select',$tableName)) { <span class="comment">// Checks that we see only permitted/requested tables:</span> <a name="l00223"></a>00223 <a name="l00224"></a>00224 <span class="comment">// Load full table definitions:</span> <a name="l00225"></a>00225 <a class="code" href="classt3lib__div.html#3a04dbb9a707317b8beccbe92559dcc8">t3lib_div::loadTCA</a>($tableName); <a name="l00226"></a>00226 <a name="l00227"></a>00227 <span class="comment">// Hide tables which are configured via TSConfig not to be shown (also works for admins):</span> <a name="l00228"></a>00228 <span class="keywordflow">if</span> (<a class="code" href="classt3lib__div.html#d994a5608365c288d051d6022d4e9976">t3lib_div::inList</a>($this->hideTables, $tableName)) <span class="keywordflow">continue</span>; <a name="l00229"></a>00229 <a name="l00230"></a>00230 <span class="comment">// iLimit is set depending on whether we're in single- or multi-table mode</span> <a name="l00231"></a>00231 <span class="keywordflow">if</span> ($this->table) { <a name="l00232"></a>00232 $this->iLimit=(isset($TCA[$tableName]['interface']['maxSingleDBListItems'])?intval($TCA[$tableName]['interface']['maxSingleDBListItems']):$this->itemsLimitSingleTable); <a name="l00233"></a>00233 } <span class="keywordflow">else</span> { <a name="l00234"></a>00234 $this->iLimit=(isset($TCA[$tableName]['interface']['maxDBListItems'])?intval($TCA[$tableName]['interface']['maxDBListItems']):$this->itemsLimitPerTable); <a name="l00235"></a>00235 } <a name="l00236"></a>00236 <span class="keywordflow">if</span> ($this->showLimit) $this->iLimit = $this->showLimit; <a name="l00237"></a>00237 <a name="l00238"></a>00238 <span class="comment">// Setting fields to select:</span> <a name="l00239"></a>00239 <span class="keywordflow">if</span> ($this->allFields) { <a name="l00240"></a>00240 $fields = $this->makeFieldList($tableName); <a name="l00241"></a>00241 $fields[]='tstamp'; <a name="l00242"></a>00242 $fields[]='crdate'; <a name="l00243"></a>00243 $fields[]='_PATH_'; <a name="l00244"></a>00244 $fields[]='_CONTROL_'; <a name="l00245"></a>00245 <span class="keywordflow">if</span> (is_array($this->setFields[$tableName])) { <a name="l00246"></a>00246 $fields = array_intersect($fields,$this->setFields[$tableName]); <a name="l00247"></a>00247 } <span class="keywordflow">else</span> { <a name="l00248"></a>00248 $fields = array(); <a name="l00249"></a>00249 } <a name="l00250"></a>00250 } <span class="keywordflow">else</span> { <a name="l00251"></a>00251 $fields = array(); <a name="l00252"></a>00252 } <a name="l00253"></a>00253 <a name="l00254"></a>00254 <span class="comment">// Find ID to use (might be different for "versioning_followPages" tables)</span> <a name="l00255"></a>00255 <span class="keywordflow">if</span> (intval($this->searchLevels)==0) { <a name="l00256"></a>00256 <span class="keywordflow">if</span> ($TCA[$tableName]['ctrl']['versioning_followPages'] && $this->pageRecord['_ORIG_pid']==-1 && $this->pageRecord['t3ver_swapmode']==0) { <a name="l00257"></a>00257 $this->pidSelect = 'pid='.intval($this->pageRecord['_ORIG_uid']); <a name="l00258"></a>00258 } <span class="keywordflow">else</span> { <a name="l00259"></a>00259 $this->pidSelect = 'pid='.intval($this-><span class="keywordtype">id</span>); <a name="l00260"></a>00260 } <a name="l00261"></a>00261 } <a name="l00262"></a>00262 <span class="preprocessor">#debug($this->pidSelect,$tableName);</span> <a name="l00263"></a>00263 <span class="preprocessor"></span> <span class="comment">// Finally, render the list:</span> <a name="l00264"></a>00264 $this->HTMLcode.=$this->getTable($tableName, $this-><span class="keywordtype">id</span>, implode(<span class="charliteral">','</span>,$fields)); <a name="l00265"></a>00265 } <a name="l00266"></a>00266 } <a name="l00267"></a>00267 } <a name="l00268"></a>00268 <a name="l00275"></a><a class="code" href="classrecordList.html#8fe9a2a63659db194a7cb3dfcb4cad36">00275</a> function getSearchBox($formFields=1) { <a name="l00276"></a>00276 <a name="l00277"></a>00277 <span class="comment">// Setting form-elements, if applicable:</span> <a name="l00278"></a>00278 $formElements=array('<span class="charliteral">','</span>'); <a name="l00279"></a>00279 <span class="keywordflow">if</span> ($formFields) { <a name="l00280"></a>00280 $formElements=array('<form action=<span class="stringliteral">"'.htmlspecialchars($this->listURL()).'"</span> method=<span class="stringliteral">"post"</span>><span class="charliteral">','</span></form>'); <a name="l00281"></a>00281 } <a name="l00282"></a>00282 <a name="l00283"></a>00283 <span class="comment">// Make level selector:</span> <a name="l00284"></a>00284 $opt=array(); <a name="l00285"></a>00285 $parts = explode(<span class="charliteral">'|'</span>,$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.enterSearchLevels')); <a name="l00286"></a>00286 <span class="keywordflow">while</span>(list($kv,$label)=each($parts)) { <a name="l00287"></a>00287 $opt[] = '<option value=<span class="stringliteral">"'.$kv.'"</span>'.($kv==intval($this->searchLevels)?' selected=<span class="stringliteral">"selected"</span><span class="charliteral">':'</span>').<span class="charliteral">'>'</span>.htmlspecialchars($label).'</option>'; <a name="l00288"></a>00288 } <a name="l00289"></a>00289 $lMenu = '<select name=<span class="stringliteral">"search_levels"</span>>'.implode('',$opt).'</select>'; <a name="l00290"></a>00290 <a name="l00291"></a>00291 <span class="comment">// Table with the search box:</span> <a name="l00292"></a>00292 $content.= ' <a name="l00293"></a>00293 '.$formElements[0].' <a name="l00294"></a>00294 <a name="l00295"></a>00295 <!-- <a name="l00296"></a>00296 Search box: <a name="l00297"></a>00297 --> <a name="l00298"></a>00298 <table border=<span class="stringliteral">"0"</span> cellpadding=<span class="stringliteral">"0"</span> cellspacing=<span class="stringliteral">"0"</span> <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span> <span class="keywordtype">id</span>=<span class="stringliteral">"typo3-dblist-search"</span>> <a name="l00299"></a>00299 <tr> <a name="l00300"></a>00300 <td>'.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.enterSearchString',1).'<input type=<span class="stringliteral">"text"</span> name=<span class="stringliteral">"search_field"</span> value=<span class="stringliteral">"'.htmlspecialchars($this->searchString).'"</span>'.$GLOBALS['TBE_TEMPLATE']->formWidth(10).' /></td> <a name="l00301"></a>00301 <td>'.$lMenu.'</td> <a name="l00302"></a>00302 <td><input type=<span class="stringliteral">"submit"</span> name=<span class="stringliteral">"search"</span> value=<span class="stringliteral">"'.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.search',1).'"</span> /></td> <a name="l00303"></a>00303 </tr> <a name="l00304"></a>00304 <tr> <a name="l00305"></a>00305 <td colspan=<span class="stringliteral">"3"</span>>'.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.showRecords',1).':<input type=<span class="stringliteral">"text"</span> name=<span class="stringliteral">"showLimit"</span> value=<span class="stringliteral">"'.htmlspecialchars($this->showLimit?$this->showLimit:'').'"</span>'.$GLOBALS['SOBE']->doc->formWidth(4).' /></td> <a name="l00306"></a>00306 </tr> <a name="l00307"></a>00307 </table> <a name="l00308"></a>00308 '.$formElements[1]; <a name="l00309"></a>00309 $content.=<a class="code" href="classt3lib__BEfunc.html#a235b246dec429e439742b1fc76c9d97">t3lib_BEfunc::cshItem</a>('xMOD_csh_corebe', 'list_searchbox', $GLOBALS['BACK_PATH'],'|<br/>'); <a name="l00310"></a>00310 <span class="keywordflow">return</span> $content; <a name="l00311"></a>00311 } <a name="l00312"></a>00312 <a name="l00319"></a><a class="code" href="classrecordList.html#ad186752c271dd637e42efbc6c4e5002">00319</a> function showSysNotesForPage() { <a name="l00320"></a>00320 global $TCA; <a name="l00321"></a>00321 <a name="l00322"></a>00322 $out=''; <a name="l00323"></a>00323 <a name="l00324"></a>00324 <span class="comment">// Checking if extension is loaded:</span> <a name="l00325"></a>00325 <span class="keywordflow">if</span> (!<a class="code" href="classt3lib__extMgm.html#297116a3b1e17045ff193f170b8c4a29">t3lib_extMgm::isLoaded</a>('sys_note')) <span class="keywordflow">return</span> ''; <a name="l00326"></a>00326 <a name="l00327"></a>00327 <span class="comment">// Create query for selecting the notes:</span> <a name="l00328"></a>00328 $result = $GLOBALS['TYPO3_DB']->exec_SELECTquery(<span class="charliteral">'*'</span>,'sys_note<span class="charliteral">','</span>pid IN ('.$this-><span class="keywordtype">id</span>.') AND (personal=0 OR cruser='.intval($GLOBALS['BE_USER']->user['uid']).<span class="charliteral">')'</span>.<a class="code" href="classt3lib__BEfunc.html#16c74b2f662fa4157494b0e9caacaefb">t3lib_BEfunc::deleteClause</a>('sys_note').<a class="code" href="classt3lib__BEfunc.html#17438dad562c9e5991236022af7a15ff">t3lib_BEfunc::versioningPlaceholderClause</a>('sys_note')); <a name="l00329"></a>00329 <a name="l00330"></a>00330 <span class="comment">// Executing query:</span> <a name="l00331"></a>00331 $dbCount = $GLOBALS['TYPO3_DB']->sql_num_rows($result); <a name="l00332"></a>00332 <a name="l00333"></a>00333 <span class="comment">// If some notes were found, render them:</span> <a name="l00334"></a>00334 <span class="keywordflow">if</span> ($dbCount) { <a name="l00335"></a>00335 $cat = array(); <a name="l00336"></a>00336 <a name="l00337"></a>00337 <span class="comment">// Load full table description:</span> <a name="l00338"></a>00338 <a class="code" href="classt3lib__div.html#3a04dbb9a707317b8beccbe92559dcc8">t3lib_div::loadTCA</a>('sys_note'); <a name="l00339"></a>00339 <a name="l00340"></a>00340 <span class="comment">// Traverse note-types and get labels:</span> <a name="l00341"></a>00341 <span class="keywordflow">if</span> ($TCA['sys_note'] && $TCA['sys_note']['columns']['category'] && is_array($TCA['sys_note']['columns']['category']['config']['items'])) { <a name="l00342"></a>00342 foreach($TCA['sys_note']['columns']['category']['config']['items'] as $el) { <a name="l00343"></a>00343 $cat[$el[1]]=$GLOBALS['LANG']->sL($el[0]); <a name="l00344"></a>00344 } <a name="l00345"></a>00345 } <a name="l00346"></a>00346 <a name="l00347"></a>00347 <span class="comment">// For each note found, make rendering:</span> <a name="l00348"></a>00348 <span class="keywordflow">while</span>($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) { <a name="l00349"></a>00349 <a name="l00350"></a>00350 <span class="comment">// Create content:</span> <a name="l00351"></a>00351 $iconImg = <a class="code" href="classt3lib__iconWorks.html#09ccf5c505e700d523bd9c71a43d0fb4">t3lib_iconWorks::getIconImage</a>('sys_note',$row,$this->backPath,''); <a name="l00352"></a>00352 $subject = htmlspecialchars($row['subject']); <a name="l00353"></a>00353 $fields = array(); <a name="l00354"></a>00354 $fields['Author:'] = htmlspecialchars($row['author'].($row['email'] && $row['author'] ? ', <span class="charliteral">':'</span>').$row['email']); <a name="l00355"></a>00355 $fields['Category:'] = htmlspecialchars($cat[$row['category']]); <a name="l00356"></a>00356 $fields['Note:'] = nl2br(htmlspecialchars($row['message'])); <a name="l00357"></a>00357 <a name="l00358"></a>00358 <span class="comment">// Compile content:</span> <a name="l00359"></a>00359 $out.=' <a name="l00360"></a>00360 <a name="l00361"></a>00361 <a name="l00362"></a>00362 <!-- <a name="l00363"></a>00363 Sys-notes <span class="keywordflow">for</span> the db_list.php: <a name="l00364"></a>00364 --> <a name="l00365"></a>00365 <table border=<span class="stringliteral">"0"</span> cellpadding=<span class="stringliteral">"1"</span> cellspacing=<span class="stringliteral">"1"</span> <span class="keywordtype">id</span>=<span class="stringliteral">"typo3-dblist-sysnotes"</span>> <a name="l00366"></a>00366 <tr><td colspan=<span class="stringliteral">"2"</span> <span class="keyword">class</span>=<span class="stringliteral">"bgColor2"</span>>'.$iconImg.'<strong>'.$subject.'</strong></td></tr> <a name="l00367"></a>00367 <tr><td <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span>>'.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.category',1).'</td><td <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span>>'.$fields['Category:'].'</td></tr> <a name="l00368"></a>00368 <tr><td <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span>>'.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.author',1).'</td><td <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span>>'.$fields['Author:'].'</td></tr> <a name="l00369"></a>00369 <tr><td <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span>>'.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.note',1).'</td><td <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span>>'.$fields['Note:'].'</td></tr> <a name="l00370"></a>00370 </table> <a name="l00371"></a>00371 '; <a name="l00372"></a>00372 } <a name="l00373"></a>00373 } <a name="l00374"></a>00374 <span class="keywordflow">return</span> $out; <a name="l00375"></a>00375 } <a name="l00376"></a>00376 <a name="l00377"></a>00377 <a name="l00378"></a>00378 <a name="l00379"></a>00379 <a name="l00380"></a>00380 <a name="l00381"></a>00381 <a name="l00382"></a>00382 <a name="l00383"></a>00383 <a name="l00384"></a>00384 <span class="comment">/******************************</span> <a name="l00385"></a>00385 <span class="comment"> *</span> <a name="l00386"></a>00386 <span class="comment"> * Various helper functions</span> <a name="l00387"></a>00387 <span class="comment"> *</span> <a name="l00388"></a>00388 <span class="comment"> ******************************/</span> <a name="l00389"></a>00389 <a name="l00396"></a><a class="code" href="classrecordList.html#6424e440baacf449d5a98bd2f490927f">00396</a> function setDispFields() { <a name="l00397"></a>00397 <a name="l00398"></a>00398 <span class="comment">// Getting from session:</span> <a name="l00399"></a>00399 $dispFields = $GLOBALS['BE_USER']->getModuleData('db_list.php/displayFields'); <a name="l00400"></a>00400 <a name="l00401"></a>00401 <span class="comment">// If fields has been inputted, then set those as the value and push it to session variable:</span> <a name="l00402"></a>00402 <span class="keywordflow">if</span> (is_array($this->displayFields)) { <a name="l00403"></a>00403 reset($this->displayFields); <a name="l00404"></a>00404 $tKey = key($this->displayFields); <a name="l00405"></a>00405 $dispFields[$tKey]=$this->displayFields[$tKey]; <a name="l00406"></a>00406 $GLOBALS['BE_USER']->pushModuleData('db_list.php/displayFields',$dispFields); <a name="l00407"></a>00407 } <a name="l00408"></a>00408 <a name="l00409"></a>00409 <span class="comment">// Setting result:</span> <a name="l00410"></a>00410 $this->setFields=$dispFields; <a name="l00411"></a>00411 } <a name="l00412"></a>00412 <a name="l00421"></a><a class="code" href="classrecordList.html#4a13cc6c506b250b740b4aa3bac8bd40">00421</a> function thumbCode($row,$table,$field) { <a name="l00422"></a>00422 <span class="keywordflow">return</span> <a class="code" href="classt3lib__BEfunc.html#4d76abbafb0890b24ccbbbd22600ea6b">t3lib_BEfunc::thumbCode</a>($row,$table,$field,$this->backPath,$this->thumbScript); <a name="l00423"></a>00423 } <a name="l00424"></a>00424 <a name="l00434"></a><a class="code" href="classrecordList.html#da4a85b4f626500590c0be09f858afb7">00434</a> function makeQueryArray($table, $id, $addWhere=<span class="stringliteral">""</span>,$fieldList=<span class="charliteral">'*'</span>) { <a name="l00435"></a>00435 global $TCA; <a name="l00436"></a>00436 <a name="l00437"></a>00437 <span class="comment">// Set ORDER BY:</span> <a name="l00438"></a>00438 $orderBy = ($TCA[$table]['ctrl']['sortby']) ? 'ORDER BY '.$TCA[$table]['ctrl']['sortby'] : $TCA[$table]['ctrl']['default_sortby']; <a name="l00439"></a>00439 <span class="keywordflow">if</span> ($this->sortField) { <a name="l00440"></a>00440 <span class="keywordflow">if</span> (in_array($this->sortField,$this->makeFieldList($table,1))) { <a name="l00441"></a>00441 $orderBy = 'ORDER BY '.$this->sortField; <a name="l00442"></a>00442 <span class="keywordflow">if</span> ($this->sortRev) $orderBy.=' DESC'; <a name="l00443"></a>00443 } <a name="l00444"></a>00444 } <a name="l00445"></a>00445 <a name="l00446"></a>00446 <span class="comment">// Set LIMIT:</span> <a name="l00447"></a>00447 $limit = $this->iLimit ? ($this->firstElementNumber ? $this->firstElementNumber.<span class="charliteral">','</span> : '').($this->iLimit+1) : ''; <a name="l00448"></a>00448 <a name="l00449"></a>00449 <span class="comment">// Filtering on displayable pages (permissions):</span> <a name="l00450"></a>00450 $pC = ($table=='pages' && $this->perms_clause)?' AND '.$this->perms_clause:''; <a name="l00451"></a>00451 <a name="l00452"></a>00452 <span class="comment">// Adding search constraints:</span> <a name="l00453"></a>00453 $search = $this->makeSearchString($table); <a name="l00454"></a>00454 <a name="l00455"></a>00455 <span class="comment">// Compiling query array:</span> <a name="l00456"></a>00456 $queryParts = array( <a name="l00457"></a>00457 'SELECT' => $fieldList, <a name="l00458"></a>00458 'FROM' => $table, <a name="l00459"></a>00459 'WHERE' => $this->pidSelect. <a name="l00460"></a>00460 <span class="charliteral">' '</span>.$pC. <a name="l00461"></a>00461 <a class="code" href="classt3lib__BEfunc.html#16c74b2f662fa4157494b0e9caacaefb">t3lib_BEfunc::deleteClause</a>($table). <a name="l00462"></a>00462 <a class="code" href="classt3lib__BEfunc.html#17438dad562c9e5991236022af7a15ff">t3lib_BEfunc::versioningPlaceholderClause</a>($table). <a name="l00463"></a>00463 <span class="charliteral">' '</span>.$addWhere. <a name="l00464"></a>00464 <span class="charliteral">' '</span>.$search, <a name="l00465"></a>00465 'GROUPBY' => '', <a name="l00466"></a>00466 'ORDERBY' => $GLOBALS['TYPO3_DB']->stripOrderBy($orderBy), <a name="l00467"></a>00467 'LIMIT' => $limit <a name="l00468"></a>00468 ); <a name="l00469"></a>00469 <a name="l00470"></a>00470 <span class="comment">// Return query:</span> <a name="l00471"></a>00471 <span class="keywordflow">return</span> $queryParts; <a name="l00472"></a>00472 } <a name="l00473"></a>00473 <a name="l00481"></a><a class="code" href="classrecordList.html#47dbf17e34437899ad089e80865c6c63">00481</a> function setTotalItems($queryParts) { <a name="l00482"></a>00482 $result = $GLOBALS['TYPO3_DB']->exec_SELECTquery( <a name="l00483"></a>00483 'count(*)', <a name="l00484"></a>00484 $queryParts['FROM'], <a name="l00485"></a>00485 $queryParts['WHERE'] <a name="l00486"></a>00486 ); <a name="l00487"></a>00487 list($rCount) = $GLOBALS['TYPO3_DB']->sql_fetch_row($result); <a name="l00488"></a>00488 $this->totalItems = $rCount; <a name="l00489"></a>00489 } <a name="l00490"></a>00490 <a name="l00497"></a><a class="code" href="classrecordList.html#0d39699b04db121473780d4bd4a7f969">00497</a> function makeSearchString($table) { <a name="l00498"></a>00498 global $TCA; <a name="l00499"></a>00499 <a name="l00500"></a>00500 <span class="comment">// Make query, only if table is valid and a search string is actually defined:</span> <a name="l00501"></a>00501 <span class="keywordflow">if</span> ($TCA[$table] && $this->searchString) { <a name="l00502"></a>00502 <a name="l00503"></a>00503 <span class="comment">// Loading full table description - we need to traverse fields:</span> <a name="l00504"></a>00504 <a class="code" href="classt3lib__div.html#3a04dbb9a707317b8beccbe92559dcc8">t3lib_div::loadTCA</a>($table); <a name="l00505"></a>00505 <a name="l00506"></a>00506 <span class="comment">// Initialize field array:</span> <a name="l00507"></a>00507 $sfields=array(); <a name="l00508"></a>00508 $sfields[]='uid'; <span class="comment">// Adding "uid" by default.</span> <a name="l00509"></a>00509 <a name="l00510"></a>00510 <span class="comment">// Traverse the configured columns and add all columns that can be searched:</span> <a name="l00511"></a>00511 foreach($TCA[$table]['columns'] as $fieldName => $info) { <a name="l00512"></a>00512 <span class="keywordflow">if</span> ($info['config']['type']=='text' || ($info['config']['type']=='input' && !ereg('date|time|<span class="keywordtype">int</span>',$info['config']['eval']))) { <a name="l00513"></a>00513 $sfields[]=$fieldName; <a name="l00514"></a>00514 } <a name="l00515"></a>00515 } <a name="l00516"></a>00516 <a name="l00517"></a>00517 <span class="comment">// If search-fields were defined (and there always are) we create the query:</span> <a name="l00518"></a>00518 <span class="keywordflow">if</span> (count($sfields)) { <a name="l00519"></a>00519 $like = ' LIKE \<span class="charliteral">'%'</span>.$GLOBALS['TYPO3_DB']->quoteStr($this->searchString, $table).'%\''; <span class="comment">// Free-text searching...</span> <a name="l00520"></a>00520 $queryPart = ' AND ('.implode($like.' OR ',$sfields).$like.<span class="charliteral">')'</span>; <a name="l00521"></a>00521 <a name="l00522"></a>00522 <span class="comment">// Return query:</span> <a name="l00523"></a>00523 <span class="keywordflow">return</span> $queryPart; <a name="l00524"></a>00524 } <a name="l00525"></a>00525 } <a name="l00526"></a>00526 } <a name="l00527"></a>00527 <a name="l00536"></a><a class="code" href="classrecordList.html#0a0cad3ac2df5db9099cf48d8e71cc64">00536</a> function linkWrapTable($table,$code) { <a name="l00537"></a>00537 <span class="keywordflow">if</span> ($this->table!=$table) { <a name="l00538"></a>00538 <span class="keywordflow">return</span> '<a href=<span class="stringliteral">"'.htmlspecialchars($this->listURL('',$table)).'"</span>>'.$code.'</a>'; <a name="l00539"></a>00539 } <span class="keywordflow">else</span> { <a name="l00540"></a>00540 <span class="keywordflow">return</span> '<a href=<span class="stringliteral">"'.htmlspecialchars($this->listURL('','','sortField,sortRev,table')).'"</span>>'.$code.'</a>'; <a name="l00541"></a>00541 } <a name="l00542"></a>00542 } <a name="l00543"></a>00543 <a name="l00553"></a><a class="code" href="classrecordList.html#ea774a90de00f0162a0be27fdc11ae7a">00553</a> function linkWrapItems($table,$uid,$code,$row) { <a name="l00554"></a>00554 global $TCA, $LANG; <a name="l00555"></a>00555 <a name="l00556"></a>00556 $origCode = $code; <a name="l00557"></a>00557 <a name="l00558"></a>00558 <span class="comment">// If the title is blank, make a "no title" label:</span> <a name="l00559"></a>00559 <span class="keywordflow">if</span> (!strcmp($code,'')) { <a name="l00560"></a>00560 $code = '<i>['.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.no_title',1).']</i> - '.htmlspecialchars(<a class="code" href="classt3lib__div.html#93c658c7682e99d76960c3d670e073e8">t3lib_div::fixed_lgd_cs</a>(<a class="code" href="classt3lib__BEfunc.html#b2fd87d0623e4168bb0f1164572ca1a3">t3lib_BEfunc::getRecordTitle</a>($table,$row),$GLOBALS['BE_USER']->uc['titleLen'])); <a name="l00561"></a>00561 } <span class="keywordflow">else</span> { <a name="l00562"></a>00562 $code = htmlspecialchars(<a class="code" href="classt3lib__div.html#93c658c7682e99d76960c3d670e073e8">t3lib_div::fixed_lgd_cs</a>($code,$this->fixedL)); <a name="l00563"></a>00563 } <a name="l00564"></a>00564 <a name="l00565"></a>00565 <span class="keywordflow">switch</span>((string)$this->clickTitleMode) { <a name="l00566"></a>00566 <span class="keywordflow">case</span> 'edit': <a name="l00567"></a>00567 <span class="comment">// If the listed table is 'pages' we have to request the permission settings for each page:</span> <a name="l00568"></a>00568 <span class="keywordflow">if</span> ($table=='pages') { <a name="l00569"></a>00569 $localCalcPerms = $GLOBALS['BE_USER']->calcPerms(<a class="code" href="classt3lib__BEfunc.html#c0a110679ba0fac9af0d66f34026f378">t3lib_BEfunc::getRecord</a>('pages',$row['uid'])); <a name="l00570"></a>00570 $permsEdit = $localCalcPerms&2; <a name="l00571"></a>00571 } <span class="keywordflow">else</span> { <a name="l00572"></a>00572 $permsEdit = $this->calcPerms&16; <a name="l00573"></a>00573 } <a name="l00574"></a>00574 <a name="l00575"></a>00575 <span class="comment">// "Edit" link: ( Only if permissions to edit the page-record of the content of the parent page ($this->id)</span> <a name="l00576"></a>00576 <span class="keywordflow">if</span> ($permsEdit) { <a name="l00577"></a>00577 $params='&edit['.$table.']['.$row['uid'].']=edit'; <a name="l00578"></a>00578 $code = '<a href=<span class="stringliteral">"#"</span> onclick=<span class="stringliteral">"'.htmlspecialchars(t3lib_BEfunc::editOnClick($params,'',-1)).'"</span> title=<span class="stringliteral">"'.$LANG->getLL('edit',1).'"</span>>'. <a name="l00579"></a>00579 $code. <a name="l00580"></a>00580 '</a>'; <a name="l00581"></a>00581 } <a name="l00582"></a>00582 <span class="keywordflow">break</span>; <a name="l00583"></a>00583 <span class="keywordflow">case</span> 'show': <a name="l00584"></a>00584 <span class="comment">// "Show" link (only pages and tt_content elements)</span> <a name="l00585"></a>00585 <span class="keywordflow">if</span> ($table=='pages' || $table=='tt_content') { <a name="l00586"></a>00586 $code = '<a href=<span class="stringliteral">"#"</span> onclick=<span class="stringliteral">"'.htmlspecialchars(t3lib_BEfunc::viewOnClick($table=='tt_content'?$this->id.'#'.$row['uid']:$row['uid'])).'"</span> title=<span class="stringliteral">"'.$LANG->sL('LLL:EXT:lang/locallang_core.php:labels.showPage',1).'"</span>>'. <a name="l00587"></a>00587 $code. <a name="l00588"></a>00588 '</a>'; <a name="l00589"></a>00589 } <a name="l00590"></a>00590 <span class="keywordflow">break</span>; <a name="l00591"></a>00591 <span class="keywordflow">case</span> 'info': <a name="l00592"></a>00592 <span class="comment">// "Info": (All records)</span> <a name="l00593"></a>00593 $code = '<a href=<span class="stringliteral">"#"</span> onclick=<span class="stringliteral">"'.htmlspecialchars('top.launchView(\''.$table.'\', \''.$row['uid'].'\'); return false;').'"</span> title=<span class="stringliteral">"'.$LANG->getLL('showInfo',1).'"</span>>'. <a name="l00594"></a>00594 $code. <a name="l00595"></a>00595 '</a>'; <a name="l00596"></a>00596 <span class="keywordflow">break</span>; <a name="l00597"></a>00597 <span class="keywordflow">default</span>: <a name="l00598"></a>00598 <span class="comment">// Output the label now:</span> <a name="l00599"></a>00599 <span class="keywordflow">if</span> ($table=='pages') { <a name="l00600"></a>00600 $code = '<a href=<span class="stringliteral">"'.htmlspecialchars($this->listURL($uid,'')).'"</span> onclick=<span class="stringliteral">"setHighlight('.$uid.')"</span>>'.$code.'</a>'; <a name="l00601"></a>00601 } <span class="keywordflow">else</span> { <a name="l00602"></a>00602 $code = $this->linkUrlMail($code,$origCode); <a name="l00603"></a>00603 } <a name="l00604"></a>00604 <span class="keywordflow">break</span>; <a name="l00605"></a>00605 } <a name="l00606"></a>00606 <a name="l00607"></a>00607 <span class="keywordflow">return</span> $code; <a name="l00608"></a>00608 } <a name="l00609"></a>00609 <a name="l00617"></a><a class="code" href="classrecordList.html#b8d2e873fa81ad5d52d764407d1140ef">00617</a> function linkUrlMail($code,$testString) { <a name="l00618"></a>00618 <a name="l00619"></a>00619 <span class="comment">// Check for URL:</span> <a name="l00620"></a>00620 $schema = parse_url($testString); <a name="l00621"></a>00621 <span class="keywordflow">if</span> ($schema['scheme'] && <a class="code" href="classt3lib__div.html#d994a5608365c288d051d6022d4e9976">t3lib_div::inList</a>('http,https,ftp',$schema['scheme'])) { <a name="l00622"></a>00622 <span class="keywordflow">return</span> '<a href=<span class="stringliteral">"'.htmlspecialchars($testString).'"</span> target=<span class="stringliteral">"_blank"</span>>'.$code.'</a>'; <a name="l00623"></a>00623 } <a name="l00624"></a>00624 <a name="l00625"></a>00625 <span class="comment">// Check for email:</span> <a name="l00626"></a>00626 <span class="keywordflow">if</span> (<a class="code" href="classt3lib__div.html#68b0a656891da6e679983a4a22fee359">t3lib_div::validEmail</a>($testString)) { <a name="l00627"></a>00627 <span class="keywordflow">return</span> '<a href=<span class="stringliteral">"mailto:'.htmlspecialchars($testString).'"</span> target=<span class="stringliteral">"_blank"</span>>'.$code.'</a>'; <a name="l00628"></a>00628 } <a name="l00629"></a>00629 <a name="l00630"></a>00630 <span class="comment">// Return if nothing else...</span> <a name="l00631"></a>00631 <span class="keywordflow">return</span> $code; <a name="l00632"></a>00632 } <a name="l00633"></a>00633 <a name="l00644"></a><a class="code" href="classrecordList.html#1fcaf8bcd56ccbb979afe89c081c8ad8">00644</a> function listURL($altId='',$table=-1,$exclList='') { <a name="l00645"></a>00645 <span class="keywordflow">return</span> $this->script. <a name="l00646"></a>00646 '?<span class="keywordtype">id</span>='.(strcmp($altId,'')?$altId:$this->id). <a name="l00647"></a>00647 '&table='.rawurlencode($table==-1?$this->table:$table). <a name="l00648"></a>00648 ($this->thumbs?'&imagemode='.$this->thumbs:''). <a name="l00649"></a>00649 ($this->returnUrl?'&returnUrl='.rawurlencode($this->returnUrl):''). <a name="l00650"></a>00650 ($this->searchString?'&search_field='.rawurlencode($this->searchString):''). <a name="l00651"></a>00651 ($this->searchLevels?'&search_levels='.rawurlencode($this->searchLevels):''). <a name="l00652"></a>00652 ($this->showLimit?'&showLimit='.rawurlencode($this->showLimit):''). <a name="l00653"></a>00653 ((!$exclList || !<a class="code" href="classt3lib__div.html#d994a5608365c288d051d6022d4e9976">t3lib_div::inList</a>($exclList,'sortField')) && $this->sortField?'&sortField='.rawurlencode($this->sortField):''). <a name="l00654"></a>00654 ((!$exclList || !<a class="code" href="classt3lib__div.html#d994a5608365c288d051d6022d4e9976">t3lib_div::inList</a>($exclList,'sortRev')) && $this->sortRev?'&sortRev='.rawurlencode($this->sortRev):'') <a name="l00655"></a>00655 ; <a name="l00656"></a>00656 } <a name="l00657"></a>00657 <a name="l00663"></a><a class="code" href="classrecordList.html#53ef9bc3d59d82c9a3ae0aa4eb0bb23c">00663</a> function requestUri() { <a name="l00664"></a>00664 <span class="keywordflow">return</span> $this->listURL(); <a name="l00665"></a>00665 } <a name="l00666"></a>00666 <a name="l00674"></a><a class="code" href="classrecordList.html#b518456e768a65b3e74e8625dac27f54">00674</a> function makeFieldList($table,$dontCheckUser=0) { <a name="l00675"></a>00675 global $TCA,$BE_USER; <a name="l00676"></a>00676 <a name="l00677"></a>00677 <span class="comment">// Init fieldlist array:</span> <a name="l00678"></a>00678 $fieldListArr = array(); <a name="l00679"></a>00679 <a name="l00680"></a>00680 <span class="comment">// Check table:</span> <a name="l00681"></a>00681 <span class="keywordflow">if</span> (is_array($TCA[$table])) { <a name="l00682"></a>00682 <a class="code" href="classt3lib__div.html#3a04dbb9a707317b8beccbe92559dcc8">t3lib_div::loadTCA</a>($table); <a name="l00683"></a>00683 <a name="l00684"></a>00684 <span class="comment">// Traverse configured columns and add them to field array, if available for user.</span> <a name="l00685"></a>00685 foreach($TCA[$table]['columns'] as $fN => $fieldValue) { <a name="l00686"></a>00686 <span class="keywordflow">if</span> ($dontCheckUser || <a name="l00687"></a>00687 ((!$fieldValue['exclude'] || $BE_USER->check('non_exclude_fields',$table.<span class="charliteral">':'</span>.$fN)) && $fieldValue['config']['type']!='passthrough')) { <a name="l00688"></a>00688 $fieldListArr[]=$fN; <a name="l00689"></a>00689 } <a name="l00690"></a>00690 } <a name="l00691"></a>00691 <a name="l00692"></a>00692 <span class="comment">// Add special fields:</span> <a name="l00693"></a>00693 <span class="keywordflow">if</span> ($dontCheckUser || $BE_USER->isAdmin()) { <a name="l00694"></a>00694 $fieldListArr[]='uid'; <a name="l00695"></a>00695 $fieldListArr[]='pid'; <a name="l00696"></a>00696 <span class="keywordflow">if</span> ($TCA[$table]['ctrl']['tstamp']) $fieldListArr[]=$TCA[$table]['ctrl']['tstamp']; <a name="l00697"></a>00697 <span class="keywordflow">if</span> ($TCA[$table]['ctrl']['crdate']) $fieldListArr[]=$TCA[$table]['ctrl']['crdate']; <a name="l00698"></a>00698 <span class="keywordflow">if</span> ($TCA[$table]['ctrl']['cruser_id']) $fieldListArr[]=$TCA[$table]['ctrl']['cruser_id']; <a name="l00699"></a>00699 <span class="keywordflow">if</span> ($TCA[$table]['ctrl']['sortby']) $fieldListArr[]=$TCA[$table]['ctrl']['sortby']; <a name="l00700"></a>00700 <span class="keywordflow">if</span> ($TCA[$table]['ctrl']['versioningWS']) { <a name="l00701"></a>00701 $fieldListArr[]='t3ver_id'; <a name="l00702"></a>00702 $fieldListArr[]='t3ver_state'; <a name="l00703"></a>00703 $fieldListArr[]='t3ver_wsid'; <a name="l00704"></a>00704 <span class="keywordflow">if</span> ($table==='pages') { <a name="l00705"></a>00705 $fieldListArr[]='t3ver_swapmode'; <a name="l00706"></a>00706 } <a name="l00707"></a>00707 } <a name="l00708"></a>00708 } <a name="l00709"></a>00709 } <a name="l00710"></a>00710 <span class="keywordflow">return</span> $fieldListArr; <a name="l00711"></a>00711 } <a name="l00712"></a>00712 <a name="l00721"></a><a class="code" href="classrecordList.html#3b3f780a579554018f62172cc30ef1ce">00721</a> function getTreeObject($id,$depth,$perms_clause) { <a name="l00722"></a>00722 $tree = <a class="code" href="classt3lib__div.html#b47f8a8e8be44b79a0b8064dcd427bc1">t3lib_div::makeInstance</a>('<a class="code" href="classt3lib__pageTree.html">t3lib_pageTree</a>'); <a name="l00723"></a>00723 $tree->init('AND '.$perms_clause); <a name="l00724"></a>00724 $tree->makeHTML=0; <a name="l00725"></a>00725 $tree->fieldArray = Array('uid<span class="charliteral">','</span>php_tree_stop'); <a name="l00726"></a>00726 <span class="keywordflow">if</span> ($depth) { <a name="l00727"></a>00727 $tree->getTree($id, $depth, ''); <a name="l00728"></a>00728 } <a name="l00729"></a>00729 $tree->ids[]=$id; <a name="l00730"></a>00730 <span class="keywordflow">return</span> $tree; <a name="l00731"></a>00731 } <a name="l00732"></a>00732 <a name="l00739"></a><a class="code" href="classrecordList.html#1d2092290b07d25763fbc3bbfee056a4">00739</a> function localizationRedirect($justLocalized) { <a name="l00740"></a>00740 global $TCA; <a name="l00741"></a>00741 <a name="l00742"></a>00742 list($table,$orig_uid,$language) = explode(<span class="charliteral">':'</span>,$justLocalized); <a name="l00743"></a>00743 <a name="l00744"></a>00744 <span class="keywordflow">if</span> ($TCA[$table] && $TCA[$table]['ctrl']['languageField'] && $TCA[$table]['ctrl']['transOrigPointerField']) { <a name="l00745"></a>00745 list($localizedRecord) = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows( <a name="l00746"></a>00746 'uid', <a name="l00747"></a>00747 $table, <a name="l00748"></a>00748 $TCA[$table]['ctrl']['languageField'].<span class="charliteral">'='</span>.intval($language).' AND '. <a name="l00749"></a>00749 $TCA[$table]['ctrl']['transOrigPointerField'].<span class="charliteral">'='</span>.intval($orig_uid). <a name="l00750"></a>00750 <a class="code" href="classt3lib__BEfunc.html#16c74b2f662fa4157494b0e9caacaefb">t3lib_BEfunc::deleteClause</a>($table). <a name="l00751"></a>00751 <a class="code" href="classt3lib__BEfunc.html#17438dad562c9e5991236022af7a15ff">t3lib_BEfunc::versioningPlaceholderClause</a>($table) <a name="l00752"></a>00752 ); <a name="l00753"></a>00753 <a name="l00754"></a>00754 <span class="keywordflow">if</span> (is_array($localizedRecord)) { <a name="l00755"></a>00755 <span class="comment">// Create parameters and finally run the classic page module for creating a new page translation</span> <a name="l00756"></a>00756 $params = '&edit['.$table.']['.$localizedRecord['uid'].']=edit'; <a name="l00757"></a>00757 $returnUrl = '&returnUrl='.rawurlencode($this->listURL()); <a name="l00758"></a>00758 $location = $GLOBALS['BACK_PATH'].'alt_doc.php?'.$params.$returnUrl; <a name="l00759"></a>00759 <a name="l00760"></a>00760 header('Location: '.<a class="code" href="classt3lib__div.html#6c7d1f6a781970006fc7110913fc8848">t3lib_div::locationHeaderUrl</a>($location)); <a name="l00761"></a>00761 exit; <a name="l00762"></a>00762 } <a name="l00763"></a>00763 } <a name="l00764"></a>00764 } <a name="l00765"></a>00765 } <a name="l00766"></a>00766 <a name="l00767"></a>00767 <a name="l00768"></a>00768 <span class="keywordflow">if</span> (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/<span class="keyword">class</span>.db_list.inc']) { <a name="l00769"></a>00769 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/<span class="keyword">class</span>.db_list.inc']); <a name="l00770"></a>00770 } <a name="l00771"></a>00771 ?> </pre></div><?php include_once '../doc-typo3-funcs.php'; get_footer(); ?>