Bug #22410 » 14050_cleaning_t3lib_querygenerator.patch
t3lib/class.t3lib_querygenerator.php (revision ) | ||
---|---|---|
<?php
|
||
/***************************************************************
|
||
* Copyright notice
|
||
*
|
||
* (c) 2001-2010 Christian Jul Jensen (christian@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) 2001-2010 Christian Jul Jensen (christian@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!
|
||
***************************************************************/
|
||
/**
|
||
* Class for generating front end for building queries
|
||
*
|
||
... | ... | |
*
|
||
*
|
||
* 98: class t3lib_queryGenerator
|
||
* 245: function makeFieldList()
|
||
* 245: function makeFieldList()
|
||
* 273: function init($name,$table,$fieldList='')
|
||
* 273: function init($name,$table,$fieldList='')
|
||
* 410: function setAndCleanUpExternalLists($name,$list,$force='')
|
||
* 410: function setAndCleanUpExternalLists($name,$list,$force='')
|
||
* 426: function procesData($qC='')
|
||
* 426: function procesData($qC='')
|
||
* 529: function cleanUpQueryConfig($queryConfig)
|
||
* 529: function cleanUpQueryConfig($queryConfig)
|
||
* 586: function getFormElements($subLevel=0,$queryConfig='',$parent='')
|
||
* 586: function getFormElements($subLevel=0,$queryConfig='',$parent='')
|
||
* 744: function makeOptionList($fN, $conf, $table)
|
||
* 744: function makeOptionList($fN, $conf, $table)
|
||
* 953: function printCodeArray($codeArr,$l=0)
|
||
* 953: function printCodeArray($codeArr,$l=0)
|
||
* 976: function formatQ($str)
|
||
* 976: function formatQ($str)
|
||
* 989: function mkOperatorSelect($name,$op,$draw,$submit)
|
||
* 989: function mkOperatorSelect($name,$op,$draw,$submit)
|
||
* 1011: function mkTypeSelect($name,$fieldName,$prepend='FIELD_')
|
||
* 1011: function mkTypeSelect($name,$fieldName,$prepend='FIELD_')
|
||
* 1032: function verifyType($fieldName)
|
||
* 1032: function verifyType($fieldName)
|
||
* 1049: function verifyComparison($comparison,$neg)
|
||
* 1049: function verifyComparison($comparison,$neg)
|
||
* 1068: function mkFieldToInputSelect($name,$fieldName)
|
||
* 1068: function mkFieldToInputSelect($name,$fieldName)
|
||
* 1091: function mkTableSelect($name,$cur)
|
||
* 1091: function mkTableSelect($name,$cur)
|
||
* 1113: function mkCompSelect($name,$comparison,$neg)
|
||
* 1113: function mkCompSelect($name,$comparison,$neg)
|
||
* 1131: function getSubscript($arr)
|
||
* 1131: function getSubscript($arr)
|
||
* 1146: function initUserDef()
|
||
* 1146: function initUserDef()
|
||
* 1155: function userDef()
|
||
* 1155: function userDef()
|
||
* 1164: function userDefCleanUp($queryConfig)
|
||
* 1164: function userDefCleanUp($queryConfig)
|
||
* 1175: function getQuery ($queryConfig,$pad='')
|
||
* 1175: function getQuery ($queryConfig,$pad='')
|
||
* 1205: function getQuerySingle($conf,$first)
|
||
* 1205: function getQuerySingle($conf,$first)
|
||
* 1245: function cleanInputVal($conf,$suffix='')
|
||
* 1245: function cleanInputVal($conf,$suffix='')
|
||
* 1270: function getUserDefQuery ($qcArr)
|
||
* 1270: function getUserDefQuery ($qcArr)
|
||
* 1278: function updateIcon()
|
||
* 1278: function updateIcon()
|
||
* 1287: function getLabelCol()
|
||
* 1287: function getLabelCol()
|
||
* 1299: function makeSelectorTable($modSettings,$enableList='table,fields,query,group,order,limit')
|
||
* 1299: function makeSelectorTable($modSettings,$enableList='table,fields,query,group,order,limit')
|
||
* 1431: function getTreeList($id, $depth, $begin=0, $perms_clause)
|
||
* 1431: function getTreeList($id, $depth, $begin=0, $perms_clause)
|
||
* 1465: function getSelectQuery($qString = '', $fN = '')
|
||
* 1465: function getSelectQuery($qString = '', $fN = '')
|
||
* 1504: function JSbottom($formname='forms[0]')
|
||
* 1504: function JSbottom($formname='forms[0]')
|
||
* 1510: function typo3FormFieldSet(theField, evallist, is_in, checkbox, checkboxValue)
|
||
* 1510: function typo3FormFieldSet(theField, evallist, is_in, checkbox, checkboxValue)
|
||
* 1528: function typo3FormFieldGet(theField, evallist, is_in, checkbox, checkboxValue, checkbox_off)
|
||
* 1528: function typo3FormFieldGet(theField, evallist, is_in, checkbox, checkboxValue, checkbox_off)
|
||
*
|
||
* TOTAL FUNCTIONS: 32
|
||
* (This index is automatically created/updated by the extension "extdeveval")
|
||
... | ... | |
*/
|
||
/**
|
||
* Class for generating front end for building queries
|
||
*
|
||
... | ... | |
* @package TYPO3
|
||
* @subpackage t3lib
|
||
*/
|
||
class t3lib_queryGenerator {
|
||
class t3lib_queryGenerator {
|
||
var $lang = array(
|
||
'OR' => 'or',
|
||
'AND' => 'and',
|
||
'comparison' => array(
|
||
// Type = text offset = 0
|
||
// Type = text offset = 0
|
||
'0_' => 'contains',
|
||
'1_' => 'does not contain',
|
||
'2_' => 'starts with',
|
||
... | ... | |
'5_' => 'does not end with',
|
||
'6_' => 'equals',
|
||
'7_' => 'does not equal',
|
||
// Type = number , offset = 32
|
||
// Type = number , offset = 32
|
||
'32_' => 'equals',
|
||
'33_' => 'does not equal',
|
||
'34_' => 'is greater than',
|
||
... | ... | |
'boolean' => 4,
|
||
'binary' => 5
|
||
);
|
||
var $noWrap=' nowrap';
|
||
var $noWrap = ' nowrap';
|
||
var $name; // Form data name prefix
|
||
var $name; // Form data name prefix
|
||
var $table; // table for the query
|
||
var $table; // table for the query
|
||
var $fieldList; // field list
|
||
var $fieldList; // field list
|
||
var $fields = array(); // Array of the fields possible
|
||
var $fields = array(); // Array of the fields possible
|
||
var $extFieldLists = array();
|
||
var $queryConfig=array(); // The query config
|
||
var $queryConfig = array(); // The query config
|
||
var $enablePrefix=0;
|
||
var $enablePrefix = 0;
|
||
var $enableQueryParts = 0;
|
||
var $extJSCODE='';
|
||
var $extJSCODE = '';
|
||
protected $formName = '';
|
||
/**
|
||
* @return [type] ...
|
||
*/
|
||
function makeFieldList() {
|
||
function makeFieldList() {
|
||
global $TCA;
|
||
$fieldListArr = array();
|
||
if (is_array($TCA[$this->table])) {
|
||
if (is_array($TCA[$this->table])) {
|
||
t3lib_div::loadTCA($this->table);
|
||
foreach ($TCA[$this->table]['columns'] as $fN => $value) {
|
||
$fieldListArr[]=$fN;
|
||
$fieldListArr[] = $fN;
|
||
}
|
||
$fieldListArr[]='uid';
|
||
$fieldListArr[] = 'uid';
|
||
$fieldListArr[]='pid';
|
||
$fieldListArr[] = 'pid';
|
||
$fieldListArr[]='deleted';
|
||
$fieldListArr[] = 'deleted';
|
||
if ($TCA[$this->table]['ctrl']['tstamp']) $fieldListArr[]=$TCA[$this->table]['ctrl']['tstamp'];
|
||
if ($TCA[$this->table]['ctrl']['crdate']) $fieldListArr[]=$TCA[$this->table]['ctrl']['crdate'];
|
||
if ($TCA[$this->table]['ctrl']['cruser_id']) $fieldListArr[]=$TCA[$this->table]['ctrl']['cruser_id'];
|
||
if ($TCA[$this->table]['ctrl']['sortby']) $fieldListArr[]=$TCA[$this->table]['ctrl']['sortby'];
|
||
if ($TCA[$this->table]['ctrl']['tstamp']) {
|
||
$fieldListArr[] = $TCA[$this->table]['ctrl']['tstamp'];
|
||
}
|
||
}
|
||
if ($TCA[$this->table]['ctrl']['crdate']) {
|
||
$fieldListArr[] = $TCA[$this->table]['ctrl']['crdate'];
|
||
}
|
||
if ($TCA[$this->table]['ctrl']['cruser_id']) {
|
||
$fieldListArr[] = $TCA[$this->table]['ctrl']['cruser_id'];
|
||
}
|
||
if ($TCA[$this->table]['ctrl']['sortby']) {
|
||
$fieldListArr[] = $TCA[$this->table]['ctrl']['sortby'];
|
||
}
|
||
}
|
||
return implode(',',$fieldListArr);
|
||
return implode(',', $fieldListArr);
|
||
}
|
||
/**
|
||
... | ... | |
* @param [type] $fieldList: ...
|
||
* @return [type] ...
|
||
*/
|
||
function init($name,$table,$fieldList='') {
|
||
function init($name, $table, $fieldList = '') {
|
||
global $TCA;
|
||
// Analysing the fields in the table.
|
||
if (is_array($TCA[$table])) {
|
||
if (is_array($TCA[$table])) {
|
||
t3lib_div::loadTCA($table);
|
||
$this->name = $name;
|
||
$this->table = $table;
|
||
$this->fieldList = $fieldList ? $fieldList : $this->makeFieldList();
|
||
$fieldArr = t3lib_div::trimExplode(',',$this->fieldList,1);
|
||
$fieldArr = t3lib_div::trimExplode(',', $this->fieldList, 1);
|
||
foreach ($fieldArr as $fN) {
|
||
$fC = $TCA[$this->table]['columns'][$fN];
|
||
$this->fields[$fN] = $fC['config'];
|
||
$this->fields[$fN]['exclude'] = $fC['exclude'];
|
||
if (is_array($fC) && $fC['label']) {
|
||
if (is_array($fC) && $fC['label']) {
|
||
$this->fields[$fN]['label'] = rtrim(trim($GLOBALS['LANG']->sL($fC['label'])), ':');
|
||
switch ($this->fields[$fN]['type']) {
|
||
switch ($this->fields[$fN]['type']) {
|
||
case 'input':
|
||
if (preg_match('/int|year/i', $this->fields[$fN]['eval'])) {
|
||
if (preg_match('/int|year/i', $this->fields[$fN]['eval'])) {
|
||
$this->fields[$fN]['type']='number';
|
||
$this->fields[$fN]['type'] = 'number';
|
||
} elseif (preg_match('/time/i', $this->fields[$fN]['eval'])) {
|
||
} elseif (preg_match('/time/i', $this->fields[$fN]['eval'])) {
|
||
$this->fields[$fN]['type'] = 'time';
|
||
} elseif (preg_match('/date/i', $this->fields[$fN]['eval'])) {
|
||
} elseif (preg_match('/date/i', $this->fields[$fN]['eval'])) {
|
||
$this->fields[$fN]['type']='date';
|
||
$this->fields[$fN]['type'] = 'date';
|
||
} else {
|
||
$this->fields[$fN]['type']='text';
|
||
$this->fields[$fN]['type'] = 'text';
|
||
}
|
||
break;
|
||
break;
|
||
case 'check':
|
||
if (!$this->fields[$fN]['items']) {
|
||
if (!$this->fields[$fN]['items']) {
|
||
$this->fields[$fN]['type'] = 'boolean';
|
||
} else {
|
||
$this->fields[$fN]['type'] = 'binary';
|
||
}
|
||
break;
|
||
break;
|
||
case 'radio':
|
||
$this->fields[$fN]['type'] = 'multiple';
|
||
break;
|
||
break;
|
||
case 'select':
|
||
$this->fields[$fN]['type'] = 'multiple';
|
||
if ($this->fields[$fN]['foreign_table']) {
|
||
if ($this->fields[$fN]['foreign_table']) {
|
||
$this->fields[$fN]['type'] = 'relation';
|
||
}
|
||
if ($this->fields[$fN]['special']) {
|
||
if ($this->fields[$fN]['special']) {
|
||
$this->fields[$fN]['type'] = 'text';
|
||
}
|
||
break;
|
||
break;
|
||
case 'group':
|
||
$this->fields[$fN]['type'] = 'files';
|
||
if ($this->fields[$fN]['internal_type'] == 'db') {
|
||
if ($this->fields[$fN]['internal_type'] == 'db') {
|
||
$this->fields[$fN]['type'] = 'relation';
|
||
}
|
||
break;
|
||
break;
|
||
case 'user':
|
||
case 'flex':
|
||
case 'passthrough':
|
||
case 'none':
|
||
case 'text':
|
||
default:
|
||
$this->fields[$fN]['type']='text';
|
||
$this->fields[$fN]['type'] = 'text';
|
||
break;
|
||
break;
|
||
}
|
||
} else {
|
||
$this->fields[$fN]['label']='[FIELD: '.$fN.']';
|
||
$this->fields[$fN]['label'] = '[FIELD: ' . $fN . ']';
|
||
switch ($fN) {
|
||
switch ($fN) {
|
||
case 'pid':
|
||
$this->fields[$fN]['type'] = 'relation';
|
||
$this->fields[$fN]['allowed'] = 'pages';
|
||
break;
|
||
break;
|
||
case 'cruser_id':
|
||
$this->fields[$fN]['type'] = 'relation';
|
||
$this->fields[$fN]['allowed'] = 'be_users';
|
||
break;
|
||
break;
|
||
case 'tstamp':
|
||
case 'crdate':
|
||
$this->fields[$fN]['type'] = 'time';
|
||
break;
|
||
break;
|
||
case 'deleted':
|
||
$this->fields[$fN]['type'] = 'boolean';
|
||
break;
|
||
break;
|
||
default:
|
||
$this->fields[$fN]['type'] = 'number';
|
||
break;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $force: ...
|
||
* @return [type] ...
|
||
*/
|
||
function setAndCleanUpExternalLists($name,$list,$force='') {
|
||
function setAndCleanUpExternalLists($name, $list, $force = '') {
|
||
$fields = array_unique(t3lib_div::trimExplode(',',$list.','.$force,1));
|
||
$fields = array_unique(t3lib_div::trimExplode(',', $list . ',' . $force, 1));
|
||
$reList=array();
|
||
$reList = array();
|
||
foreach ($fields as $fN) {
|
||
if ($this->fields[$fN]) $reList[]=$fN;
|
||
if ($this->fields[$fN]) {
|
||
$reList[] = $fN;
|
||
}
|
||
}
|
||
}
|
||
$this->extFieldLists[$name]=implode(',',$reList);
|
||
$this->extFieldLists[$name] = implode(',', $reList);
|
||
}
|
||
/**
|
||
... | ... | |
* @param [type] $qC: ...
|
||
* @return [type] ...
|
||
*/
|
||
function procesData($qC='') {
|
||
function procesData($qC = '') {
|
||
$this->queryConfig = $qC;
|
||
$POST = t3lib_div::_POST();
|
||
// if delete...
|
||
// if delete...
|
||
if($POST['qG_del']) {
|
||
if ($POST['qG_del']) {
|
||
//initialize array to work on, save special parameters
|
||
//initialize array to work on, save special parameters
|
||
$ssArr = $this->getSubscript($POST['qG_del']);
|
||
$workArr =& $this->queryConfig;
|
||
for($i=0;$i<sizeof($ssArr)-1;$i++) {
|
||
for ($i = 0; $i < sizeof($ssArr) - 1; $i++) {
|
||
$workArr =& $workArr[$ssArr[$i]];
|
||
}
|
||
// delete the entry and move the other entries
|
||
// delete the entry and move the other entries
|
||
unset($workArr[$ssArr[$i]]);
|
||
for($j=$ssArr[$i];$j<sizeof($workArr);$j++) {
|
||
for ($j = $ssArr[$i]; $j < sizeof($workArr); $j++) {
|
||
$workArr[$j] = $workArr[$j+1];
|
||
$workArr[$j] = $workArr[$j + 1];
|
||
unset($workArr[$j+1]);
|
||
unset($workArr[$j + 1]);
|
||
}
|
||
}
|
||
// if insert...
|
||
// if insert...
|
||
if($POST['qG_ins']) {
|
||
if ($POST['qG_ins']) {
|
||
//initialize array to work on, save special parameters
|
||
//initialize array to work on, save special parameters
|
||
$ssArr = $this->getSubscript($POST['qG_ins']);
|
||
$workArr =& $this->queryConfig;
|
||
for($i=0;$i<sizeof($ssArr)-1;$i++) {
|
||
for ($i = 0; $i < sizeof($ssArr) - 1; $i++) {
|
||
$workArr =& $workArr[$ssArr[$i]];
|
||
}
|
||
// move all entries above position where new entry is to be inserted
|
||
// move all entries above position where new entry is to be inserted
|
||
for($j=sizeof($workArr);$j>$ssArr[$i];$j--) {
|
||
for ($j = sizeof($workArr); $j > $ssArr[$i]; $j--) {
|
||
$workArr[$j] = $workArr[$j-1];
|
||
$workArr[$j] = $workArr[$j - 1];
|
||
}
|
||
//clear new entry position
|
||
//clear new entry position
|
||
unset($workArr[$ssArr[$i]+1]);
|
||
unset($workArr[$ssArr[$i] + 1]);
|
||
$workArr[$ssArr[$i]+1]['type'] = 'FIELD_';
|
||
$workArr[$ssArr[$i] + 1]['type'] = 'FIELD_';
|
||
}
|
||
// if move up...
|
||
// if move up...
|
||
if($POST['qG_up']) {
|
||
if ($POST['qG_up']) {
|
||
//initialize array to work on
|
||
//initialize array to work on
|
||
$ssArr = $this->getSubscript($POST['qG_up']);
|
||
$workArr =& $this->queryConfig;
|
||
for($i=0;$i<sizeof($ssArr)-1;$i++) {
|
||
for ($i = 0; $i < sizeof($ssArr) - 1; $i++) {
|
||
$workArr =& $workArr[$ssArr[$i]];
|
||
}
|
||
//swap entries
|
||
//swap entries
|
||
$qG_tmp = $workArr[$ssArr[$i]];
|
||
$workArr[$ssArr[$i]] = $workArr[$ssArr[$i]-1];
|
||
$workArr[$ssArr[$i]] = $workArr[$ssArr[$i] - 1];
|
||
$workArr[$ssArr[$i]-1] = $qG_tmp;
|
||
$workArr[$ssArr[$i] - 1] = $qG_tmp;
|
||
}
|
||
// if new level...
|
||
// if new level...
|
||
if($POST['qG_nl']) {
|
||
if ($POST['qG_nl']) {
|
||
//initialize array to work on
|
||
//initialize array to work on
|
||
$ssArr = $this->getSubscript($POST['qG_nl']);
|
||
$workArr =& $this->queryConfig;
|
||
for($i=0;$i<sizeof($ssArr)-1;$i++) {
|
||
for ($i = 0; $i < sizeof($ssArr) - 1; $i++) {
|
||
$workArr =& $workArr[$ssArr[$i]];
|
||
}
|
||
// Do stuff:
|
||
// Do stuff:
|
||
$tempEl = $workArr[$ssArr[$i]];
|
||
if (is_array($tempEl)) {
|
||
if (is_array($tempEl)) {
|
||
if ($tempEl['type']!='newlevel') {
|
||
if ($tempEl['type'] != 'newlevel') {
|
||
$workArr[$ssArr[$i]]=array(
|
||
$workArr[$ssArr[$i]] = array(
|
||
'type' => 'newlevel',
|
||
'operator' => $tempEl['operator'],
|
||
'nl' => array($tempEl)
|
||
... | ... | |
}
|
||
}
|
||
// if collapse level...
|
||
// if collapse level...
|
||
if($POST['qG_remnl']) {
|
||
if ($POST['qG_remnl']) {
|
||
//initialize array to work on
|
||
//initialize array to work on
|
||
$ssArr = $this->getSubscript($POST['qG_remnl']);
|
||
$workArr =& $this->queryConfig;
|
||
for($i=0;$i<sizeof($ssArr)-1;$i++) {
|
||
for ($i = 0; $i < sizeof($ssArr) - 1; $i++) {
|
||
$workArr =& $workArr[$ssArr[$i]];
|
||
}
|
||
// Do stuff:
|
||
// Do stuff:
|
||
$tempEl = $workArr[$ssArr[$i]];
|
||
if (is_array($tempEl)) {
|
||
if (is_array($tempEl)) {
|
||
if ($tempEl['type']=='newlevel') {
|
||
if ($tempEl['type'] == 'newlevel') {
|
||
$a1 = array_slice($workArr,0,$ssArr[$i]);
|
||
$a1 = array_slice($workArr, 0, $ssArr[$i]);
|
||
$a2 = array_slice($workArr,$ssArr[$i]);
|
||
$a2 = array_slice($workArr, $ssArr[$i]);
|
||
array_shift($a2);
|
||
$a3 = $tempEl['nl'];
|
||
$a3[0]['operator'] = $tempEl['operator'];
|
||
$workArr=array_merge($a1,$a3,$a2);
|
||
$workArr = array_merge($a1, $a3, $a2);
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $queryConfig: ...
|
||
* @return [type] ...
|
||
*/
|
||
function cleanUpQueryConfig($queryConfig) {
|
||
function cleanUpQueryConfig($queryConfig) {
|
||
//since we dont traverse the array using numeric keys in the upcoming whileloop make sure it's fresh and clean before displaying
|
||
//since we dont traverse the array using numeric keys in the upcoming whileloop make sure it's fresh and clean before displaying
|
||
if (is_array($queryConfig)) {
|
||
if (is_array($queryConfig)) {
|
||
ksort($queryConfig);
|
||
} else {
|
||
//queryConfig should never be empty!
|
||
//queryConfig should never be empty!
|
||
if(!$queryConfig[0] || !$queryConfig[0]['type']) $queryConfig[0] = array('type'=>'FIELD_');
|
||
if (!$queryConfig[0] || !$queryConfig[0]['type']) {
|
||
$queryConfig[0] = array('type' => 'FIELD_');
|
||
}
|
||
}
|
||
}
|
||
// Traverse:
|
||
$c=0;
|
||
$c = 0;
|
||
$arrCount=0;
|
||
$arrCount = 0;
|
||
foreach ($queryConfig as $key => $conf) {
|
||
if(substr($conf['type'],0,6)=='FIELD_') {
|
||
if (substr($conf['type'], 0, 6) == 'FIELD_') {
|
||
$fName = substr($conf['type'],6);
|
||
$fName = substr($conf['type'], 6);
|
||
$fType = $this->fields[$fName]['type'];
|
||
} elseif($conf['type']=='newlevel') {
|
||
} elseif ($conf['type'] == 'newlevel') {
|
||
$fType = $conf['type'];
|
||
} else {
|
||
$fType = 'ignore';
|
||
}
|
||
// debug($fType);
|
||
// debug($fType);
|
||
switch($fType) {
|
||
switch ($fType) {
|
||
case 'newlevel':
|
||
if(!$queryConfig[$key]['nl']) $queryConfig[$key]['nl'][0]['type'] = 'FIELD_';
|
||
if (!$queryConfig[$key]['nl']) {
|
||
$queryConfig[$key]['nl'][0]['type'] = 'FIELD_';
|
||
}
|
||
$queryConfig[$key]['nl']=$this->cleanUpQueryConfig($queryConfig[$key]['nl']);
|
||
$queryConfig[$key]['nl'] = $this->cleanUpQueryConfig($queryConfig[$key]['nl']);
|
||
break;
|
||
break;
|
||
case 'userdef':
|
||
$queryConfig[$key]=$this->userDefCleanUp($queryConfig[$key]);
|
||
$queryConfig[$key] = $this->userDefCleanUp($queryConfig[$key]);
|
||
break;
|
||
break;
|
||
case 'ignore':
|
||
default:
|
||
// debug($queryConfig[$key]);
|
||
// debug($queryConfig[$key]);
|
||
$verifiedName=$this->verifyType($fName);
|
||
$verifiedName = $this->verifyType($fName);
|
||
$queryConfig[$key]['type']='FIELD_'.$this->verifyType($verifiedName);
|
||
$queryConfig[$key]['type'] = 'FIELD_' . $this->verifyType($verifiedName);
|
||
if($conf['comparison'] >> 5 != $this->comp_offsets[$fType]) $conf['comparison'] = $this->comp_offsets[$fType] << 5;
|
||
if ($conf['comparison'] >> 5 != $this->comp_offsets[$fType]) {
|
||
$conf['comparison'] = $this->comp_offsets[$fType] << 5;
|
||
}
|
||
$queryConfig[$key]['comparison']=$this->verifyComparison($conf['comparison'],$conf['negate']?1:0);
|
||
$queryConfig[$key]['comparison'] = $this->verifyComparison($conf['comparison'], $conf['negate'] ? 1 : 0);
|
||
$queryConfig[$key]['inputValue']=$this->cleanInputVal($queryConfig[$key]);
|
||
$queryConfig[$key]['inputValue'] = $this->cleanInputVal($queryConfig[$key]);
|
||
$queryConfig[$key]['inputValue1']=$this->cleanInputVal($queryConfig[$key],1);
|
||
$queryConfig[$key]['inputValue1'] = $this->cleanInputVal($queryConfig[$key], 1);
|
||
// debug($queryConfig[$key]);
|
||
break;
|
||
// debug($queryConfig[$key]);
|
||
break;
|
||
}
|
||
}
|
||
return $queryConfig;
|
||
... | ... | |
* @param [type] $parent: ...
|
||
* @return [type] ...
|
||
*/
|
||
function getFormElements($subLevel=0,$queryConfig='',$parent='') {
|
||
function getFormElements($subLevel = 0, $queryConfig = '', $parent = '') {
|
||
$codeArr=array();
|
||
$codeArr = array();
|
||
if (!is_array($queryConfig)) $queryConfig=$this->queryConfig;
|
||
if (!is_array($queryConfig)) {
|
||
$queryConfig = $this->queryConfig;
|
||
}
|
||
$c=0;
|
||
$c = 0;
|
||
$arrCount=0;
|
||
$arrCount = 0;
|
||
$loopcount = 0;
|
||
foreach ($queryConfig as $key => $conf) {
|
||
$subscript = $parent.'['.$key.']';
|
||
$subscript = $parent . '[' . $key . ']';
|
||
$lineHTML = '';
|
||
$lineHTML.=$this->mkOperatorSelect($this->name.$subscript,$conf['operator'],$c,($conf['type']!='FIELD_'));
|
||
$lineHTML .= $this->mkOperatorSelect($this->name . $subscript, $conf['operator'], $c, ($conf['type'] != 'FIELD_'));
|
||
if(substr($conf['type'],0,6)=='FIELD_') {
|
||
if (substr($conf['type'], 0, 6) == 'FIELD_') {
|
||
$fName = substr($conf['type'],6);
|
||
$fName = substr($conf['type'], 6);
|
||
$this->fieldName = $fName;
|
||
$fType = $this->fields[$fName]['type'];
|
||
if($conf['comparison'] >> 5 != $this->comp_offsets[$fType]) $conf['comparison'] = $this->comp_offsets[$fType] << 5;
|
||
if ($conf['comparison'] >> 5 != $this->comp_offsets[$fType]) {
|
||
$conf['comparison'] = $this->comp_offsets[$fType] << 5;
|
||
}
|
||
//nasty nasty...
|
||
//make sure queryConfig contains _actual_ comparevalue.
|
||
//mkCompSelect don't care, but getQuery does.
|
||
//nasty nasty...
|
||
//make sure queryConfig contains _actual_ comparevalue.
|
||
//mkCompSelect don't care, but getQuery does.
|
||
$queryConfig[$key]['comparison'] += (isset($conf['negate'])-($conf['comparison']%2));
|
||
$queryConfig[$key]['comparison'] += (isset($conf['negate']) - ($conf['comparison'] % 2));
|
||
} elseif($conf['type']=='newlevel') {
|
||
} elseif ($conf['type'] == 'newlevel') {
|
||
$fType = $conf['type'];
|
||
} else {
|
||
$fType = 'ignore';
|
||
}
|
||
switch($fType) {
|
||
switch ($fType) {
|
||
case 'ignore':
|
||
break;
|
||
break;
|
||
case 'newlevel':
|
||
if(!$queryConfig[$key]['nl']) $queryConfig[$key]['nl'][0]['type'] = 'FIELD_';
|
||
if (!$queryConfig[$key]['nl']) {
|
||
$queryConfig[$key]['nl'][0]['type'] = 'FIELD_';
|
||
}
|
||
$lineHTML.='<input type="hidden" name="'.$this->name.$subscript.'[type]" value="newlevel">';
|
||
$lineHTML .= '<input type="hidden" name="' . $this->name . $subscript . '[type]" value="newlevel">';
|
||
$codeArr[$arrCount]['sub'] = $this->getFormElements($subLevel+1,$queryConfig[$key]['nl'],$subscript.'[nl]');
|
||
$codeArr[$arrCount]['sub'] = $this->getFormElements($subLevel + 1, $queryConfig[$key]['nl'], $subscript . '[nl]');
|
||
break;
|
||
break;
|
||
case 'userdef':
|
||
$lineHTML.=$this->userDef($this->name.$subscript,$conf,$fName,$fType);
|
||
$lineHTML .= $this->userDef($this->name . $subscript, $conf, $fName, $fType);
|
||
break;
|
||
break;
|
||
case 'date':
|
||
$lineHTML.=$this->mkTypeSelect($this->name.$subscript.'[type]',$fName);
|
||
$lineHTML .= $this->mkTypeSelect($this->name . $subscript . '[type]', $fName);
|
||
$lineHTML.=$this->mkCompSelect($this->name.$subscript.'[comparison]',$conf['comparison'],$conf['negate']?1:0);
|
||
$lineHTML .= $this->mkCompSelect($this->name . $subscript . '[comparison]', $conf['comparison'], $conf['negate'] ? 1 : 0);
|
||
$lineHTML.='<input type="checkbox" class="checkbox"' . ($conf['negate']?' checked':'').' name="'.$this->name.$subscript.'[negate]'.'" onClick="submit();">';
|
||
$lineHTML .= '<input type="checkbox" class="checkbox"' . ($conf['negate'] ? ' checked' : '') . ' name="' . $this->name . $subscript . '[negate]' . '" onClick="submit();">';
|
||
if ($conf['comparison']==100 || $conf['comparison']==101) { // between
|
||
if ($conf['comparison'] == 100 || $conf['comparison'] == 101) { // between
|
||
$lineHTML.='<input type="text" name="'.$this->name.$subscript.'[inputValue]_hr'.'" value="'.strftime('%e-%m-%Y', $conf['inputValue']).'" '.$GLOBALS['TBE_TEMPLATE']->formWidth(10).' onChange="typo3form.fieldGet(\''.$this->name.$subscript.'[inputValue]\', \'date\', \'\', 0,0);"><input type="hidden" value="'.htmlspecialchars($conf['inputValue']).'" name="'.$this->name.$subscript.'[inputValue]'.'">';
|
||
$lineHTML .= '<input type="text" name="' . $this->name . $subscript . '[inputValue]_hr' . '" value="' . strftime('%e-%m-%Y', $conf['inputValue']) . '" ' . $GLOBALS['TBE_TEMPLATE']->formWidth(10) . ' onChange="typo3form.fieldGet(\'' . $this->name . $subscript . '[inputValue]\', \'date\', \'\', 0,0);"><input type="hidden" value="' . htmlspecialchars($conf['inputValue']) . '" name="' . $this->name . $subscript . '[inputValue]' . '">';
|
||
$lineHTML.='<input type="text" name="'.$this->name.$subscript.'[inputValue1]_hr'.'" value="'.strftime('%e-%m-%Y', $conf['inputValue1']).'" '.$GLOBALS['TBE_TEMPLATE']->formWidth(10).' onChange="typo3form.fieldGet(\''.$this->name.$subscript.'[inputValue1]\', \'date\', \'\', 0,0);"><input type="hidden" value="'.htmlspecialchars($conf['inputValue1']).'" name="'.$this->name.$subscript.'[inputValue1]'.'">';
|
||
$lineHTML .= '<input type="text" name="' . $this->name . $subscript . '[inputValue1]_hr' . '" value="' . strftime('%e-%m-%Y', $conf['inputValue1']) . '" ' . $GLOBALS['TBE_TEMPLATE']->formWidth(10) . ' onChange="typo3form.fieldGet(\'' . $this->name . $subscript . '[inputValue1]\', \'date\', \'\', 0,0);"><input type="hidden" value="' . htmlspecialchars($conf['inputValue1']) . '" name="' . $this->name . $subscript . '[inputValue1]' . '">';
|
||
$this->extJSCODE.='typo3form.fieldSet("'.$this->name.$subscript.'[inputValue]", "date", "", 0,0);';
|
||
$this->extJSCODE .= 'typo3form.fieldSet("' . $this->name . $subscript . '[inputValue]", "date", "", 0,0);';
|
||
$this->extJSCODE.='typo3form.fieldSet("'.$this->name.$subscript.'[inputValue1]", "date", "", 0,0);';
|
||
$this->extJSCODE .= 'typo3form.fieldSet("' . $this->name . $subscript . '[inputValue1]", "date", "", 0,0);';
|
||
} else {
|
||
$lineHTML.='<input type="text" name="'.$this->name.$subscript.'[inputValue]_hr'.'" value="'.strftime('%e-%m-%Y', $conf['inputValue']).'" '.$GLOBALS['TBE_TEMPLATE']->formWidth(10).' onChange="typo3form.fieldGet(\''.$this->name.$subscript.'[inputValue]\', \'date\', \'\', 0,0);"><input type="hidden" value="'.htmlspecialchars($conf['inputValue']).'" name="'.$this->name.$subscript.'[inputValue]'.'">';
|
||
$lineHTML .= '<input type="text" name="' . $this->name . $subscript . '[inputValue]_hr' . '" value="' . strftime('%e-%m-%Y', $conf['inputValue']) . '" ' . $GLOBALS['TBE_TEMPLATE']->formWidth(10) . ' onChange="typo3form.fieldGet(\'' . $this->name . $subscript . '[inputValue]\', \'date\', \'\', 0,0);"><input type="hidden" value="' . htmlspecialchars($conf['inputValue']) . '" name="' . $this->name . $subscript . '[inputValue]' . '">';
|
||
$this->extJSCODE.='typo3form.fieldSet("'.$this->name.$subscript.'[inputValue]", "date", "", 0,0);';
|
||
$this->extJSCODE .= 'typo3form.fieldSet("' . $this->name . $subscript . '[inputValue]", "date", "", 0,0);';
|
||
}
|
||
break;
|
||
break;
|
||
case 'time':
|
||
$lineHTML.=$this->mkTypeSelect($this->name.$subscript.'[type]', $fName);
|
||
$lineHTML .= $this->mkTypeSelect($this->name . $subscript . '[type]', $fName);
|
||
$lineHTML.=$this->mkCompSelect($this->name.$subscript.'[comparison]', $conf['comparison'], $conf['negate']?1:0);
|
||
$lineHTML .= $this->mkCompSelect($this->name . $subscript . '[comparison]', $conf['comparison'], $conf['negate'] ? 1 : 0);
|
||
$lineHTML.='<input type="checkbox" class="checkbox"'.($conf['negate']?' checked':'').' name="'.$this->name.$subscript.'[negate]'.'" onClick="submit();">';
|
||
$lineHTML .= '<input type="checkbox" class="checkbox"' . ($conf['negate'] ? ' checked' : '') . ' name="' . $this->name . $subscript . '[negate]' . '" onClick="submit();">';
|
||
if ($conf['comparison']==100 || $conf['comparison']==101) { // between:
|
||
if ($conf['comparison'] == 100 || $conf['comparison'] == 101) { // between:
|
||
$lineHTML.='<input type="text" name="'.$this->name.$subscript.'[inputValue]_hr'.'" value="'.strftime('%H:%M %e-%m-%Y', $conf['inputValue']).'" '.$GLOBALS['TBE_TEMPLATE']->formWidth(10).' onChange="typo3form.fieldGet(\''.$this->name.$subscript.'[inputValue]\', \'datetime\', \'\', 0,0);"><input type="hidden" value="'.htmlspecialchars($conf['inputValue']).'" name="'.$this->name.$subscript.'[inputValue]'.'">';
|
||
$lineHTML .= '<input type="text" name="' . $this->name . $subscript . '[inputValue]_hr' . '" value="' . strftime('%H:%M %e-%m-%Y', $conf['inputValue']) . '" ' . $GLOBALS['TBE_TEMPLATE']->formWidth(10) . ' onChange="typo3form.fieldGet(\'' . $this->name . $subscript . '[inputValue]\', \'datetime\', \'\', 0,0);"><input type="hidden" value="' . htmlspecialchars($conf['inputValue']) . '" name="' . $this->name . $subscript . '[inputValue]' . '">';
|
||
$lineHTML.='<input type="text" name="'.$this->name.$subscript.'[inputValue1]_hr'.'" value="'.strftime('%H:%M %e-%m-%Y', $conf['inputValue1']).'" '.$GLOBALS['TBE_TEMPLATE']->formWidth(10).' onChange="typo3form.fieldGet(\''.$this->name.$subscript.'[inputValue1]\', \'datetime\', \'\', 0,0);"><input type="hidden" value="'.htmlspecialchars($conf['inputValue1']).'" name="'.$this->name.$subscript.'[inputValue1]'.'">';
|
||
$lineHTML .= '<input type="text" name="' . $this->name . $subscript . '[inputValue1]_hr' . '" value="' . strftime('%H:%M %e-%m-%Y', $conf['inputValue1']) . '" ' . $GLOBALS['TBE_TEMPLATE']->formWidth(10) . ' onChange="typo3form.fieldGet(\'' . $this->name . $subscript . '[inputValue1]\', \'datetime\', \'\', 0,0);"><input type="hidden" value="' . htmlspecialchars($conf['inputValue1']) . '" name="' . $this->name . $subscript . '[inputValue1]' . '">';
|
||
$this->extJSCODE.='typo3form.fieldSet("'.$this->name.$subscript.'[inputValue]", "datetime", "", 0,0);';
|
||
$this->extJSCODE .= 'typo3form.fieldSet("' . $this->name . $subscript . '[inputValue]", "datetime", "", 0,0);';
|
||
$this->extJSCODE.='typo3form.fieldSet("'.$this->name.$subscript.'[inputValue1]", "datetime", "", 0,0);';
|
||
$this->extJSCODE .= 'typo3form.fieldSet("' . $this->name . $subscript . '[inputValue1]", "datetime", "", 0,0);';
|
||
} else {
|
||
$lineHTML.='<input type="text" name="'.$this->name.$subscript.'[inputValue]_hr'.'" value="'.strftime('%H:%M %e-%m-%Y', intval($conf['inputValue'])).'" '.$GLOBALS['TBE_TEMPLATE']->formWidth(10).' onChange="typo3form.fieldGet(\''.$this->name.$subscript.'[inputValue]\', \'datetime\', \'\', 0,0);"><input type="hidden" value="'.htmlspecialchars($conf['inputValue']).'" name="'.$this->name.$subscript.'[inputValue]'.'">';
|
||
$lineHTML .= '<input type="text" name="' . $this->name . $subscript . '[inputValue]_hr' . '" value="' . strftime('%H:%M %e-%m-%Y', intval($conf['inputValue'])) . '" ' . $GLOBALS['TBE_TEMPLATE']->formWidth(10) . ' onChange="typo3form.fieldGet(\'' . $this->name . $subscript . '[inputValue]\', \'datetime\', \'\', 0,0);"><input type="hidden" value="' . htmlspecialchars($conf['inputValue']) . '" name="' . $this->name . $subscript . '[inputValue]' . '">';
|
||
$this->extJSCODE.='typo3form.fieldSet("'.$this->name.$subscript.'[inputValue]", "datetime", "", 0,0);';
|
||
$this->extJSCODE .= 'typo3form.fieldSet("' . $this->name . $subscript . '[inputValue]", "datetime", "", 0,0);';
|
||
}
|
||
break;
|
||
break;
|
||
case 'multiple':
|
||
case 'binary':
|
||
case 'relation':
|
||
$lineHTML.=$this->mkTypeSelect($this->name.$subscript.'[type]', $fName);
|
||
$lineHTML .= $this->mkTypeSelect($this->name . $subscript . '[type]', $fName);
|
||
$lineHTML.=$this->mkCompSelect($this->name.$subscript.'[comparison]', $conf['comparison'], $conf['negate']?1:0);
|
||
$lineHTML .= $this->mkCompSelect($this->name . $subscript . '[comparison]', $conf['comparison'], $conf['negate'] ? 1 : 0);
|
||
$lineHTML.='<input type="checkbox" class="checkbox"'.($conf['negate']?' checked':'').' name="'.$this->name.$subscript.'[negate]'.'" onClick="submit();">';
|
||
$lineHTML .= '<input type="checkbox" class="checkbox"' . ($conf['negate'] ? ' checked' : '') . ' name="' . $this->name . $subscript . '[negate]' . '" onClick="submit();">';
|
||
if ($conf['comparison']==68 || $conf['comparison']==69 || $conf['comparison']==162 || $conf['comparison']==163) {
|
||
if ($conf['comparison'] == 68 || $conf['comparison'] == 69 || $conf['comparison'] == 162 || $conf['comparison'] == 163) {
|
||
$lineHTML.='<select name="'.$this->name.$subscript.'[inputValue]'.'[]" style="vertical-align:top;" size="5" multiple>';
|
||
$lineHTML .= '<select name="' . $this->name . $subscript . '[inputValue]' . '[]" style="vertical-align:top;" size="5" multiple>';
|
||
} elseif ($conf['comparison']==66 || $conf['comparison']==67) {
|
||
} elseif ($conf['comparison'] == 66 || $conf['comparison'] == 67) {
|
||
if (is_array($conf['inputValue'])) {
|
||
if (is_array($conf['inputValue'])) {
|
||
$conf['inputValue'] = implode(',', $conf['inputValue']);
|
||
}
|
||
$lineHTML.= '<input type="text" value="'.htmlspecialchars($conf['inputValue']).'" name="'.$this->name.$subscript.'[inputValue]'.'"'.$GLOBALS['TBE_TEMPLATE']->formWidth(10).'>';
|
||
$lineHTML .= '<input type="text" value="' . htmlspecialchars($conf['inputValue']) . '" name="' . $this->name . $subscript . '[inputValue]' . '"' . $GLOBALS['TBE_TEMPLATE']->formWidth(10) . '>';
|
||
} else {
|
||
$lineHTML.= '<select name="'.$this->name.$subscript.'[inputValue]'.'" style="vertical-align:top;" onChange="submit();">';
|
||
$lineHTML .= '<select name="' . $this->name . $subscript . '[inputValue]' . '" style="vertical-align:top;" onChange="submit();">';
|
||
}
|
||
if ($conf['comparison']!=66 && $conf['comparison']!=67) {
|
||
if ($conf['comparison'] != 66 && $conf['comparison'] != 67) {
|
||
$lineHTML.= $this->makeOptionList($fName, $conf, $this->table);
|
||
$lineHTML .= $this->makeOptionList($fName, $conf, $this->table);
|
||
$lineHTML.= '</select>';
|
||
$lineHTML .= '</select>';
|
||
}
|
||
break;
|
||
break;
|
||
case 'files':
|
||
$lineHTML.= $this->mkTypeSelect($this->name.$subscript.'[type]', $fName);
|
||
$lineHTML .= $this->mkTypeSelect($this->name . $subscript . '[type]', $fName);
|
||
$lineHTML.= $this->mkCompSelect($this->name.$subscript.'[comparison]', $conf['comparison'], $conf['negate']?1:0);
|
||
$lineHTML .= $this->mkCompSelect($this->name . $subscript . '[comparison]', $conf['comparison'], $conf['negate'] ? 1 : 0);
|
||
$lineHTML.= '<input type="checkbox" class="checkbox"'.($conf['negate']?' checked':'').' name="'.$this->name.$subscript.'[negate]'.'" onClick="submit();">';
|
||
$lineHTML .= '<input type="checkbox" class="checkbox"' . ($conf['negate'] ? ' checked' : '') . ' name="' . $this->name . $subscript . '[negate]' . '" onClick="submit();">';
|
||
if ($conf['comparison']==68 || $conf['comparison']==69) {
|
||
if ($conf['comparison'] == 68 || $conf['comparison'] == 69) {
|
||
$lineHTML .= '<select name="'.$this->name.$subscript.'[inputValue]'.'[]" style="vertical-align:top;" size="5" multiple>';
|
||
$lineHTML .= '<select name="' . $this->name . $subscript . '[inputValue]' . '[]" style="vertical-align:top;" size="5" multiple>';
|
||
} else {
|
||
$lineHTML .= '<select name="'.$this->name.$subscript.'[inputValue]'.'" style="vertical-align:top;" onChange="submit();">';
|
||
$lineHTML .= '<select name="' . $this->name . $subscript . '[inputValue]' . '" style="vertical-align:top;" onChange="submit();">';
|
||
}
|
||
$lineHTML .= '<option value=""></option>'.$this->makeOptionList($fName, $conf, $this->table);
|
||
$lineHTML .= '<option value=""></option>' . $this->makeOptionList($fName, $conf, $this->table);
|
||
$lineHTML .= '</select>';
|
||
if ($conf['comparison']==66 || $conf['comparison']==67) {
|
||
if ($conf['comparison'] == 66 || $conf['comparison'] == 67) {
|
||
$lineHTML .= ' + <input type="text" value="'.htmlspecialchars($conf['inputValue1']).'" name="'.$this->name.$subscript.'[inputValue1]'.'"'.$GLOBALS['TBE_TEMPLATE']->formWidth(10).'>';
|
||
$lineHTML .= ' + <input type="text" value="' . htmlspecialchars($conf['inputValue1']) . '" name="' . $this->name . $subscript . '[inputValue1]' . '"' . $GLOBALS['TBE_TEMPLATE']->formWidth(10) . '>';
|
||
}
|
||
break;
|
||
break;
|
||
case 'boolean':
|
||
$lineHTML .= $this->mkTypeSelect($this->name.$subscript.'[type]', $fName);
|
||
$lineHTML .= $this->mkTypeSelect($this->name . $subscript . '[type]', $fName);
|
||
$lineHTML .= $this->mkCompSelect($this->name.$subscript.'[comparison]', $conf['comparison'], $conf['negate']?1:0);
|
||
$lineHTML .= $this->mkCompSelect($this->name . $subscript . '[comparison]', $conf['comparison'], $conf['negate'] ? 1 : 0);
|
||
$lineHTML .= '<input type="checkbox" class="checkbox"'.($conf['negate']?' checked':'').' name="'.$this->name.$subscript.'[negate]'.'" onClick="submit();">';
|
||
$lineHTML .= '<input type="checkbox" class="checkbox"' . ($conf['negate'] ? ' checked' : '') . ' name="' . $this->name . $subscript . '[negate]' . '" onClick="submit();">';
|
||
$lineHTML .= '<input type="hidden" value="1" name="'.$this->name.$subscript.'[inputValue]'.'"'.$GLOBALS['TBE_TEMPLATE']->formWidth(10).'>';
|
||
$lineHTML .= '<input type="hidden" value="1" name="' . $this->name . $subscript . '[inputValue]' . '"' . $GLOBALS['TBE_TEMPLATE']->formWidth(10) . '>';
|
||
break;
|
||
break;
|
||
default:
|
||
$lineHTML .= $this->mkTypeSelect($this->name.$subscript.'[type]', $fName);
|
||
$lineHTML .= $this->mkTypeSelect($this->name . $subscript . '[type]', $fName);
|
||
$lineHTML .= $this->mkCompSelect($this->name.$subscript.'[comparison]', $conf['comparison'], $conf['negate']?1:0);
|
||
$lineHTML .= $this->mkCompSelect($this->name . $subscript . '[comparison]', $conf['comparison'], $conf['negate'] ? 1 : 0);
|
||
$lineHTML .= '<input type="checkbox" class="checkbox"'.($conf['negate']?' checked':'').' name="'.$this->name.$subscript.'[negate]'.'" onClick="submit();">';
|
||
$lineHTML .= '<input type="checkbox" class="checkbox"' . ($conf['negate'] ? ' checked' : '') . ' name="' . $this->name . $subscript . '[negate]' . '" onClick="submit();">';
|
||
if ($conf['comparison']==37 || $conf['comparison']==36) { // between:
|
||
if ($conf['comparison'] == 37 || $conf['comparison'] == 36) { // between:
|
||
$lineHTML.='<input type="text" value="'.htmlspecialchars($conf['inputValue']).'" name="'.$this->name.$subscript.'[inputValue]'.'"'.$GLOBALS['TBE_TEMPLATE']->formWidth(5).'>
|
||
$lineHTML .= '<input type="text" value="' . htmlspecialchars($conf['inputValue']) . '" name="' . $this->name . $subscript . '[inputValue]' . '"' . $GLOBALS['TBE_TEMPLATE']->formWidth(5) . '>
|
||
<input type="text" value="'.htmlspecialchars($conf['inputValue1']).'" name="'.$this->name.$subscript.'[inputValue1]'.'"'.$GLOBALS['TBE_TEMPLATE']->formWidth(5).'>'; // onChange='submit();'
|
||
<input type="text" value="' . htmlspecialchars($conf['inputValue1']) . '" name="' . $this->name . $subscript . '[inputValue1]' . '"' . $GLOBALS['TBE_TEMPLATE']->formWidth(5) . '>'; // onChange='submit();'
|
||
} else {
|
||
$lineHTML.='<input type="text" value="'.htmlspecialchars($conf['inputValue']).'" name="'.$this->name.$subscript.'[inputValue]'.'"'.$GLOBALS['TBE_TEMPLATE']->formWidth(10).'>'; // onChange="submit();"
|
||
$lineHTML .= '<input type="text" value="' . htmlspecialchars($conf['inputValue']) . '" name="' . $this->name . $subscript . '[inputValue]' . '"' . $GLOBALS['TBE_TEMPLATE']->formWidth(10) . '>'; // onChange="submit();"
|
||
}
|
||
break;
|
||
break;
|
||
}
|
||
if($fType != 'ignore') {
|
||
if ($fType != 'ignore') {
|
||
$lineHTML .= $this->updateIcon();
|
||
if ($loopcount) {
|
||
if ($loopcount) {
|
||
$lineHTML .= '<input type="image" border="0" ' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/garbage.gif', 'width="11" height="12"') . 'title="Remove condition" name="qG_del'.$subscript.'">';
|
||
$lineHTML .= '<input type="image" border="0" ' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/garbage.gif', 'width="11" height="12"') . 'title="Remove condition" name="qG_del' . $subscript . '">';
|
||
}
|
||
$lineHTML .= '<input type="image" border="0" ' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/add.gif', 'width="12" height="12"') . ' title="Add condition" name="qG_ins'.$subscript.'">';
|
||
$lineHTML .= '<input type="image" border="0" ' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/add.gif', 'width="12" height="12"') . ' title="Add condition" name="qG_ins' . $subscript . '">';
|
||
if($c!=0) $lineHTML.= '<input type="image" border="0" ' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/pil2up.gif', 'width="12" height="7"') . ' title="Move up" name="qG_up'.$subscript.'">';
|
||
if ($c != 0) {
|
||
$lineHTML .= '<input type="image" border="0" ' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/pil2up.gif', 'width="12" height="7"') . ' title="Move up" name="qG_up' . $subscript . '">';
|
||
}
|
||
if($c!=0 && $fType!='newlevel') {
|
||
if ($c != 0 && $fType != 'newlevel') {
|
||
$lineHTML.= '<input type="image" border="0" ' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/pil2right.gif', 'height="12" width="7"') . ' title="New level" name="qG_nl'.$subscript.'">';
|
||
$lineHTML .= '<input type="image" border="0" ' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/pil2right.gif', 'height="12" width="7"') . ' title="New level" name="qG_nl' . $subscript . '">';
|
||
}
|
||
if($fType=='newlevel') {
|
||
if ($fType == 'newlevel') {
|
||
$lineHTML.= '<input type="image" border="0" ' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/pil2left.gif', 'height="12" width="7"') . ' title="Collapse new level" name="qG_remnl'.$subscript.'">';
|
||
$lineHTML .= '<input type="image" border="0" ' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/pil2left.gif', 'height="12" width="7"') . ' title="Collapse new level" name="qG_remnl' . $subscript . '">';
|
||
}
|
||
$codeArr[$arrCount]['html'] = $lineHTML;
|
||
$codeArr[$arrCount]['query'] = $this->getQuerySingle($conf,$c>0?0:1);
|
||
$codeArr[$arrCount]['query'] = $this->getQuerySingle($conf, $c > 0 ? 0 : 1);
|
||
$arrCount++;
|
||
$c++;
|
||
}
|
||
... | ... | |
* @param [type] $table: ...
|
||
* @return [type] ...
|
||
*/
|
||
function makeOptionList($fN, $conf, $table) {
|
||
function makeOptionList($fN, $conf, $table) {
|
||
$fieldSetup = $this->fields[$fN];
|
||
if ($fieldSetup['type']=='files') {
|
||
if ($fieldSetup['type'] == 'files') {
|
||
if ($conf['comparison']==66 || $conf['comparison']==67) {
|
||
if ($conf['comparison'] == 66 || $conf['comparison'] == 67) {
|
||
$fileExtArray = explode(',', $fieldSetup['allowed']);
|
||
natcasesort($fileExtArray);
|
||
foreach ($fileExtArray as $fileExt) {
|
||
foreach ($fileExtArray as $fileExt) {
|
||
if (t3lib_div::inList($conf['inputValue'], $fileExt)) {
|
||
if (t3lib_div::inList($conf['inputValue'], $fileExt)) {
|
||
$out .= '<option value="'.$fileExt.'" selected>.'.$fileExt.'</option>';
|
||
$out .= '<option value="' . $fileExt . '" selected>.' . $fileExt . '</option>';
|
||
} else {
|
||
$out .= '<option value="'.$fileExt.'">.'.$fileExt.'</option>';
|
||
$out .= '<option value="' . $fileExt . '">.' . $fileExt . '</option>';
|
||
}
|
||
}
|
||
}
|
||
$d = dir(PATH_site . $fieldSetup['uploadfolder']);
|
||
while (false !== ($entry=$d->read())) {
|
||
while (false !== ($entry = $d->read())) {
|
||
if ($entry=='.' || $entry=='..') {
|
||
if ($entry == '.' || $entry == '..') {
|
||
continue;
|
||
}
|
||
$fileArray[] = $entry;
|
||
}
|
||
$d->close();
|
||
natcasesort($fileArray);
|
||
foreach ($fileArray as $fileName) {
|
||
foreach ($fileArray as $fileName) {
|
||
if (t3lib_div::inList($conf['inputValue'], $fileName)) {
|
||
if (t3lib_div::inList($conf['inputValue'], $fileName)) {
|
||
$out .= '<option value="'.$fileName.'" selected>'.$fileName.'</option>';
|
||
$out .= '<option value="' . $fileName . '" selected>' . $fileName . '</option>';
|
||
} else {
|
||
$out .= '<option value="'.$fileName.'">'.$fileName.'</option>';
|
||
$out .= '<option value="' . $fileName . '">' . $fileName . '</option>';
|
||
}
|
||
}
|
||
}
|
||
if ($fieldSetup['type']=='multiple') {
|
||
if ($fieldSetup['type'] == 'multiple') {
|
||
foreach ($fieldSetup['items'] as $key=>$val) {
|
||
foreach ($fieldSetup['items'] as $key => $val) {
|
||
if (substr($val[0], 0, 4) == 'LLL:') {
|
||
if (substr($val[0], 0, 4) == 'LLL:') {
|
||
$value = $GLOBALS['LANG']->sL($val[0]);
|
||
} else {
|
||
$value = $val[0];
|
||
}
|
||
if (t3lib_div::inList($conf['inputValue'], $val[1])) {
|
||
if (t3lib_div::inList($conf['inputValue'], $val[1])) {
|
||
$out .= '<option value="'.$val[1].'" selected>'.$value.'</option>';
|
||
$out .= '<option value="' . $val[1] . '" selected>' . $value . '</option>';
|
||
} else {
|
||
$out .= '<option value="'.$val[1].'">'.$value.'</option>';
|
||
$out .= '<option value="' . $val[1] . '">' . $value . '</option>';
|
||
}
|
||
}
|
||
}
|
||
if ($fieldSetup['type']=='binary') {
|
||
if ($fieldSetup['type'] == 'binary') {
|
||
foreach ($fieldSetup['items'] as $key=>$val) {
|
||
foreach ($fieldSetup['items'] as $key => $val) {
|
||
if (substr($val[0], 0, 4)=='LLL:') {
|
||
if (substr($val[0], 0, 4) == 'LLL:') {
|
||
$value = $GLOBALS['LANG']->sL($val[0]);
|
||
} else {
|
||
$value = $val[0];
|
||
}
|
||
if (t3lib_div::inList($conf['inputValue'], pow(2, $key))) {
|
||
if (t3lib_div::inList($conf['inputValue'], pow(2, $key))) {
|
||
$out .= '<option value="'.pow(2, $key).'" selected>'.$value.'</option>';
|
||
$out .= '<option value="' . pow(2, $key) . '" selected>' . $value . '</option>';
|
||
} else {
|
||
$out .= '<option value="'.pow(2, $key).'">'.$value.'</option>';
|
||
$out .= '<option value="' . pow(2, $key) . '">' . $value . '</option>';
|
||
}
|
||
}
|
||
}
|
||
if ($fieldSetup['type']=='relation') {
|
||
if ($fieldSetup['type'] == 'relation') {
|
||
if ($fieldSetup['items']) {
|
||
if ($fieldSetup['items']) {
|
||
foreach ($fieldSetup['items'] as $key=>$val) {
|
||
foreach ($fieldSetup['items'] as $key => $val) {
|
||
if (substr($val[0], 0, 4) == 'LLL:') {
|
||
if (substr($val[0], 0, 4) == 'LLL:') {
|
||
$value = $GLOBALS['LANG']->sL($val[0]);
|
||
} else {
|
||
$value = $val[0];
|
||
}
|
||
if (t3lib_div::inList($conf['inputValue'], $val[1])) {
|
||
if (t3lib_div::inList($conf['inputValue'], $val[1])) {
|
||
$out .= '<option value="'.$val[1].'" selected>'.$value.'</option>';
|
||
$out .= '<option value="' . $val[1] . '" selected>' . $value . '</option>';
|
||
} else {
|
||
$out .= '<option value="'.$val[1].'">'.$value.'</option>';
|
||
$out .= '<option value="' . $val[1] . '">' . $value . '</option>';
|
||
}
|
||
}
|
||
}
|
||
global $TCA;
|
||
if (stristr($fieldSetup['allowed'], ',')) {
|
||
if (stristr($fieldSetup['allowed'], ',')) {
|
||
$from_table_Arr = explode(',', $fieldSetup['allowed']);
|
||
$useTablePrefix = 1;
|
||
if (!$fieldSetup['prepend_tname']) {
|
||
if (!$fieldSetup['prepend_tname']) {
|
||
$checkres = $GLOBALS['TYPO3_DB']->exec_SELECTquery($fN, $table, t3lib_BEfunc::deleteClause($table), $groupBy = '', $orderBy = '', $limit = '');
|
||
if ($checkres) {
|
||
if ($checkres) {
|
||
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($checkres)) {
|
||
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($checkres)) {
|
||
if (stristr($row[$fN], ',')) {
|
||
if (stristr($row[$fN], ',')) {
|
||
$checkContent = explode(',', $row[$fN]);
|
||
foreach ($checkContent as $singleValue) {
|
||
foreach ($checkContent as $singleValue) {
|
||
if (!stristr($singleValue, '_')) {
|
||
if (!stristr($singleValue, '_')) {
|
||
$dontPrefixFirstTable = 1;
|
||
}
|
||
}
|
||
} else {
|
||
$singleValue = $row[$fN];
|
||
if (strlen($singleValue) && !stristr($singleValue, '_')) {
|
||
if (strlen($singleValue) && !stristr($singleValue, '_')) {
|
||
$dontPrefixFirstTable = 1;
|
||
}
|
||
}
|
||
... | ... | |
} else {
|
||
$from_table_Arr[0] = $fieldSetup['allowed'];
|
||
}
|
||
if ($fieldSetup['prepend_tname']) {
|
||
if ($fieldSetup['prepend_tname']) {
|
||
$useTablePrefix = 1;
|
||
}
|
||
if ($fieldSetup['foreign_table']) {
|
||
if ($fieldSetup['foreign_table']) {
|
||
$from_table_Arr[0] = $fieldSetup['foreign_table'];
|
||
}
|
||
$counter = 0;
|
||
$webMountPageTree = '';
|
||
while (list(, $from_table) = each($from_table_Arr)) {
|
||
while (list(, $from_table) = each($from_table_Arr)) {
|
||
if (($useTablePrefix && !$dontPrefixFirstTable && $counter!=1) || $counter==1) {
|
||
if (($useTablePrefix && !$dontPrefixFirstTable && $counter != 1) || $counter == 1) {
|
||
$tablePrefix = $from_table.'_';
|
||
$tablePrefix = $from_table . '_';
|
||
}
|
||
$counter = 1;
|
||
if (is_array($TCA[$from_table])) {
|
||
if (is_array($TCA[$from_table])) {
|
||
t3lib_div::loadTCA($from_table);
|
||
$labelField = $TCA[$from_table]['ctrl']['label'];
|
||
$altLabelField = $TCA[$from_table]['ctrl']['label_alt'];
|
||
if ($TCA[$from_table]['columns'][$labelField]['config']['items']) {
|
||
if ($TCA[$from_table]['columns'][$labelField]['config']['items']) {
|
||
foreach ($TCA[$from_table]['columns'][$labelField]['config']['items'] as $labelArray) {
|
||
foreach ($TCA[$from_table]['columns'][$labelField]['config']['items'] as $labelArray) {
|
||
if (substr($labelArray[0], 0, 4) == 'LLL:') {
|
||
if (substr($labelArray[0], 0, 4) == 'LLL:') {
|
||
$labelFieldSelect[$labelArray[1]] = $GLOBALS['LANG']->sL($labelArray[0]);
|
||
} else {
|
||
$labelFieldSelect[$labelArray[1]] = $labelArray[0];
|
||
... | ... | |
}
|
||
$useSelectLabels = 1;
|
||
}
|
||
if ($TCA[$from_table]['columns'][$altLabelField]['config']['items']) {
|
||
if ($TCA[$from_table]['columns'][$altLabelField]['config']['items']) {
|
||
foreach ($TCA[$from_table]['columns'][$altLabelField]['config']['items'] as $altLabelArray) {
|
||
foreach ($TCA[$from_table]['columns'][$altLabelField]['config']['items'] as $altLabelArray) {
|
||
if (substr($altLabelArray[0], 0, 4) == 'LLL:') {
|
||
if (substr($altLabelArray[0], 0, 4) == 'LLL:') {
|
||
$altLabelFieldSelect[$altLabelArray[1]] = $GLOBALS['LANG']->sL($altLabelArray[0]);
|
||
} else {
|
||
$altLabelFieldSelect[$altLabelArray[1]] = $altLabelArray[0];
|
||
... | ... | |
}
|
||
$useAltSelectLabels = 1;
|
||
}
|
||
$altLabelFieldSelect = $altLabelField ? ','.$altLabelField : '';
|
||
$altLabelFieldSelect = $altLabelField ? ',' . $altLabelField : '';
|
||
$select_fields = 'uid,'.$labelField.$altLabelFieldSelect;
|
||
$select_fields = 'uid,' . $labelField . $altLabelFieldSelect;
|
||
if (!$GLOBALS['BE_USER']->isAdmin() && $GLOBALS['TYPO3_CONF_VARS']['BE']['lockBeUserToDBmounts']) {
|
||
if (!$GLOBALS['BE_USER']->isAdmin() && $GLOBALS['TYPO3_CONF_VARS']['BE']['lockBeUserToDBmounts']) {
|
||
$webMounts = $GLOBALS['BE_USER']->returnWebmounts();
|
||
$perms_clause = $GLOBALS['BE_USER']->getPagePermsClause(1);
|
||
foreach ($webMounts as $key => $val) {
|
||
foreach ($webMounts as $key => $val) {
|
||
if ($webMountPageTree) {
|
||
if ($webMountPageTree) {
|
||
$webMountPageTreePrefix = ',';
|
||
}
|
||
$webMountPageTree .= $webMountPageTreePrefix.$this->getTreeList($val, 999, $begin = 0, $perms_clause);
|
||
$webMountPageTree .= $webMountPageTreePrefix . $this->getTreeList($val, 999, $begin = 0, $perms_clause);
|
||
}
|
||
if ($from_table=='pages') {
|
||
if ($from_table == 'pages') {
|
||
$where_clause = 'uid IN ('.$webMountPageTree.') ';
|
||
$where_clause = 'uid IN (' . $webMountPageTree . ') ';
|
||
if (!$GLOBALS['SOBE']->MOD_SETTINGS['show_deleted']) {
|
||
if (!$GLOBALS['SOBE']->MOD_SETTINGS['show_deleted']) {
|
||
$where_clause .= t3lib_BEfunc::deleteClause($from_table).' AND'.$perms_clause;
|
||
$where_clause .= t3lib_BEfunc::deleteClause($from_table) . ' AND' . $perms_clause;
|
||
}
|
||
} else {
|
||
$where_clause = 'pid IN ('.$webMountPageTree.') ';
|
||
$where_clause = 'pid IN (' . $webMountPageTree . ') ';
|
||
if (!$GLOBALS['SOBE']->MOD_SETTINGS['show_deleted']) {
|
||
if (!$GLOBALS['SOBE']->MOD_SETTINGS['show_deleted']) {
|
||
$where_clause .= t3lib_BEfunc::deleteClause($from_table);
|
||
}
|
||
}
|
||
} else {
|
||
$where_clause = 'uid';
|
||
if (!$GLOBALS['SOBE']->MOD_SETTINGS['show_deleted']) {
|
||
if (!$GLOBALS['SOBE']->MOD_SETTINGS['show_deleted']) {
|
||
$where_clause .= t3lib_BEfunc::deleteClause($from_table);
|
||
}
|
||
}
|
||
$orderBy = 'uid';
|
||
if (!$this->tableArray[$from_table]) {
|
||
if (!$this->tableArray[$from_table]) {
|
||
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields, $from_table, $where_clause, $groupBy = '', $orderBy, $limit = '');
|
||
}
|
||
if ($res) {
|
||
if ($res) {
|
||
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
|
||
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
|
||
$this->tableArray[$from_table][] = $row;
|
||
}
|
||
}
|
||
foreach ($this->tableArray[$from_table] as $key=>$val) {
|
||
foreach ($this->tableArray[$from_table] as $key => $val) {
|
||
if ($useSelectLabels) {
|
||
if ($useSelectLabels) {
|
||
$outArray[$tablePrefix.$val['uid']] = htmlspecialchars($labelFieldSelect[$val[$labelField]]);
|
||
$outArray[$tablePrefix . $val['uid']] = htmlspecialchars($labelFieldSelect[$val[$labelField]]);
|
||
} elseif ($val[$labelField]) {
|
||
} elseif ($val[$labelField]) {
|
||
$outArray[$tablePrefix.$val['uid']] = htmlspecialchars($val[$labelField]);
|
||
$outArray[$tablePrefix . $val['uid']] = htmlspecialchars($val[$labelField]);
|
||
} elseif ($useAltSelectLabels) {
|
||
} elseif ($useAltSelectLabels) {
|
||
$outArray[$tablePrefix.$val['uid']] = htmlspecialchars($altLabelFieldSelect[$val[$altLabelField]]);
|
||
$outArray[$tablePrefix . $val['uid']] = htmlspecialchars($altLabelFieldSelect[$val[$altLabelField]]);
|
||
} else {
|
||
$outArray[$tablePrefix.$val['uid']] = htmlspecialchars($val[$altLabelField]);
|
||
$outArray[$tablePrefix . $val['uid']] = htmlspecialchars($val[$altLabelField]);
|
||
}
|
||
}
|
||
if ($GLOBALS['SOBE']->MOD_SETTINGS['options_sortlabel'] && is_array($outArray)) {
|
||
if ($GLOBALS['SOBE']->MOD_SETTINGS['options_sortlabel'] && is_array($outArray)) {
|
||
natcasesort($outArray);
|
||
}
|
||
}
|
||
}
|
||
foreach ($outArray as $key2 => $val2) {
|
||
foreach ($outArray as $key2 => $val2) {
|
||
if (t3lib_div::inList($conf['inputValue'], $key2)) {
|
||
if (t3lib_div::inList($conf['inputValue'], $key2)) {
|
||
$out .= '<option value="'.$key2.'" selected>['.$key2.'] '.$val2.'</option>';
|
||
$out .= '<option value="' . $key2 . '" selected>[' . $key2 . '] ' . $val2 . '</option>';
|
||
} else {
|
||
$out .= '<option value="'.$key2.'">['.$key2.'] '.$val2.'</option>';
|
||
$out .= '<option value="' . $key2 . '">[' . $key2 . '] ' . $val2 . '</option>';
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
}
|
||
/**
|
||
* [Describe function...]
|
||
*
|
||
* @param [type] $codeArr: ...
|
||
* @param [type] $l: ...
|
||
* @return [type] ...
|
||
*/
|
||
/**
|
||
* [Describe function...]
|
||
*
|
||
* @param [type] $codeArr: ...
|
||
* @param [type] $l: ...
|
||
* @return [type] ...
|
||
*/
|
||
function printCodeArray($codeArr,$l=0) {
|
||
function printCodeArray($codeArr, $l = 0) {
|
||
$line='';
|
||
$line = '';
|
||
if ($l) $indent='<td style="vertical-align:top;"><img height="1" width="50"></td>';
|
||
if ($l) {
|
||
$indent = '<td style="vertical-align:top;"><img height="1" width="50"></td>';
|
||
}
|
||
$lf=$l*30;
|
||
$lf = $l * 30;
|
||
$bgColor = t3lib_div::modifyHTMLColor($GLOBALS['TBE_TEMPLATE']->bgColor2,$lf,$lf,$lf);
|
||
$bgColor = t3lib_div::modifyHTMLColor($GLOBALS['TBE_TEMPLATE']->bgColor2, $lf, $lf, $lf);
|
||
foreach ($codeArr as $k => $v) {
|
||
$line.= '<tr>'.$indent.'<td bgcolor="'.$bgColor.'"'.$this->noWrap.'>'.$v['html'].'</td></tr>';
|
||
$line .= '<tr>' . $indent . '<td bgcolor="' . $bgColor . '"' . $this->noWrap . '>' . $v['html'] . '</td></tr>';
|
||
if ($this->enableQueryParts) {$line.= '<tr>'.$indent.'<td>'.$this->formatQ($v['query']).'</td></tr>';}
|
||
if ($this->enableQueryParts) {
|
||
$line .= '<tr>' . $indent . '<td>' . $this->formatQ($v['query']) . '</td></tr>';
|
||
}
|
||
if (is_array($v['sub'])) {
|
||
if (is_array($v['sub'])) {
|
||
$line.= '<tr>'.$indent.'<td'.$this->noWrap.'>'.$this->printCodeArray($v['sub'],$l+1).'</td></tr>';
|
||
$line .= '<tr>' . $indent . '<td' . $this->noWrap . '>' . $this->printCodeArray($v['sub'], $l + 1) . '</td></tr>';
|
||
}
|
||
}
|
||
$out='<table border="0" cellpadding="0" cellspacing="1">'.$line.'</table>';
|
||
$out = '<table border="0" cellpadding="0" cellspacing="1">' . $line . '</table>';
|
||
return $out;
|
||
}
|
||
... | ... | |
* @param [type] $str: ...
|
||
* @return [type] ...
|
||
*/
|
||
function formatQ($str) {
|
||
function formatQ($str) {
|
||
return '<font size="1" face="verdana" color="maroon"><i>' . htmlspecialchars($str) . '</i></font>';
|
||
}
|
||
... | ... | |
* @param [type] $submit: ...
|
||
* @return [type] ...
|
||
*/
|
||
function mkOperatorSelect($name,$op,$draw,$submit) {
|
||
function mkOperatorSelect($name, $op, $draw, $submit) {
|
||
if ($draw) {
|
||
if ($draw) {
|
||
$out='<select name="'.$name.'[operator]"'.($submit?' onChange="submit();"':'').'>'; //
|
||
$out = '<select name="' . $name . '[operator]"' . ($submit ? ' onChange="submit();"' : '') . '>'; //
|
||
$out.='<option value="AND"'.(!$op||$op=="AND" ? ' selected':'').'>'.$this->lang["AND"].'</option>';
|
||
$out .= '<option value="AND"' . (!$op || $op == "AND" ? ' selected' : '') . '>' . $this->lang["AND"] . '</option>';
|
||
$out.='<option value="OR"'.($op=='OR' ? ' selected':'').'>'.$this->lang['OR'].'</option>';
|
||
$out .= '<option value="OR"' . ($op == 'OR' ? ' selected' : '') . '>' . $this->lang['OR'] . '</option>';
|
||
$out.='</select>';
|
||
$out .= '</select>';
|
||
} else {
|
||
$out.='<input type="hidden" value="'.$op.'" name="'.$name.'[operator]">';
|
||
$out .= '<input type="hidden" value="' . $op . '" name="' . $name . '[operator]">';
|
||
$out.='<img src="clear.gif" height="1" width="47">';
|
||
$out .= '<img src="clear.gif" height="1" width="47">';
|
||
}
|
||
return $out;
|
||
... | ... | |
* @param [type] $prepend: ...
|
||
* @return [type] ...
|
||
*/
|
||
function mkTypeSelect($name,$fieldName,$prepend='FIELD_') {
|
||
function mkTypeSelect($name, $fieldName, $prepend = 'FIELD_') {
|
||
$out='<select name="'.$name.'" onChange="submit();">';
|
||
$out = '<select name="' . $name . '" onChange="submit();">';
|
||
$out.='<option value=""></option>';
|
||
$out .= '<option value=""></option>';
|
||
foreach ($this->fields as $key => $value) {
|
||
if (!$value['exclude'] || $GLOBALS['BE_USER']->check('non_exclude_fields', $this->table . ':' . $key)) {
|
||
$label = $this->fields[$key]['label'];
|
||
$label_alt = $this->fields[$key]['label_alt'];
|
||
$out .= '<option value="'.$prepend.$key.'"'.($key==$fieldName ? ' selected' : '').'>'.$label.'</option>';
|
||
$out .= '<option value="' . $prepend . $key . '"' . ($key == $fieldName ? ' selected' : '') . '>' . $label . '</option>';
|
||
}
|
||
}
|
||
$out.='</select>';
|
||
$out .= '</select>';
|
||
return $out;
|
||
}
|
||
... | ... | |
* @param [type] $fieldName: ...
|
||
* @return [type] ...
|
||
*/
|
||
function verifyType($fieldName) {
|
||
function verifyType($fieldName) {
|
||
$first = '';
|
||
foreach ($this->fields as $key => $value) {
|
||
if (!$first) $first = $key;
|
||
if ($key==$fieldName) return $key;
|
||
if (!$first) {
|
||
$first = $key;
|
||
}
|
||
}
|
||
if ($key == $fieldName) {
|
||
return $key;
|
||
}
|
||
}
|
||
return $first;
|
||
}
|
||
... | ... | |
* @param [type] $neg: ...
|
||
* @return [type] ...
|
||
*/
|
||
function verifyComparison($comparison,$neg) {
|
||
function verifyComparison($comparison, $neg) {
|
||
$compOffSet = $comparison >> 5;
|
||
$first=-1;
|
||
$first = -1;
|
||
for($i=32*$compOffSet+$neg;$i<32*($compOffSet+1);$i+=2) {
|
||
for ($i = 32 * $compOffSet + $neg; $i < 32 * ($compOffSet + 1); $i += 2) {
|
||
if ($first==-1) $first = $i;
|
||
if ($first == -1) {
|
||
$first = $i;
|
||
}
|
||
if (($i >> 1)==($comparison >> 1)) {
|
||
if (($i >> 1) == ($comparison >> 1)) {
|
||
return $i;
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $fieldName: ...
|
||
* @return [type] ...
|
||
*/
|
||
function mkFieldToInputSelect($name,$fieldName) {
|
||
function mkFieldToInputSelect($name, $fieldName) {
|
||
$out='<input type="Text" value="'.htmlspecialchars($fieldName).'" name="'.$name.'"'.$GLOBALS['TBE_TEMPLATE']->formWidth().'>'.$this->updateIcon();
|
||
$out = '<input type="Text" value="' . htmlspecialchars($fieldName) . '" name="' . $name . '"' . $GLOBALS['TBE_TEMPLATE']->formWidth() . '>' . $this->updateIcon();
|
||
$out.='<a href="#" onClick="document.forms[0][\''.$name.'\'].value=\'\';return false;">' . t3lib_iconWorks::getSpriteIcon('actions-edit-delete', array('title' => 'Clear list')) . '</a>';
|
||
$out .= '<a href="#" onClick="document.forms[0][\'' . $name . '\'].value=\'\';return false;">' . t3lib_iconWorks::getSpriteIcon('actions-edit-delete', array('title' => 'Clear list')) . '</a>';
|
||
$out.='<BR><select name="_fieldListDummy" size="5" onChange="document.forms[0][\''.$name.'\'].value+=\',\'+this.value">';
|
||
$out .= '<BR><select name="_fieldListDummy" size="5" onChange="document.forms[0][\'' . $name . '\'].value+=\',\'+this.value">';
|
||
foreach ($this->fields as $key => $value) {
|
||
if (!$value['exclude'] || $GLOBALS['BE_USER']->check('non_exclude_fields', $this->table . ':' . $key)) {
|
||
$label = $this->fields[$key]['label'];
|
||
$label_alt = $this->fields[$key]['label_alt'];
|
||
$out .= '<option value="'.$key.'"'.($key==$fieldName ? ' selected':'').'>'.$label.'</option>';
|
||
$out .= '<option value="' . $key . '"' . ($key == $fieldName ? ' selected' : '') . '>' . $label . '</option>';
|
||
}
|
||
}
|
||
$out.='</select>';
|
||
$out .= '</select>';
|
||
return $out;
|
||
}
|
||
... | ... | |
* @param [type] $cur: ...
|
||
* @return [type] ...
|
||
*/
|
||
function mkTableSelect($name,$cur) {
|
||
function mkTableSelect($name, $cur) {
|
||
global $TCA;
|
||
$out='<select name="'.$name.'" onChange="submit();">';
|
||
$out = '<select name="' . $name . '" onChange="submit();">';
|
||
$out.='<option value=""></option>';
|
||
$out .= '<option value=""></option>';
|
||
foreach ($TCA as $tN => $value) {
|
||
if ($GLOBALS['BE_USER']->check('tables_select',$tN)) {
|
||
if ($GLOBALS['BE_USER']->check('tables_select', $tN)) {
|
||
$out.='<option value="'.$tN.'"'.($tN==$cur ? ' selected':'').'>'.$GLOBALS['LANG']->sl($TCA[$tN]['ctrl']['title']).'</option>';
|
||
$out .= '<option value="' . $tN . '"' . ($tN == $cur ? ' selected' : '') . '>' . $GLOBALS['LANG']->sl($TCA[$tN]['ctrl']['title']) . '</option>';
|
||
}
|
||
}
|
||
$out.='</select>';
|
||
$out .= '</select>';
|
||
return $out;
|
||
}
|
||
... | ... | |
* @param [type] $neg: ...
|
||
* @return [type] ...
|
||
*/
|
||
function mkCompSelect($name,$comparison,$neg) {
|
||
function mkCompSelect($name, $comparison, $neg) {
|
||
$compOffSet = $comparison >> 5;
|
||
$out='<select name="'.$name.'" onChange="submit();">';
|
||
$out = '<select name="' . $name . '" onChange="submit();">';
|
||
for($i=32*$compOffSet+$neg;$i<32*($compOffSet+1);$i+=2) {
|
||
for ($i = 32 * $compOffSet + $neg; $i < 32 * ($compOffSet + 1); $i += 2) {
|
||
if($this->lang['comparison'][$i.'_']) {
|
||
if ($this->lang['comparison'][$i . '_']) {
|
||
$out.='<option value="'.$i.'"'.(($i >> 1)==($comparison >> 1) ? ' selected':'').'>'.$this->lang['comparison'][$i.'_'].'</option>';
|
||
$out .= '<option value="' . $i . '"' . (($i >> 1) == ($comparison >> 1) ? ' selected' : '') . '>' . $this->lang['comparison'][$i . '_'] . '</option>';
|
||
}
|
||
}
|
||
$out.='</select>';
|
||
$out .= '</select>';
|
||
return $out;
|
||
}
|
||
... | ... | |
* @return [type] ...
|
||
*/
|
||
function getSubscript($arr) {
|
||
while(is_array($arr)) {
|
||
while (is_array($arr)) {
|
||
reset($arr);
|
||
list($key,)=each($arr);
|
||
list($key,) = each($arr);
|
||
$retArr[] = $key;
|
||
$arr = $arr[$key];
|
||
}
|
||
... | ... | |
*
|
||
* @return [type] ...
|
||
*/
|
||
function initUserDef() {
|
||
function initUserDef() {
|
||
}
|
||
... | ... | |
*
|
||
* @return [type] ...
|
||
*/
|
||
function userDef() {
|
||
function userDef() {
|
||
}
|
||
/**
|
||
... | ... | |
* @param [type] $queryConfig: ...
|
||
* @return [type] ...
|
||
*/
|
||
function userDefCleanUp($queryConfig) {
|
||
function userDefCleanUp($queryConfig) {
|
||
return $queryConfig;
|
||
}
|
||
... | ... | |
* @param [type] $pad: ...
|
||
* @return [type] ...
|
||
*/
|
||
function getQuery ($queryConfig,$pad='') {
|
||
function getQuery($queryConfig, $pad = '') {
|
||
$qs = '';
|
||
// Since we don't traverse the array using numeric keys in the upcoming whileloop make sure it's fresh and clean
|
||
ksort($queryConfig);
|
||
$first=1;
|
||
$first = 1;
|
||
foreach ($queryConfig as $key => $conf) {
|
||
switch($conf['type']) {
|
||
switch ($conf['type']) {
|
||
case 'newlevel':
|
||
$qs.=LF.$pad.trim($conf['operator']).' ('.$this->getQuery($queryConfig[$key]['nl'],$pad.' ').LF.$pad.')';
|
||
$qs .= LF . $pad . trim($conf['operator']) . ' (' . $this->getQuery($queryConfig[$key]['nl'], $pad . ' ') . LF . $pad . ')';
|
||
break;
|
||
break;
|
||
case 'userdef':
|
||
$qs.=LF.$pad.getUserDefQuery($conf,$first);
|
||
$qs .= LF . $pad . getUserDefQuery($conf, $first);
|
||
break;
|
||
break;
|
||
default:
|
||
$qs.=LF.$pad.$this->getQuerySingle($conf,$first);
|
||
$qs .= LF . $pad . $this->getQuerySingle($conf, $first);
|
||
break;
|
||
break;
|
||
}
|
||
$first=0;
|
||
$first = 0;
|
||
}
|
||
return $qs;
|
||
}
|
||
... | ... | |
* @param [type] $first: ...
|
||
* @return [type] ...
|
||
*/
|
||
function getQuerySingle($conf,$first) {
|
||
function getQuerySingle($conf, $first) {
|
||
$prefix = $this->enablePrefix ? $this->table.'.' : '';
|
||
$prefix = $this->enablePrefix ? $this->table . '.' : '';
|
||
if (!$first) {
|
||
if (!$first) {
|
||
// Is it OK to insert the AND operator if none is set?
|
||
$qs .= trim(($conf['operator'] ? $conf['operator'] : 'AND')).' ';
|
||
$qs .= trim(($conf['operator'] ? $conf['operator'] : 'AND')) . ' ';
|
||
}
|
||
$qsTmp = str_replace('#FIELD#', $prefix.trim(substr($conf['type'],6)), $this->compSQL[$conf['comparison']]);
|
||
$qsTmp = str_replace('#FIELD#', $prefix . trim(substr($conf['type'], 6)), $this->compSQL[$conf['comparison']]);
|
||
$inputVal = $this->cleanInputVal($conf);
|
||
if ($conf['comparison']==68 || $conf['comparison']==69) {
|
||
if ($conf['comparison'] == 68 || $conf['comparison'] == 69) {
|
||
$inputVal = explode(',', $inputVal);
|
||
foreach ($inputVal as $key => $fileName) {
|
||
foreach ($inputVal as $key => $fileName) {
|
||
$inputVal[$key] = "'".$fileName."'";
|
||
$inputVal[$key] = "'" . $fileName . "'";
|
||
}
|
||
$inputVal = implode(',', $inputVal);
|
||
$qsTmp = str_replace('#VALUE#', $inputVal, $qsTmp);
|
||
} elseif ($conf['comparison']==162 || $conf['comparison']==163) {
|
||
} elseif ($conf['comparison'] == 162 || $conf['comparison'] == 163) {
|
||
$inputValArray = explode(',', $inputVal);
|
||
$inputVal = 0;
|
||
foreach ($inputValArray as $key=>$fileName) {
|
||
foreach ($inputValArray as $key => $fileName) {
|
||
$inputVal += intval($fileName);
|
||
}
|
||
$qsTmp = str_replace('#VALUE#', $inputVal, $qsTmp);
|
||
} else {
|
||
$qsTmp = str_replace('#VALUE#', $GLOBALS['TYPO3_DB']->quoteStr($inputVal,$this->table), $qsTmp);
|
||
$qsTmp = str_replace('#VALUE#', $GLOBALS['TYPO3_DB']->quoteStr($inputVal, $this->table), $qsTmp);
|
||
}
|
||
if ($conf['comparison']==37 || $conf['comparison']==36 || $conf['comparison']==66 || $conf['comparison']==67 || $conf['comparison']==100 || $conf['comparison']==101) { // between:
|
||
if ($conf['comparison'] == 37 || $conf['comparison'] == 36 || $conf['comparison'] == 66 || $conf['comparison'] == 67 || $conf['comparison'] == 100 || $conf['comparison'] == 101) { // between:
|
||
$inputVal = $this->cleanInputVal($conf,'1');
|
||
$inputVal = $this->cleanInputVal($conf, '1');
|
||
$qsTmp = str_replace('#VALUE1#', $GLOBALS['TYPO3_DB']->quoteStr($inputVal,$this->table), $qsTmp);
|
||
$qsTmp = str_replace('#VALUE1#', $GLOBALS['TYPO3_DB']->quoteStr($inputVal, $this->table), $qsTmp);
|
||
}
|
||
$qs .= trim($qsTmp);
|
||
return $qs;
|
||
... | ... | |
* @param [type] $suffix: ...
|
||
* @return [type] ...
|
||
*/
|
||
function cleanInputVal($conf,$suffix='') {
|
||
function cleanInputVal($conf, $suffix = '') {
|
||
if(($conf['comparison'] >> 5==0) || ($conf['comparison']==32 || $conf['comparison']==33 || $conf['comparison']==64 || $conf['comparison']==65 || $conf['comparison']==66 || $conf['comparison']==67 || $conf['comparison']==96 || $conf['comparison']==97)) {
|
||
if (($conf['comparison'] >> 5 == 0) || ($conf['comparison'] == 32 || $conf['comparison'] == 33 || $conf['comparison'] == 64 || $conf['comparison'] == 65 || $conf['comparison'] == 66 || $conf['comparison'] == 67 || $conf['comparison'] == 96 || $conf['comparison'] == 97)) {
|
||
$inputVal = $conf['inputValue'.$suffix];
|
||
$inputVal = $conf['inputValue' . $suffix];
|
||
} elseif ($conf['comparison']==39 || $conf['comparison']==38) { // in list:
|
||
} elseif ($conf['comparison'] == 39 || $conf['comparison'] == 38) { // in list:
|
||
$inputVal = implode(',',t3lib_div::intExplode(',',$conf['inputValue'.$suffix]));
|
||
$inputVal = implode(',', t3lib_div::intExplode(',', $conf['inputValue' . $suffix]));
|
||
} elseif ($conf['comparison']==68 || $conf['comparison']==69 || $conf['comparison']==162 || $conf['comparison']==163) { // in list:
|
||
} elseif ($conf['comparison'] == 68 || $conf['comparison'] == 69 || $conf['comparison'] == 162 || $conf['comparison'] == 163) { // in list:
|
||
if (is_array($conf['inputValue'.$suffix])) {
|
||
if (is_array($conf['inputValue' . $suffix])) {
|
||
$inputVal = implode(',', $conf['inputValue'.$suffix]);
|
||
$inputVal = implode(',', $conf['inputValue' . $suffix]);
|
||
} elseif ($conf['inputValue'.$suffix]) {
|
||
} elseif ($conf['inputValue' . $suffix]) {
|
||
$inputVal = $conf['inputValue'.$suffix];
|
||
$inputVal = $conf['inputValue' . $suffix];
|