Project

General

Profile

Bug #22410 » 14050_cleaning_t3lib_recordlist.patch

Administrator Admin, 2010-11-24 14:44

View differences:

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']);
}
(47-47/93)