<?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&nbsp;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&nbsp;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>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</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>&nbsp;&raquo&nbsp;<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 &lt;?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> = '&lt;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> /&gt;';
<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-&gt;<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-&gt;table=$table;            <span class="comment">// Setting single table mode, if table exists:</span>
<a name="l00154"></a>00154                 $this-&gt;firstElementNumber=$pointer;
<a name="l00155"></a>00155                 $this-&gt;searchString=trim($search);
<a name="l00156"></a>00156                 $this-&gt;searchLevels=trim($levels);
<a name="l00157"></a>00157                 $this-&gt;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-&gt;csvOutput = <a class="code" href="classt3lib__div.html#016d2190758279b2dbb953826c690118">t3lib_div::_GP</a>('csv') ? TRUE : FALSE;
<a name="l00161"></a>00161                 $this-&gt;sortField = <a class="code" href="classt3lib__div.html#016d2190758279b2dbb953826c690118">t3lib_div::_GP</a>('sortField');
<a name="l00162"></a>00162                 $this-&gt;sortRev = <a class="code" href="classt3lib__div.html#016d2190758279b2dbb953826c690118">t3lib_div::_GP</a>('sortRev');
<a name="l00163"></a>00163                 $this-&gt;displayFields = <a class="code" href="classt3lib__div.html#016d2190758279b2dbb953826c690118">t3lib_div::_GP</a>('displayFields');
<a name="l00164"></a>00164                 $this-&gt;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-&gt;<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-&gt;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-&gt;counter=0;
<a name="l00177"></a>00177                 $this-&gt;JScode='';
<a name="l00178"></a>00178                 $this-&gt;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-&gt;searchLevels);
<a name="l00182"></a>00182                 $this-&gt;perms_clause = $GLOBALS['BE_USER']-&gt;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']-&gt;getTSConfigVal('options.hideRecords.pages')) {
<a name="l00186"></a>00186                         <span class="keywordflow">if</span> ($pidList = $GLOBALS['TYPO3_DB']-&gt;cleanIntList($pidList)) {
<a name="l00187"></a>00187                                 $this-&gt;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&gt;0)      {
<a name="l00192"></a>00192                         $tree = $this-&gt;<a class="code" href="classrecordList.html#3b3f780a579554018f62172cc30ef1ce">getTreeObject</a>(<a class="code" href="classrecordList.html#08b423df7325443fb315a15ba7758773">$id</a>,$sL,$this-&gt;perms_clause);
<a name="l00193"></a>00193                         $this-&gt;pidSelect = 'pid IN ('.implode(<span class="charliteral">','</span>,$tree-&gt;ids).<span class="charliteral">')'</span>;
<a name="l00194"></a>00194                 } <span class="keywordflow">else</span> {
<a name="l00195"></a>00195                         $this-&gt;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-&gt;localizationView)    {
<a name="l00200"></a>00200                         $this-&gt;<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-&gt;pageRecord = <a class="code" href="classt3lib__BEfunc.html#2921570c91cd2543489c9d850cfec311">t3lib_BEfunc::getRecordWSOL</a>('pages',$this-&gt;<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-&gt;table || $tableName==$this-&gt;table) &amp;&amp; (!$this-&gt;tableList || <a class="code" href="classt3lib__div.html#d994a5608365c288d051d6022d4e9976">t3lib_div::inList</a>($this-&gt;tableList,$tableName)) &amp;&amp; $GLOBALS['BE_USER']-&gt;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-&gt;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-&gt;table)       {
<a name="l00232"></a>00232                                         $this-&gt;iLimit=(isset($TCA[$tableName]['interface']['maxSingleDBListItems'])?intval($TCA[$tableName]['interface']['maxSingleDBListItems']):$this-&gt;itemsLimitSingleTable);
<a name="l00233"></a>00233                                 } <span class="keywordflow">else</span> {
<a name="l00234"></a>00234                                         $this-&gt;iLimit=(isset($TCA[$tableName]['interface']['maxDBListItems'])?intval($TCA[$tableName]['interface']['maxDBListItems']):$this-&gt;itemsLimitPerTable);
<a name="l00235"></a>00235                                 }
<a name="l00236"></a>00236                                 <span class="keywordflow">if</span> ($this-&gt;showLimit)   $this-&gt;iLimit = $this-&gt;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-&gt;allFields)   {
<a name="l00240"></a>00240                                         $fields = $this-&gt;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-&gt;setFields[$tableName]))     {
<a name="l00246"></a>00246                                                 $fields = array_intersect($fields,$this-&gt;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-&gt;searchLevels)==0)     {
<a name="l00256"></a>00256                                         <span class="keywordflow">if</span> ($TCA[$tableName]['ctrl']['versioning_followPages'] &amp;&amp; $this-&gt;pageRecord['_ORIG_pid']==-1 &amp;&amp; $this-&gt;pageRecord['t3ver_swapmode']==0) {
<a name="l00257"></a>00257                                                 $this-&gt;pidSelect = 'pid='.intval($this-&gt;pageRecord['_ORIG_uid']);
<a name="l00258"></a>00258                                         } <span class="keywordflow">else</span> {
<a name="l00259"></a>00259                                                 $this-&gt;pidSelect = 'pid='.intval($this-&gt;<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-&gt;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-&gt;HTMLcode.=$this-&gt;getTable($tableName, $this-&gt;<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('&lt;form action=<span class="stringliteral">"'.htmlspecialchars($this-&gt;listURL()).'"</span> method=<span class="stringliteral">"post"</span>&gt;<span class="charliteral">','</span>&lt;/form&gt;');
<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']-&gt;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[] = '&lt;option value=<span class="stringliteral">"'.$kv.'"</span>'.($kv==intval($this-&gt;searchLevels)?' selected=<span class="stringliteral">"selected"</span><span class="charliteral">':'</span>').<span class="charliteral">'&gt;'</span>.htmlspecialchars($label).'&lt;/option&gt;';
<a name="l00288"></a>00288                 }
<a name="l00289"></a>00289                 $lMenu = '&lt;select name=<span class="stringliteral">"search_levels"</span>&gt;'.implode('',$opt).'&lt;/select&gt;';
<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                                 &lt;!--
<a name="l00296"></a>00296                                         Search box:
<a name="l00297"></a>00297                                 --&gt;
<a name="l00298"></a>00298                                 &lt;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>&gt;
<a name="l00299"></a>00299                                         &lt;tr&gt;
<a name="l00300"></a>00300                                                 &lt;td&gt;'.$GLOBALS['LANG']-&gt;sL('LLL:EXT:lang/locallang_core.php:labels.enterSearchString',1).'&lt;input type=<span class="stringliteral">"text"</span> name=<span class="stringliteral">"search_field"</span> value=<span class="stringliteral">"'.htmlspecialchars($this-&gt;searchString).'"</span>'.$GLOBALS['TBE_TEMPLATE']-&gt;formWidth(10).' /&gt;&lt;/td&gt;
<a name="l00301"></a>00301                                                 &lt;td&gt;'.$lMenu.'&lt;/td&gt;
<a name="l00302"></a>00302                                                 &lt;td&gt;&lt;input type=<span class="stringliteral">"submit"</span> name=<span class="stringliteral">"search"</span> value=<span class="stringliteral">"'.$GLOBALS['LANG']-&gt;sL('LLL:EXT:lang/locallang_core.php:labels.search',1).'"</span> /&gt;&lt;/td&gt;
<a name="l00303"></a>00303                                         &lt;/tr&gt;
<a name="l00304"></a>00304                                         &lt;tr&gt;
<a name="l00305"></a>00305                                                 &lt;td colspan=<span class="stringliteral">"3"</span>&gt;'.$GLOBALS['LANG']-&gt;sL('LLL:EXT:lang/locallang_core.php:labels.showRecords',1).':&lt;input type=<span class="stringliteral">"text"</span> name=<span class="stringliteral">"showLimit"</span> value=<span class="stringliteral">"'.htmlspecialchars($this-&gt;showLimit?$this-&gt;showLimit:'').'"</span>'.$GLOBALS['SOBE']-&gt;doc-&gt;formWidth(4).' /&gt;&lt;/td&gt;
<a name="l00306"></a>00306                                         &lt;/tr&gt;
<a name="l00307"></a>00307                                 &lt;/table&gt;
<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'],'|&lt;br/&gt;');
<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']-&gt;exec_SELECTquery(<span class="charliteral">'*'</span>,'sys_note<span class="charliteral">','</span>pid IN ('.$this-&gt;<span class="keywordtype">id</span>.') AND (personal=0 OR cruser='.intval($GLOBALS['BE_USER']-&gt;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']-&gt;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'] &amp;&amp; $TCA['sys_note']['columns']['category'] &amp;&amp; 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']-&gt;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']-&gt;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-&gt;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'] &amp;&amp; $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                                 &lt;!--
<a name="l00363"></a>00363                                         Sys-notes <span class="keywordflow">for</span> the db_list.php:
<a name="l00364"></a>00364                                 --&gt;
<a name="l00365"></a>00365                                         &lt;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>&gt;
<a name="l00366"></a>00366                                                 &lt;tr&gt;&lt;td colspan=<span class="stringliteral">"2"</span> <span class="keyword">class</span>=<span class="stringliteral">"bgColor2"</span>&gt;'.$iconImg.'&lt;strong&gt;'.$subject.'&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
<a name="l00367"></a>00367                                                 &lt;tr&gt;&lt;td <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span>&gt;'.$GLOBALS['LANG']-&gt;sL('LLL:EXT:lang/locallang_core.php:labels.category',1).'&lt;/td&gt;&lt;td <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span>&gt;'.$fields['Category:'].'&lt;/td&gt;&lt;/tr&gt;
<a name="l00368"></a>00368                                                 &lt;tr&gt;&lt;td <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span>&gt;'.$GLOBALS['LANG']-&gt;sL('LLL:EXT:lang/locallang_core.php:labels.author',1).'&lt;/td&gt;&lt;td <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span>&gt;'.$fields['Author:'].'&lt;/td&gt;&lt;/tr&gt;
<a name="l00369"></a>00369                                                 &lt;tr&gt;&lt;td <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span>&gt;'.$GLOBALS['LANG']-&gt;sL('LLL:EXT:lang/locallang_core.php:labels.note',1).'&lt;/td&gt;&lt;td <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span>&gt;'.$fields['Note:'].'&lt;/td&gt;&lt;/tr&gt;
<a name="l00370"></a>00370                                         &lt;/table&gt;
<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']-&gt;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-&gt;displayFields))     {
<a name="l00403"></a>00403                         reset($this-&gt;displayFields);
<a name="l00404"></a>00404                         $tKey = key($this-&gt;displayFields);
<a name="l00405"></a>00405                         $dispFields[$tKey]=$this-&gt;displayFields[$tKey];
<a name="l00406"></a>00406                         $GLOBALS['BE_USER']-&gt;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-&gt;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-&gt;backPath,$this-&gt;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-&gt;sortField)   {
<a name="l00440"></a>00440                         <span class="keywordflow">if</span> (in_array($this-&gt;sortField,$this-&gt;makeFieldList($table,1)))  {
<a name="l00441"></a>00441                                 $orderBy = 'ORDER BY '.$this-&gt;sortField;
<a name="l00442"></a>00442                                 <span class="keywordflow">if</span> ($this-&gt;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-&gt;iLimit ? ($this-&gt;firstElementNumber ? $this-&gt;firstElementNumber.<span class="charliteral">','</span> : '').($this-&gt;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' &amp;&amp; $this-&gt;perms_clause)?' AND '.$this-&gt;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-&gt;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' =&gt; $fieldList,
<a name="l00458"></a>00458                         'FROM' =&gt; $table,
<a name="l00459"></a>00459                         'WHERE' =&gt; $this-&gt;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' =&gt; '',
<a name="l00466"></a>00466                         'ORDERBY' =&gt; $GLOBALS['TYPO3_DB']-&gt;stripOrderBy($orderBy),
<a name="l00467"></a>00467                         'LIMIT' =&gt; $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']-&gt;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']-&gt;sql_fetch_row($result);
<a name="l00488"></a>00488                 $this-&gt;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] &amp;&amp; $this-&gt;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 =&gt; $info) {
<a name="l00512"></a>00512                                 <span class="keywordflow">if</span> ($info['config']['type']=='text' || ($info['config']['type']=='input' &amp;&amp; !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']-&gt;quoteStr($this-&gt;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-&gt;table!=$table)       {
<a name="l00538"></a>00538                         <span class="keywordflow">return</span> '&lt;a href=<span class="stringliteral">"'.htmlspecialchars($this-&gt;listURL('',$table)).'"</span>&gt;'.$code.'&lt;/a&gt;';
<a name="l00539"></a>00539                 } <span class="keywordflow">else</span> {
<a name="l00540"></a>00540                         <span class="keywordflow">return</span> '&lt;a href=<span class="stringliteral">"'.htmlspecialchars($this-&gt;listURL('','','sortField,sortRev,table')).'"</span>&gt;'.$code.'&lt;/a&gt;';
<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 = '&lt;i&gt;['.$GLOBALS['LANG']-&gt;sL('LLL:EXT:lang/locallang_core.php:labels.no_title',1).']&lt;/i&gt; - '.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']-&gt;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-&gt;fixedL));
<a name="l00563"></a>00563                 }
<a name="l00564"></a>00564 
<a name="l00565"></a>00565                 <span class="keywordflow">switch</span>((string)$this-&gt;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']-&gt;calcPerms(<a class="code" href="classt3lib__BEfunc.html#c0a110679ba0fac9af0d66f34026f378">t3lib_BEfunc::getRecord</a>('pages',$row['uid']));
<a name="l00570"></a>00570                                         $permsEdit = $localCalcPerms&amp;2;
<a name="l00571"></a>00571                                 } <span class="keywordflow">else</span> {
<a name="l00572"></a>00572                                         $permsEdit = $this-&gt;calcPerms&amp;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-&gt;id)</span>
<a name="l00576"></a>00576                                 <span class="keywordflow">if</span> ($permsEdit) {
<a name="l00577"></a>00577                                         $params='&amp;edit['.$table.']['.$row['uid'].']=edit';
<a name="l00578"></a>00578                                         $code = '&lt;a href=<span class="stringliteral">"#"</span> onclick=<span class="stringliteral">"'.htmlspecialchars(t3lib_BEfunc::editOnClick($params,'',-1)).'"</span> title=<span class="stringliteral">"'.$LANG-&gt;getLL('edit',1).'"</span>&gt;'.
<a name="l00579"></a>00579                                                         $code.
<a name="l00580"></a>00580                                                         '&lt;/a&gt;';
<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 = '&lt;a href=<span class="stringliteral">"#"</span> onclick=<span class="stringliteral">"'.htmlspecialchars(t3lib_BEfunc::viewOnClick($table=='tt_content'?$this-&gt;id.'#'.$row['uid']:$row['uid'])).'"</span> title=<span class="stringliteral">"'.$LANG-&gt;sL('LLL:EXT:lang/locallang_core.php:labels.showPage',1).'"</span>&gt;'.
<a name="l00587"></a>00587                                                         $code.
<a name="l00588"></a>00588                                                         '&lt;/a&gt;';
<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 = '&lt;a href=<span class="stringliteral">"#"</span> onclick=<span class="stringliteral">"'.htmlspecialchars('top.launchView(\''.$table.'\', \''.$row['uid'].'\'); return false;').'"</span> title=<span class="stringliteral">"'.$LANG-&gt;getLL('showInfo',1).'"</span>&gt;'.
<a name="l00594"></a>00594                                         $code.
<a name="l00595"></a>00595                                         '&lt;/a&gt;';
<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 = '&lt;a href=<span class="stringliteral">"'.htmlspecialchars($this-&gt;listURL($uid,'')).'"</span> onclick=<span class="stringliteral">"setHighlight('.$uid.')"</span>&gt;'.$code.'&lt;/a&gt;';
<a name="l00601"></a>00601                                 } <span class="keywordflow">else</span> {
<a name="l00602"></a>00602                                         $code = $this-&gt;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'] &amp;&amp; <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> '&lt;a href=<span class="stringliteral">"'.htmlspecialchars($testString).'"</span> target=<span class="stringliteral">"_blank"</span>&gt;'.$code.'&lt;/a&gt;';
<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> '&lt;a href=<span class="stringliteral">"mailto:'.htmlspecialchars($testString).'"</span> target=<span class="stringliteral">"_blank"</span>&gt;'.$code.'&lt;/a&gt;';
<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-&gt;script.
<a name="l00646"></a>00646                         '?<span class="keywordtype">id</span>='.(strcmp($altId,'')?$altId:$this-&gt;id).
<a name="l00647"></a>00647                         '&amp;table='.rawurlencode($table==-1?$this-&gt;table:$table).
<a name="l00648"></a>00648                         ($this-&gt;thumbs?'&amp;imagemode='.$this-&gt;thumbs:'').
<a name="l00649"></a>00649                         ($this-&gt;returnUrl?'&amp;returnUrl='.rawurlencode($this-&gt;returnUrl):'').
<a name="l00650"></a>00650                         ($this-&gt;searchString?'&amp;search_field='.rawurlencode($this-&gt;searchString):'').
<a name="l00651"></a>00651                         ($this-&gt;searchLevels?'&amp;search_levels='.rawurlencode($this-&gt;searchLevels):'').
<a name="l00652"></a>00652                         ($this-&gt;showLimit?'&amp;showLimit='.rawurlencode($this-&gt;showLimit):'').
<a name="l00653"></a>00653                         ((!$exclList || !<a class="code" href="classt3lib__div.html#d994a5608365c288d051d6022d4e9976">t3lib_div::inList</a>($exclList,'sortField')) &amp;&amp; $this-&gt;sortField?'&amp;sortField='.rawurlencode($this-&gt;sortField):'').
<a name="l00654"></a>00654                         ((!$exclList || !<a class="code" href="classt3lib__div.html#d994a5608365c288d051d6022d4e9976">t3lib_div::inList</a>($exclList,'sortRev')) &amp;&amp; $this-&gt;sortRev?'&amp;sortRev='.rawurlencode($this-&gt;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-&gt;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 =&gt; $fieldValue)  {
<a name="l00686"></a>00686                                 <span class="keywordflow">if</span> ($dontCheckUser ||
<a name="l00687"></a>00687                                         ((!$fieldValue['exclude'] || $BE_USER-&gt;check('non_exclude_fields',$table.<span class="charliteral">':'</span>.$fN)) &amp;&amp; $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-&gt;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-&gt;init('AND '.$perms_clause);
<a name="l00724"></a>00724                 $tree-&gt;makeHTML=0;
<a name="l00725"></a>00725                 $tree-&gt;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-&gt;getTree($id, $depth, '');
<a name="l00728"></a>00728                 }
<a name="l00729"></a>00729                 $tree-&gt;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] &amp;&amp; $TCA[$table]['ctrl']['languageField'] &amp;&amp; $TCA[$table]['ctrl']['transOrigPointerField'])     {
<a name="l00745"></a>00745                         list($localizedRecord) = $GLOBALS['TYPO3_DB']-&gt;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 = '&amp;edit['.$table.']['.$localizedRecord['uid'].']=edit';
<a name="l00757"></a>00757                                 $returnUrl = '&amp;returnUrl='.rawurlencode($this-&gt;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') &amp;&amp; $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 ?&gt;
</pre></div><?php
  include_once '../doc-typo3-funcs.php';
  get_footer();
?>