Bug #22410 » 14050_cleaning_t3lib_recordlist.patch
t3lib/class.t3lib_recordlist.php (revision ) | ||
---|---|---|
<?php
|
||
/***************************************************************
|
||
* Copyright notice
|
||
*
|
||
* (c) 1999-2010 Kasper Sk?rh?j (kasperYYYY@typo3.com)
|
||
* All rights reserved
|
||
*
|
||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||
* free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation; either version 2 of the License, or
|
||
* (at your option) any later version.
|
||
*
|
||
* The GNU General Public License can be found at
|
||
* http://www.gnu.org/copyleft/gpl.html.
|
||
* A copy is found in the textfile GPL.txt and important notices to the license
|
||
* from the author is found in LICENSE.txt distributed with these scripts.
|
||
*
|
||
*
|
||
* This script is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* This copyright notice MUST APPEAR in all copies of the script!
|
||
***************************************************************/
|
||
* Copyright notice
|
||
*
|
||
* (c) 1999-2010 Kasper Sk?rh?j (kasperYYYY@typo3.com)
|
||
* All rights reserved
|
||
*
|
||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||
* free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation; either version 2 of the License, or
|
||
* (at your option) any later version.
|
||
*
|
||
* The GNU General Public License can be found at
|
||
* http://www.gnu.org/copyleft/gpl.html.
|
||
* A copy is found in the textfile GPL.txt and important notices to the license
|
||
* from the author is found in LICENSE.txt distributed with these scripts.
|
||
*
|
||
*
|
||
* This script is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* This copyright notice MUST APPEAR in all copies of the script!
|
||
***************************************************************/
|
||
/**
|
||
* Library with a single function addElement that returns tablerows based on some input.
|
||
*
|
||
... | ... | |
*
|
||
*
|
||
* 80: class t3lib_recordList
|
||
* 123: function addElement($h,$icon,$data,$tdParams='',$lMargin='',$altLine='')
|
||
* 123: function addElement($h,$icon,$data,$tdParams='',$lMargin='',$altLine='')
|
||
* 198: function writeTop()
|
||
* 198: function writeTop()
|
||
* 206: function writeBottom()
|
||
* 206: function writeBottom()
|
||
* 225: function fwd_rwd_nav($table='')
|
||
* 225: function fwd_rwd_nav($table='')
|
||
* 258: function fwd_rwd_HTML($type,$pointer,$table='')
|
||
* 258: function fwd_rwd_HTML($type,$pointer,$table='')
|
||
* 284: function listURL($altId='')
|
||
* 284: function listURL($altId='')
|
||
* 294: function CBfunctions()
|
||
* 294: function CBfunctions()
|
||
* 344: function initializeLanguages()
|
||
* 344: function initializeLanguages()
|
||
* 411: function languageFlag($sys_language_uid)
|
||
* 411: function languageFlag($sys_language_uid)
|
||
*
|
||
* TOTAL FUNCTIONS: 9
|
||
* (This index is automatically created/updated by the extension "extdeveval")
|
||
... | ... | |
*/
|
||
/**
|
||
* This class is the base for listing of database records and files in the modules Web>List and File>Filelist
|
||
*
|
||
... | ... | |
class t3lib_recordList {
|
||
// Used in this class:
|
||
var $iLimit = 10; // default Max items shown
|
||
var $iLimit = 10; // default Max items shown
|
||
var $leftMargin = 0; // OBSOLETE - NOT USED ANYMORE. leftMargin
|
||
var $leftMargin = 0; // OBSOLETE - NOT USED ANYMORE. leftMargin
|
||
var $showIcon = 1;
|
||
var $no_noWrap = 0;
|
||
var $oddColumnsTDParams = ''; // Deprecated since TYPO3 4.2, remove in 4.4. If set this is <td>-params for odd columns in addElement. Used with db_layout / pages section
|
||
var $oddColumnsTDParams = ''; // Deprecated since TYPO3 4.2, remove in 4.4. If set this is <td>-params for odd columns in addElement. Used with db_layout / pages section
|
||
var $oddColumnsCssClass = ''; // If set this is <td> CSS-classname for odd columns in addElement. Used with db_layout / pages section
|
||
var $oddColumnsCssClass = ''; // If set this is <td> CSS-classname for odd columns in addElement. Used with db_layout / pages section
|
||
var $backPath='';
|
||
var $backPath = '';
|
||
var $fieldArray = Array(); // Decides the columns shown. Filled with values that refers to the keys of the data-array. $this->fieldArray[0] is the title column.
|
||
var $fieldArray = Array(); // Decides the columns shown. Filled with values that refers to the keys of the data-array. $this->fieldArray[0] is the title column.
|
||
var $addElement_tdParams = array(); // Keys are fieldnames and values are td-parameters to add in addElement(), please use $addElement_tdCSSClass for CSS-classes;
|
||
var $addElement_tdParams = array(); // Keys are fieldnames and values are td-parameters to add in addElement(), please use $addElement_tdCSSClass for CSS-classes;
|
||
var $addElement_tdCssClass = array(); // Keys are fieldnames and values are td-css-classes to add in addElement();
|
||
var $addElement_tdCssClass = array(); // Keys are fieldnames and values are td-css-classes to add in addElement();
|
||
// Not used in this class - but maybe extension classes...
|
||
var $fixedL = 30; // Max length of strings
|
||
var $fixedL = 30; // Max length of strings
|
||
var $script = '';
|
||
var $thumbScript = 'thumbs.php';
|
||
var $setLMargin=1; // Set to zero, if you don't want a left-margin with addElement function
|
||
var $setLMargin = 1; // Set to zero, if you don't want a left-margin with addElement function
|
||
var $counter=0; // Counter increased for each element. Used to index elements for the JavaScript-code that transfers to the clipboard
|
||
var $counter = 0; // Counter increased for each element. Used to index elements for the JavaScript-code that transfers to the clipboard
|
||
var $totalItems = ''; // This could be set to the total number of items. Used by the fwd_rew_navigation...
|
||
var $totalItems = ''; // This could be set to the total number of items. Used by the fwd_rew_navigation...
|
||
// Internal (used in this class.)
|
||
var $firstElementNumber=0;
|
||
var $firstElementNumber = 0;
|
||
var $eCounter=0;
|
||
var $eCounter = 0;
|
||
var $HTMLcode=''; // String with accumulated HTML content
|
||
var $HTMLcode = ''; // String with accumulated HTML content
|
||
var $pageOverlays = array(); // Contains page translation languages
|
||
var $pageOverlays = array(); // Contains page translation languages
|
||
var $languageIconTitles = array(); // Contains sys language icons and titles
|
||
var $languageIconTitles = array(); // Contains sys language icons and titles
|
||
var $translateTools; // translateTools object
|
||
var $translateTools; // translateTools object
|
||
/**
|
||
* constructor for t3lib_recordList
|
||
... | ... | |
* @param string $altLine is the HTML <img>-tag for an alternative 'gfx/ol/line.gif'-icon (used in the top)
|
||
* @return string HTML content for the table row
|
||
*/
|
||
function addElement($h, $icon, $data, $trParams = '', $lMargin = '', $altLine = '') {
|
||
function addElement($h, $icon, $data, $trParams = '', $lMargin = '', $altLine = '') {
|
||
$noWrap = ($this->no_noWrap) ? '' : ' nowrap="nowrap"';
|
||
// Start up:
|
||
$out='
|
||
$out = '
|
||
<!-- Element, begin: -->
|
||
<tr '.$trParams.'>';
|
||
<tr ' . $trParams . '>';
|
||
// Show icon and lines
|
||
if ($this->showIcon) {
|
||
if ($this->showIcon) {
|
||
$out.='
|
||
$out .= '
|
||
<td nowrap="nowrap" class="col-icon">';
|
||
if (!$h) {
|
||
if (!$h) {
|
||
$out.='<img src="clear.gif" width="1" height="8" alt="" />';
|
||
$out .= '<img src="clear.gif" width="1" height="8" alt="" />';
|
||
} else {
|
||
for ($a=0;$a<$h;$a++) {
|
||
for ($a = 0; $a < $h; $a++) {
|
||
if (!$a) {
|
||
if (!$a) {
|
||
if ($icon) $out.= $icon;
|
||
if ($icon) {
|
||
$out .= $icon;
|
||
}
|
||
} else {
|
||
}
|
||
}
|
||
}
|
||
$out.='</td>
|
||
$out .= '</td>
|
||
';
|
||
}
|
||
// Init rendering.
|
||
$colsp='';
|
||
$colsp = '';
|
||
$lastKey='';
|
||
$lastKey = '';
|
||
$c=0;
|
||
$c = 0;
|
||
$ccount=0;
|
||
$ccount = 0;
|
||
// Traverse field array which contains the data to present:
|
||
foreach ($this->fieldArray as $vKey) {
|
||
if (isset($data[$vKey])) {
|
||
if (isset($data[$vKey])) {
|
||
if ($lastKey) {
|
||
if ($lastKey) {
|
||
$cssClass = $this->addElement_tdCssClass[$lastKey];
|
||
if($this->oddColumnsCssClass && $ccount % 2 == 0) {
|
||
if ($this->oddColumnsCssClass && $ccount % 2 == 0) {
|
||
$cssClass = implode(' ', array($this->addElement_tdCssClass[$lastKey], $this->oddColumnsCssClass));
|
||
}
|
||
$out.='
|
||
$out .= '
|
||
<td'.
|
||
<td' .
|
||
$noWrap.
|
||
$noWrap .
|
||
' class="' . $cssClass . '"'.
|
||
' class="' . $cssClass . '"' .
|
||
$colsp.
|
||
$colsp .
|
||
$this->addElement_tdParams[$lastKey].
|
||
$this->addElement_tdParams[$lastKey] .
|
||
'>'.$data[$lastKey].'</td>';
|
||
'>' . $data[$lastKey] . '</td>';
|
||
}
|
||
$lastKey=$vKey;
|
||
$lastKey = $vKey;
|
||
$c=1;
|
||
$c = 1;
|
||
$ccount++;
|
||
} else {
|
||
if (!$lastKey) {$lastKey=$vKey;}
|
||
if (!$lastKey) {
|
||
$lastKey = $vKey;
|
||
}
|
||
$c++;
|
||
}
|
||
if ($c>1) {$colsp=' colspan="'.$c.'"';} else {$colsp='';}
|
||
if ($c > 1) {
|
||
$colsp = ' colspan="' . $c . '"';
|
||
} else {
|
||
$colsp = '';
|
||
}
|
||
}
|
||
}
|
||
if ($lastKey) {
|
||
$cssClass = $this->addElement_tdCssClass[$lastKey];
|
||
if($this->oddColumnsCssClass) {
|
||
if ($this->oddColumnsCssClass) {
|
||
$cssClass = implode(' ', array($this->addElement_tdCssClass[$lastKey], $this->oddColumnsCssClass));
|
||
}
|
||
$out.='
|
||
$out .= '
|
||
<td'.$noWrap.' class="' . $cssClass . '"' . $colsp.$this->addElement_tdParams[$lastKey].'>'.$data[$lastKey].'</td>'; }
|
||
<td' . $noWrap . ' class="' . $cssClass . '"' . $colsp . $this->addElement_tdParams[$lastKey] . '>' . $data[$lastKey] . '</td>';
|
||
}
|
||
// End row
|
||
$out.='
|
||
$out .= '
|
||
</tr>';
|
||
// Return row.
|
||
... | ... | |
*
|
||
* @return void
|
||
*/
|
||
function writeTop() {
|
||
function writeTop() {
|
||
}
|
||
/**
|
||
... | ... | |
*
|
||
* @return void
|
||
*/
|
||
function writeBottom() {
|
||
function writeBottom() {
|
||
$this->HTMLcode.='
|
||
$this->HTMLcode .= '
|
||
<!--
|
||
End of list table:
|
||
-->
|
||
<table border="0" cellpadding="0" cellspacing="0">';
|
||
$theIcon='<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/stopper.gif','width="18" height="16"').' alt="" />';
|
||
$theIcon = '<img' . t3lib_iconWorks::skinImg($this->backPath, 'gfx/ol/stopper.gif', 'width="18" height="16"') . ' alt="" />';
|
||
$this->HTMLcode.=$this->addElement(1,'','','',$this->leftMargin,$theIcon);
|
||
$this->HTMLcode .= $this->addElement(1, '', '', '', $this->leftMargin, $theIcon);
|
||
$this->HTMLcode.='
|
||
$this->HTMLcode .= '
|
||
</table>';
|
||
}
|
||
... | ... | |
* @param string Table name
|
||
* @return array array([boolean], [HTML]) where [boolean] is 1 for reverse element, [HTML] is the table-row code for the element
|
||
*/
|
||
function fwd_rwd_nav($table='') {
|
||
function fwd_rwd_nav($table = '') {
|
||
$code='';
|
||
$code = '';
|
||
if ($this->eCounter >= $this->firstElementNumber && $this->eCounter < $this->firstElementNumber+$this->iLimit) {
|
||
if ($this->eCounter >= $this->firstElementNumber && $this->eCounter < $this->firstElementNumber + $this->iLimit) {
|
||
if ($this->firstElementNumber && $this->eCounter==$this->firstElementNumber) {
|
||
if ($this->firstElementNumber && $this->eCounter == $this->firstElementNumber) {
|
||
// reverse
|
||
$theData = Array();
|
||
$titleCol=$this->fieldArray[0];
|
||
$titleCol = $this->fieldArray[0];
|
||
$theData[$titleCol] = $this->fwd_rwd_HTML('fwd',$this->eCounter,$table);
|
||
$theData[$titleCol] = $this->fwd_rwd_HTML('fwd', $this->eCounter, $table);
|
||
$code = $this->addElement(1, '', $theData, 'class="fwd_rwd_nav"');
|
||
}
|
||
return array(1, $code);
|
||
} else {
|
||
if ($this->eCounter==$this->firstElementNumber+$this->iLimit) {
|
||
if ($this->eCounter == $this->firstElementNumber + $this->iLimit) {
|
||
// forward
|
||
$theData = Array();
|
||
$titleCol=$this->fieldArray[0];
|
||
$titleCol = $this->fieldArray[0];
|
||
$theData[$titleCol] = $this->fwd_rwd_HTML('rwd',$this->eCounter,$table);
|
||
$theData[$titleCol] = $this->fwd_rwd_HTML('rwd', $this->eCounter, $table);
|
||
$code = $this->addElement(1, '', $theData, 'class="fwd_rwd_nav"');
|
||
}
|
||
return array(0, $code);
|
||
... | ... | |
* @return string
|
||
* @access private
|
||
*/
|
||
function fwd_rwd_HTML($type,$pointer,$table='') {
|
||
function fwd_rwd_HTML($type, $pointer, $table = '') {
|
||
$content = '';
|
||
$tParam = $table ? '&table='.rawurlencode($table) : '';
|
||
$tParam = $table ? '&table=' . rawurlencode($table) : '';
|
||
switch($type) {
|
||
switch ($type) {
|
||
case 'fwd':
|
||
$href = $this->listURL().'&pointer='.($pointer-$this->iLimit).$tParam;
|
||
$href = $this->listURL() . '&pointer=' . ($pointer - $this->iLimit) . $tParam;
|
||
$content = '<a href="'.htmlspecialchars($href).'">'.
|
||
$content = '<a href="' . htmlspecialchars($href) . '">' .
|
||
t3lib_iconWorks::getSpriteIcon('actions-move-up').
|
||
t3lib_iconWorks::getSpriteIcon('actions-move-up') .
|
||
'</a> <i>[1 - '.$pointer.']</i>';
|
||
'</a> <i>[1 - ' . $pointer . ']</i>';
|
||
break;
|
||
case 'rwd':
|
||
$href = $this->listURL().'&pointer='.$pointer.$tParam;
|
||
$href = $this->listURL() . '&pointer=' . $pointer . $tParam;
|
||
$content = '<a href="'.htmlspecialchars($href).'">'.
|
||
$content = '<a href="' . htmlspecialchars($href) . '">' .
|
||
t3lib_iconWorks::getSpriteIcon('actions-move-down').
|
||
t3lib_iconWorks::getSpriteIcon('actions-move-down') .
|
||
'</a> <i>['.($pointer+1).' - '.$this->totalItems.']</i>';
|
||
'</a> <i>[' . ($pointer + 1) . ' - ' . $this->totalItems . ']</i>';
|
||
break;
|
||
}
|
||
return $content;
|
||
... | ... | |
* @param string Alternative id value. Enter blank string for the current id ($this->id)
|
||
* @return string URL
|
||
*/
|
||
function listURL($altId='') {
|
||
function listURL($altId = '') {
|
||
return $this->script.
|
||
return $this->script .
|
||
'?id='.(strcmp($altId,'')?$altId:$this->id);
|
||
'?id=' . (strcmp($altId, '') ? $altId : $this->id);
|
||
}
|
||
/**
|
||
... | ... | |
*
|
||
* @return string
|
||
*/
|
||
function CBfunctions() {
|
||
function CBfunctions() {
|
||
return '
|
||
// checkOffCB()
|
||
function checkOffCB(listOfCBnames, link) { //
|
||
... | ... | |
*
|
||
* @return void
|
||
*/
|
||
function initializeLanguages() {
|
||
function initializeLanguages() {
|
||
global $TCA,$LANG;
|
||
global $TCA, $LANG;
|
||
// Look up page overlays:
|
||
$this->pageOverlays = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows(
|
||
'*',
|
||
'pages_language_overlay',
|
||
'pid='.intval($this->id).
|
||
'pid=' . intval($this->id) .
|
||
t3lib_BEfunc::deleteClause('pages_language_overlay').
|
||
t3lib_BEfunc::deleteClause('pages_language_overlay') .
|
||
t3lib_BEfunc::versioningPlaceholderClause('pages_language_overlay'),
|
||
t3lib_BEfunc::versioningPlaceholderClause('pages_language_overlay'),
|
||
'',
|
||
'',
|
||
'',
|
||
... | ... | |
* @param integer Sys language uid
|
||
* @return string Language icon
|
||
*/
|
||
function languageFlag($sys_language_uid) {
|
||
function languageFlag($sys_language_uid) {
|
||
$out = '';
|
||
if ($this->languageIconTitles[$sys_language_uid]['flagIcon']) {
|
||
$out .= t3lib_iconWorks::getSpriteIcon($this->languageIconTitles[$sys_language_uid]['flagIcon']);
|
||
... | ... | |
}
|
||
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_recordlist.php']) {
|
||
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_recordlist.php']) {
|
||
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_recordlist.php']);
|
||
}
|
||