34 'comparison' => array(
37 '1_' =>
'does not contain',
38 '2_' =>
'starts with',
39 '3_' =>
'does not start with',
41 '5_' =>
'does not end with',
43 '7_' =>
'does not equal',
46 '33_' =>
'does not equal',
47 '34_' =>
'is greater than',
48 '35_' =>
'is less than',
49 '36_' =>
'is between',
50 '37_' =>
'is not between',
51 '38_' =>
'is in list',
52 '39_' =>
'is not in list',
53 '40_' =>
'binary AND equals',
54 '41_' =>
'binary AND does not equal',
55 '42_' =>
'binary OR equals',
56 '43_' =>
'binary OR does not equal',
59 '65_' =>
'does not equal',
61 '67_' =>
'does not contain',
62 '68_' =>
'is in list',
63 '69_' =>
'is not in list',
64 '70_' =>
'binary AND equals',
65 '71_' =>
'binary AND does not equal',
66 '72_' =>
'binary OR equals',
67 '73_' =>
'binary OR does not equal',
70 '97_' =>
'does not equal',
71 '98_' =>
'is greater than',
72 '99_' =>
'is less than',
73 '100_' =>
'is between',
74 '101_' =>
'is not between',
75 '102_' =>
'binary AND equals',
76 '103_' =>
'binary AND does not equal',
77 '104_' =>
'binary OR equals',
78 '105_' =>
'binary OR does not equal',
84 '161_' =>
'does not equal',
86 '163_' =>
'does not contain' 95 '0' =>
'#FIELD# LIKE \'%#VALUE#%\'',
96 '1' =>
'#FIELD# NOT LIKE \'%#VALUE#%\'',
97 '2' =>
'#FIELD# LIKE \'#VALUE#%\'',
98 '3' =>
'#FIELD# NOT LIKE \'#VALUE#%\'',
99 '4' =>
'#FIELD# LIKE \'%#VALUE#\'',
100 '5' =>
'#FIELD# NOT LIKE \'%#VALUE#\'',
101 '6' =>
'#FIELD# = \'#VALUE#\'',
102 '7' =>
'#FIELD# != \'#VALUE#\'',
104 '32' =>
'#FIELD# = \'#VALUE#\'',
105 '33' =>
'#FIELD# != \'#VALUE#\'',
106 '34' =>
'#FIELD# > #VALUE#',
107 '35' =>
'#FIELD# < #VALUE#',
108 '36' =>
'#FIELD# >= #VALUE# AND #FIELD# <= #VALUE1#',
109 '37' =>
'NOT (#FIELD# >= #VALUE# AND #FIELD# <= #VALUE1#)',
110 '38' =>
'#FIELD# IN (#VALUE#)',
111 '39' =>
'#FIELD# NOT IN (#VALUE#)',
112 '40' =>
'(#FIELD# & #VALUE#)=#VALUE#',
113 '41' =>
'(#FIELD# & #VALUE#)!=#VALUE#',
114 '42' =>
'(#FIELD# | #VALUE#)=#VALUE#',
115 '43' =>
'(#FIELD# | #VALUE#)!=#VALUE#',
117 '64' =>
'#FIELD# = \'#VALUE#\'',
118 '65' =>
'#FIELD# != \'#VALUE#\'',
119 '66' =>
'#FIELD# LIKE \'%#VALUE#%\' AND #FIELD# LIKE \'%#VALUE1#%\'',
120 '67' =>
'(#FIELD# NOT LIKE \'%#VALUE#%\' OR #FIELD# NOT LIKE \'%#VALUE1#%\')',
121 '68' =>
'#FIELD# IN (#VALUE#)',
122 '69' =>
'#FIELD# NOT IN (#VALUE#)',
123 '70' =>
'(#FIELD# & #VALUE#)=#VALUE#',
124 '71' =>
'(#FIELD# & #VALUE#)!=#VALUE#',
125 '72' =>
'(#FIELD# | #VALUE#)=#VALUE#',
126 '73' =>
'(#FIELD# | #VALUE#)!=#VALUE#',
128 '96' =>
'#FIELD# = \'#VALUE#\'',
129 '97' =>
'#FIELD# != \'#VALUE#\'',
130 '98' =>
'#FIELD# > #VALUE#',
131 '99' =>
'#FIELD# < #VALUE#',
132 '100' =>
'#FIELD# >= #VALUE# AND #FIELD# <= #VALUE1#',
133 '101' =>
'NOT (#FIELD# >= #VALUE# AND #FIELD# <= #VALUE1#)',
134 '102' =>
'(#FIELD# & #VALUE#)=#VALUE#',
135 '103' =>
'(#FIELD# & #VALUE#)!=#VALUE#',
136 '104' =>
'(#FIELD# | #VALUE#)=#VALUE#',
137 '105' =>
'(#FIELD# | #VALUE#)!=#VALUE#',
139 '128' =>
'#FIELD# = \'1\'',
140 '129' =>
'#FIELD# != \'1\'',
142 '160' =>
'#FIELD# = \'#VALUE#\'',
143 '161' =>
'#FIELD# != \'#VALUE#\'',
144 '162' =>
'(#FIELD# & #VALUE#)=#VALUE#',
145 '163' =>
'(#FIELD# & #VALUE#)=0' 227 $fieldListArr = array();
228 if (is_array(
$GLOBALS[
'TCA'][$this->table])) {
229 foreach (
$GLOBALS[
'TCA'][$this->table][
'columns'] as $fN => $value) {
230 $fieldListArr[] = $fN;
232 $fieldListArr[] =
'uid';
233 $fieldListArr[] =
'pid';
234 $fieldListArr[] =
'deleted';
235 if (
$GLOBALS[
'TCA'][$this->table][
'ctrl'][
'tstamp']) {
238 if (
$GLOBALS[
'TCA'][$this->table][
'ctrl'][
'crdate']) {
241 if (
$GLOBALS[
'TCA'][$this->table][
'ctrl'][
'cruser_id']) {
244 if (
$GLOBALS[
'TCA'][$this->table][
'ctrl'][
'sortby']) {
248 return implode(
',', $fieldListArr);
267 foreach ($fieldArr as $fN) {
269 $this->fields[$fN] = $fC[
'config'];
270 $this->fields[$fN][
'exclude'] = $fC[
'exclude'];
271 if (is_array($fC) && $fC[
'label']) {
272 $this->fields[$fN][
'label'] = rtrim(trim(
$GLOBALS[
'LANG']->sL($fC[
'label'])),
':');
273 switch ($this->fields[$fN][
'type']) {
275 if (preg_match(
'/int|year/i', $this->fields[$fN][
'eval'])) {
276 $this->fields[$fN][
'type'] =
'number';
277 } elseif (preg_match(
'/time/i', $this->fields[$fN][
'eval'])) {
278 $this->fields[$fN][
'type'] =
'time';
279 } elseif (preg_match(
'/date/i', $this->fields[$fN][
'eval'])) {
280 $this->fields[$fN][
'type'] =
'date';
282 $this->fields[$fN][
'type'] =
'text';
286 if (!$this->fields[$fN][
'items'] || count($this->fields[$fN][
'items']) <= 1) {
287 $this->fields[$fN][
'type'] =
'boolean';
289 $this->fields[$fN][
'type'] =
'binary';
293 $this->fields[$fN][
'type'] =
'multiple';
296 $this->fields[$fN][
'type'] =
'multiple';
297 if ($this->fields[$fN][
'foreign_table']) {
298 $this->fields[$fN][
'type'] =
'relation';
300 if ($this->fields[$fN][
'special']) {
301 $this->fields[$fN][
'type'] =
'text';
305 $this->fields[$fN][
'type'] =
'files';
306 if ($this->fields[$fN][
'internal_type'] ==
'db') {
307 $this->fields[$fN][
'type'] =
'relation';
321 $this->fields[$fN][
'type'] =
'text';
324 $this->fields[$fN][
'label'] =
'[FIELD: ' . $fN .
']';
327 $this->fields[$fN][
'type'] =
'relation';
328 $this->fields[$fN][
'allowed'] =
'pages';
331 $this->fields[$fN][
'type'] =
'relation';
332 $this->fields[$fN][
'allowed'] =
'be_users';
337 $this->fields[$fN][
'type'] =
'time';
340 $this->fields[$fN][
'type'] =
'boolean';
343 $this->fields[$fN][
'type'] =
'number';
399 if ($this->fields[$fN]) {
403 $this->extFieldLists[
$name] = implode(
',', $reList);
414 $this->queryConfig = $qC;
417 if ($POST[
'qG_del']) {
421 $ssArrSize =
sizeof($ssArr) - 1;
422 for ($i = 0; $i < $ssArrSize; $i++) {
423 $workArr = &$workArr[$ssArr[$i]];
426 unset($workArr[$ssArr[$i]]);
427 $workArrSize =
sizeof($workArr);
428 for ($j = $ssArr[$i]; $j < $workArrSize; $j++) {
429 $workArr[$j] = $workArr[$j + 1];
430 unset($workArr[$j + 1]);
434 if ($POST[
'qG_ins']) {
438 $ssArrSize =
sizeof($ssArr) - 1;
439 for ($i = 0; $i < $ssArrSize; $i++) {
440 $workArr = &$workArr[$ssArr[$i]];
443 $workArrSize =
sizeof($workArr);
444 for ($j = $workArrSize; $j > $ssArr[$i]; $j--) {
445 $workArr[$j] = $workArr[$j - 1];
448 unset($workArr[$ssArr[$i] + 1]);
449 $workArr[$ssArr[$i] + 1][
'type'] =
'FIELD_';
452 if ($POST[
'qG_up']) {
456 $ssArrSize =
sizeof($ssArr) - 1;
457 for ($i = 0; $i < $ssArrSize; $i++) {
458 $workArr = &$workArr[$ssArr[$i]];
461 $qG_tmp = $workArr[$ssArr[$i]];
462 $workArr[$ssArr[$i]] = $workArr[$ssArr[$i] - 1];
463 $workArr[$ssArr[$i] - 1] = $qG_tmp;
466 if ($POST[
'qG_nl']) {
470 $ssArraySize =
sizeof($ssArr) - 1;
471 for ($i = 0; $i < $ssArraySize; $i++) {
472 $workArr = &$workArr[$ssArr[$i]];
475 $tempEl = $workArr[$ssArr[$i]];
476 if (is_array($tempEl)) {
477 if ($tempEl[
'type'] !=
'newlevel') {
478 $workArr[$ssArr[$i]] = array(
479 'type' =>
'newlevel',
480 'operator' => $tempEl[
'operator'],
481 'nl' => array($tempEl)
487 if ($POST[
'qG_remnl']) {
491 $ssArrSize =
sizeof($ssArr) - 1;
492 for ($i = 0; $i < $ssArrSize; $i++) {
493 $workArr = &$workArr[$ssArr[$i]];
496 $tempEl = $workArr[$ssArr[$i]];
497 if (is_array($tempEl)) {
498 if ($tempEl[
'type'] ==
'newlevel') {
499 $a1 = array_slice($workArr, 0, $ssArr[$i]);
500 $a2 = array_slice($workArr, $ssArr[$i]);
503 $a3[0][
'operator'] = $tempEl[
'operator'];
504 $workArr = array_merge($a1, $a3, $a2);
531 if (substr($conf[
'type'], 0, 6) ==
'FIELD_') {
532 $fName = substr($conf[
'type'], 6);
533 $fType = $this->fields[$fName][
'type'];
534 } elseif ($conf[
'type'] ==
'newlevel') {
535 $fType = $conf[
'type'];
554 if ($conf[
'comparison'] >> 5 != $this->comp_offsets[$fType]) {
555 $conf[
'comparison'] = $this->comp_offsets[$fType] << 5;
583 $subscript = $parent .
'[' . $key .
']';
585 $lineHTML .= $this->
mkOperatorSelect($this->name . $subscript, $conf[
'operator'], $c, $conf[
'type'] !=
'FIELD_');
586 if (substr($conf[
'type'], 0, 6) ==
'FIELD_') {
587 $fName = substr($conf[
'type'], 6);
588 $this->fieldName = $fName;
589 $fType = $this->fields[$fName][
'type'];
590 if ($conf[
'comparison'] >> 5 != $this->comp_offsets[$fType]) {
591 $conf[
'comparison'] = $this->comp_offsets[$fType] << 5;
596 $queryConfig[$key][
'comparison'] += isset($conf[
'negate']) - $conf[
'comparison'] % 2;
597 } elseif ($conf[
'type'] ==
'newlevel') {
598 $fType = $conf[
'type'];
609 $lineHTML .=
'<input type="hidden" name="' . $this->name . $subscript .
'[type]" value="newlevel">';
613 $lineHTML .= $this->
userDef($this->name . $subscript, $conf, $fName, $fType);
616 $lineHTML .= $this->
mkTypeSelect($this->name . $subscript .
'[type]', $fName);
617 $lineHTML .= $this->
mkCompSelect($this->name . $subscript .
'[comparison]', $conf[
'comparison'], $conf[
'negate'] ? 1 : 0);
618 $lineHTML .=
'<input type="checkbox" class="checkbox"' . ($conf[
'negate'] ?
' checked' :
'') .
' name="' . $this->name . $subscript .
'[negate]' .
'" onClick="submit();">';
619 if ($conf[
'comparison'] == 100 || $conf[
'comparison'] == 101) {
621 $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]' .
'">';
622 $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]' .
'">';
623 $this->extJSCODE .=
'typo3form.fieldSet("' . $this->name . $subscript .
'[inputValue]", "date", "", 0,0);';
624 $this->extJSCODE .=
'typo3form.fieldSet("' . $this->name . $subscript .
'[inputValue1]", "date", "", 0,0);';
626 $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]' .
'">';
627 $this->extJSCODE .=
'typo3form.fieldSet("' . $this->name . $subscript .
'[inputValue]", "date", "", 0,0);';
631 $lineHTML .= $this->
mkTypeSelect($this->name . $subscript .
'[type]', $fName);
632 $lineHTML .= $this->
mkCompSelect($this->name . $subscript .
'[comparison]', $conf[
'comparison'], $conf[
'negate'] ? 1 : 0);
633 $lineHTML .=
'<input type="checkbox" class="checkbox"' . ($conf[
'negate'] ?
' checked' :
'') .
' name="' . $this->name . $subscript .
'[negate]' .
'" onClick="submit();">';
634 if ($conf[
'comparison'] == 100 || $conf[
'comparison'] == 101) {
636 $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]' .
'">';
637 $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]' .
'">';
638 $this->extJSCODE .=
'typo3form.fieldSet("' . $this->name . $subscript .
'[inputValue]", "datetime", "", 0,0);';
639 $this->extJSCODE .=
'typo3form.fieldSet("' . $this->name . $subscript .
'[inputValue1]", "datetime", "", 0,0);';
641 $lineHTML .=
'<input type="text" name="' . $this->name . $subscript .
'[inputValue]_hr' .
'" value="' . strftime(
'%H:%M %e-%m-%Y', (
int)$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]' .
'">';
642 $this->extJSCODE .=
'typo3form.fieldSet("' . $this->name . $subscript .
'[inputValue]", "datetime", "", 0,0);';
650 $lineHTML .= $this->
mkTypeSelect($this->name . $subscript .
'[type]', $fName);
651 $lineHTML .= $this->
mkCompSelect($this->name . $subscript .
'[comparison]', $conf[
'comparison'], $conf[
'negate'] ? 1 : 0);
652 $lineHTML .=
'<input type="checkbox" class="checkbox"' . ($conf[
'negate'] ?
' checked' :
'') .
' name="' . $this->name . $subscript .
'[negate]' .
'" onClick="submit();">';
653 if ($conf[
'comparison'] == 68 || $conf[
'comparison'] == 69 || $conf[
'comparison'] == 162 || $conf[
'comparison'] == 163) {
654 $lineHTML .=
'<select name="' . $this->name . $subscript .
'[inputValue]' .
'[]" style="vertical-align:top;" size="5" multiple>';
655 } elseif ($conf[
'comparison'] == 66 || $conf[
'comparison'] == 67) {
656 if (is_array($conf[
'inputValue'])) {
657 $conf[
'inputValue'] = implode(
',', $conf[
'inputValue']);
659 $lineHTML .=
'<input type="text" value="' . htmlspecialchars($conf[
'inputValue']) .
'" name="' . $this->name . $subscript .
'[inputValue]' .
'"' .
$GLOBALS[
'TBE_TEMPLATE']->formWidth(10) .
'>';
661 $lineHTML .=
'<select name="' . $this->name . $subscript .
'[inputValue]' .
'" style="vertical-align:top;" onChange="submit();">';
663 if ($conf[
'comparison'] != 66 && $conf[
'comparison'] != 67) {
665 $lineHTML .=
'</select>';
669 $lineHTML .= $this->
mkTypeSelect($this->name . $subscript .
'[type]', $fName);
670 $lineHTML .= $this->
mkCompSelect($this->name . $subscript .
'[comparison]', $conf[
'comparison'], $conf[
'negate'] ? 1 : 0);
671 $lineHTML .=
'<input type="checkbox" class="checkbox"' . ($conf[
'negate'] ?
' checked' :
'') .
' name="' . $this->name . $subscript .
'[negate]' .
'" onClick="submit();">';
672 if ($conf[
'comparison'] == 68 || $conf[
'comparison'] == 69) {
673 $lineHTML .=
'<select name="' . $this->name . $subscript .
'[inputValue]' .
'[]" style="vertical-align:top;" size="5" multiple>';
675 $lineHTML .=
'<select name="' . $this->name . $subscript .
'[inputValue]' .
'" style="vertical-align:top;" onChange="submit();">';
677 $lineHTML .=
'<option value=""></option>' . $this->
makeOptionList($fName, $conf, $this->table);
678 $lineHTML .=
'</select>';
679 if ($conf[
'comparison'] == 66 || $conf[
'comparison'] == 67) {
680 $lineHTML .=
' + <input type="text" value="' . htmlspecialchars($conf[
'inputValue1']) .
'" name="' . $this->name . $subscript .
'[inputValue1]' .
'"' .
$GLOBALS[
'TBE_TEMPLATE']->formWidth(10) .
'>';
684 $lineHTML .= $this->
mkTypeSelect($this->name . $subscript .
'[type]', $fName);
685 $lineHTML .= $this->
mkCompSelect($this->name . $subscript .
'[comparison]', $conf[
'comparison'], $conf[
'negate'] ? 1 : 0);
686 $lineHTML .=
'<input type="checkbox" class="checkbox"' . ($conf[
'negate'] ?
' checked' :
'') .
' name="' . $this->name . $subscript .
'[negate]' .
'" onClick="submit();">';
687 $lineHTML .=
'<input type="hidden" value="1" name="' . $this->name . $subscript .
'[inputValue]' .
'"' .
$GLOBALS[
'TBE_TEMPLATE']->formWidth(10) .
'>';
690 $lineHTML .= $this->
mkTypeSelect($this->name . $subscript .
'[type]', $fName);
691 $lineHTML .= $this->
mkCompSelect($this->name . $subscript .
'[comparison]', $conf[
'comparison'], $conf[
'negate'] ? 1 : 0);
692 $lineHTML .=
'<input type="checkbox" class="checkbox"' . ($conf[
'negate'] ?
' checked' :
'') .
' name="' . $this->name . $subscript .
'[negate]' .
'" onClick="submit();">';
693 if ($conf[
'comparison'] == 37 || $conf[
'comparison'] == 36) {
695 $lineHTML .=
'<input type="text" value="' . htmlspecialchars($conf[
'inputValue']) .
'" name="' . $this->name . $subscript .
'[inputValue]' .
'"' .
$GLOBALS[
'TBE_TEMPLATE']->formWidth(5) .
'> 696 <input type="text" value="' . htmlspecialchars($conf[
'inputValue1']) .
'" name="' . $this->name . $subscript .
'[inputValue1]' .
'"' .
$GLOBALS[
'TBE_TEMPLATE']->formWidth(5) .
'>';
698 $lineHTML .=
'<input type="text" value="' . htmlspecialchars($conf[
'inputValue']) .
'" name="' . $this->name . $subscript .
'[inputValue]' .
'"' .
$GLOBALS[
'TBE_TEMPLATE']->formWidth(10) .
'>';
701 if ($fType !=
'ignore') {
710 if ($c != 0 && $fType !=
'newlevel') {
713 if ($fType ==
'newlevel') {
716 $codeArr[$arrCount][
'html'] = $lineHTML;
717 $codeArr[$arrCount][
'query'] = $this->
getQuerySingle($conf, $c > 0 ? 0 : 1);
738 $fieldSetup = $this->fields[$fN];
739 if ($fieldSetup[
'type'] ==
'files') {
740 if ($conf[
'comparison'] == 66 || $conf[
'comparison'] == 67) {
741 $fileExtArray = explode(
',', $fieldSetup[
'allowed']);
742 natcasesort($fileExtArray);
743 foreach ($fileExtArray as $fileExt) {
745 $out .=
'<option value="' . $fileExt .
'" selected>.' . $fileExt .
'</option>';
747 $out .=
'<option value="' . $fileExt .
'">.' . $fileExt .
'</option>';
751 $d = dir(PATH_site . $fieldSetup[
'uploadfolder']);
752 while (FALSE !== ($entry = $d->read())) {
753 if ($entry ==
'.' || $entry ==
'..') {
756 $fileArray[] = $entry;
759 natcasesort($fileArray);
760 foreach ($fileArray as $fileName) {
762 $out .=
'<option value="' . $fileName .
'" selected>' . $fileName .
'</option>';
764 $out .=
'<option value="' . $fileName .
'">' . $fileName .
'</option>';
768 if ($fieldSetup[
'type'] ==
'multiple') {
769 foreach ($fieldSetup[
'items'] as $key => $val) {
770 if (substr($val[0], 0, 4) ==
'LLL:') {
771 $value =
$GLOBALS[
'LANG']->sL($val[0]);
776 $out .=
'<option value="' . $val[1] .
'" selected>' . $value .
'</option>';
778 $out .=
'<option value="' . $val[1] .
'">' . $value .
'</option>';
782 if ($fieldSetup[
'type'] ==
'binary') {
783 foreach ($fieldSetup[
'items'] as $key => $val) {
784 if (substr($val[0], 0, 4) ==
'LLL:') {
785 $value =
$GLOBALS[
'LANG']->sL($val[0]);
790 $out .=
'<option value="' . pow(2, $key) .
'" selected>' . $value .
'</option>';
792 $out .=
'<option value="' . pow(2, $key) .
'">' . $value .
'</option>';
796 if ($fieldSetup[
'type'] ==
'relation') {
797 if ($fieldSetup[
'items']) {
798 foreach ($fieldSetup[
'items'] as $key => $val) {
799 if (substr($val[0], 0, 4) ==
'LLL:') {
800 $value =
$GLOBALS[
'LANG']->sL($val[0]);
805 $out .=
'<option value="' . $val[1] .
'" selected>' . $value .
'</option>';
807 $out .=
'<option value="' . $val[1] .
'">' . $value .
'</option>';
811 if (stristr($fieldSetup[
'allowed'],
',')) {
812 $from_table_Arr = explode(
',', $fieldSetup[
'allowed']);
814 if (!$fieldSetup[
'prepend_tname']) {
817 while ($row =
$GLOBALS[
'TYPO3_DB']->sql_fetch_assoc($checkres)) {
818 if (stristr($row[$fN],
',')) {
819 $checkContent = explode(
',', $row[$fN]);
820 foreach ($checkContent as $singleValue) {
821 if (!stristr($singleValue,
'_')) {
822 $dontPrefixFirstTable = 1;
826 $singleValue = $row[$fN];
827 if (strlen($singleValue) && !stristr($singleValue,
'_')) {
828 $dontPrefixFirstTable = 1;
832 $GLOBALS[
'TYPO3_DB']->sql_free_result($checkres);
836 $from_table_Arr[0] = $fieldSetup[
'allowed'];
838 if ($fieldSetup[
'prepend_tname']) {
841 if ($fieldSetup[
'foreign_table']) {
842 $from_table_Arr[0] = $fieldSetup[
'foreign_table'];
845 $webMountPageTree =
'';
846 while (list(, $from_table) = each($from_table_Arr)) {
847 if ($useTablePrefix && !$dontPrefixFirstTable && $counter != 1 || $counter == 1) {
848 $tablePrefix = $from_table .
'_';
851 if (is_array(
$GLOBALS[
'TCA'][$from_table])) {
852 $labelField =
$GLOBALS[
'TCA'][$from_table][
'ctrl'][
'label'];
853 $altLabelField =
$GLOBALS[
'TCA'][$from_table][
'ctrl'][
'label_alt'];
854 if (
$GLOBALS[
'TCA'][$from_table][
'columns'][$labelField][
'config'][
'items']) {
855 foreach (
$GLOBALS[
'TCA'][$from_table][
'columns'][$labelField][
'config'][
'items'] as $labelArray) {
856 if (substr($labelArray[0], 0, 4) ==
'LLL:') {
857 $labelFieldSelect[$labelArray[1]] =
$GLOBALS[
'LANG']->sL($labelArray[0]);
859 $labelFieldSelect[$labelArray[1]] = $labelArray[0];
862 $useSelectLabels = 1;
864 if (
$GLOBALS[
'TCA'][$from_table][
'columns'][$altLabelField][
'config'][
'items']) {
865 foreach (
$GLOBALS[
'TCA'][$from_table][
'columns'][$altLabelField][
'config'][
'items'] as $altLabelArray) {
866 if (substr($altLabelArray[0], 0, 4) ==
'LLL:') {
867 $altLabelFieldSelect[$altLabelArray[1]] =
$GLOBALS[
'LANG']->sL($altLabelArray[0]);
869 $altLabelFieldSelect[$altLabelArray[1]] = $altLabelArray[0];
872 $useAltSelectLabels = 1;
874 $altLabelFieldSelect = $altLabelField ?
',' . $altLabelField :
'';
875 $select_fields =
'uid,' . $labelField . $altLabelFieldSelect;
876 if (!
$GLOBALS[
'BE_USER']->isAdmin() &&
$GLOBALS[
'TYPO3_CONF_VARS'][
'BE'][
'lockBeUserToDBmounts']) {
877 $webMounts =
$GLOBALS[
'BE_USER']->returnWebmounts();
878 $perms_clause =
$GLOBALS[
'BE_USER']->getPagePermsClause(1);
879 foreach ($webMounts as $key => $val) {
880 if ($webMountPageTree) {
881 $webMountPageTreePrefix =
',';
883 $webMountPageTree .= $webMountPageTreePrefix . $this->
getTreeList($val, 999, ($begin = 0), $perms_clause);
885 if ($from_table ==
'pages') {
886 $where_clause =
'uid IN (' . $webMountPageTree .
') ';
887 if (!
$GLOBALS[
'SOBE']->MOD_SETTINGS[
'show_deleted']) {
891 $where_clause =
'pid IN (' . $webMountPageTree .
') ';
892 if (!
$GLOBALS[
'SOBE']->MOD_SETTINGS[
'show_deleted']) {
897 $where_clause =
'uid';
898 if (!
$GLOBALS[
'SOBE']->MOD_SETTINGS[
'show_deleted']) {
903 if (!$this->tableArray[$from_table]) {
904 $res =
$GLOBALS[
'TYPO3_DB']->exec_SELECTquery($select_fields, $from_table, $where_clause, ($groupBy =
''), $orderBy, ($limit =
''));
907 while ($row =
$GLOBALS[
'TYPO3_DB']->sql_fetch_assoc($res)) {
908 $this->tableArray[$from_table][] = $row;
910 $GLOBALS[
'TYPO3_DB']->sql_free_result($res);
912 foreach ($this->tableArray[$from_table] as $key => $val) {
913 if ($useSelectLabels) {
914 $outArray[$tablePrefix . $val[
'uid']] = htmlspecialchars($labelFieldSelect[$val[$labelField]]);
915 } elseif ($val[$labelField]) {
916 $outArray[$tablePrefix . $val[
'uid']] = htmlspecialchars($val[$labelField]);
917 } elseif ($useAltSelectLabels) {
918 $outArray[$tablePrefix . $val[
'uid']] = htmlspecialchars($altLabelFieldSelect[$val[$altLabelField]]);
920 $outArray[$tablePrefix . $val[
'uid']] = htmlspecialchars($val[$altLabelField]);
923 if (
$GLOBALS[
'SOBE']->MOD_SETTINGS[
'options_sortlabel'] && is_array($outArray)) {
924 natcasesort($outArray);
928 foreach ($outArray as $key2 => $val2) {
930 $out .=
'<option value="' . $key2 .
'" selected>[' . $key2 .
'] ' . $val2 .
'</option>';
932 $out .=
'<option value="' . $key2 .
'">[' . $key2 .
'] ' . $val2 .
'</option>';
950 $indent =
'<td style="vertical-align:top;"><img height="1" width="50"></td>';
954 foreach ($codeArr as $k => $v) {
955 $line .=
'<tr>' . $indent .
'<td bgcolor="' . $bgColor .
'"' . $this->noWrap .
'>' . $v[
'html'] .
'</td></tr>';
956 if ($this->enableQueryParts) {
957 $line .=
'<tr>' . $indent .
'<td>' . $this->
formatQ($v[
'query']) .
'</td></tr>';
959 if (is_array($v[
'sub'])) {
960 $line .=
'<tr>' . $indent .
'<td' . $this->noWrap .
'>' . $this->
printCodeArray($v[
'sub'], ($l + 1)) .
'</td></tr>';
963 $out =
'<table border="0" cellpadding="0" cellspacing="1">' . $line .
'</table>';
975 return '<font size="1" face="verdana" color="maroon"><i>' . htmlspecialchars($str) .
'</i></font>';
990 $out =
'<select name="' .
$name .
'[operator]"' . ($submit ?
' onChange="submit();"' :
'') .
'>';
992 $out .=
'<option value="AND"' . (!$op || $op ==
'AND' ?
' selected' :
'') .
'>' . $this->lang[
'AND'] .
'</option>';
993 $out .=
'<option value="OR"' . ($op ==
'OR' ?
' selected' :
'') .
'>' . $this->lang[
'OR'] .
'</option>';
996 $out =
'<input type="hidden" value="' . $op .
'" name="' .
$name .
'[operator]">';
997 $out .=
'<img src="clear.gif" height="1" width="47">';
1012 $out =
'<select name="' .
$name .
'" onChange="submit();">';
1013 $out .=
'<option value=""></option>';
1014 foreach ($this->fields as $key => $value) {
1015 if (!$value[
'exclude'] ||
$GLOBALS[
'BE_USER']->check(
'non_exclude_fields', $this->table .
':' . $key)) {
1016 $label = $this->fields[$key][
'label'];
1017 $label_alt = $this->fields[$key][
'label_alt'];
1018 $out .=
'<option value="' . $prepend . $key .
'"' . ($key == $fieldName ?
' selected' :
'') .
'>' . $label .
'</option>';
1021 $out .=
'</select>';
1034 foreach ($this->fields as $key => $value) {
1038 if ($key == $fieldName) {
1054 $compOffSet = $comparison >> 5;
1056 for ($i = 32 * $compOffSet + $neg; $i < 32 * ($compOffSet + 1); $i += 2) {
1060 if ($i >> 1 == $comparison >> 1) {
1076 $out =
'<input type="Text" value="' . htmlspecialchars($fieldName) .
'" name="' .
$name .
'"' .
$GLOBALS[
'TBE_TEMPLATE']->formWidth() .
'>' . $this->
updateIcon();
1077 $out .=
'<a href="#" onClick="document.forms[0][\'' .
$name .
'\'].value=\
'\';
return false;
">' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('actions-edit-delete', array('title' => 'Clear list')) . '</a>'; 1078 $out .= '<BR><select name="_fieldListDummy
" size="5
" onChange="document.forms[0][\
'' .
$name .
'\'].value+=\
',\'+this.value">';
1079 foreach ($this->fields as $key => $value) {
1080 if (!$value[
'exclude'] ||
$GLOBALS[
'BE_USER']->check(
'non_exclude_fields', $this->table .
':' . $key)) {
1081 $label = $this->fields[$key][
'label'];
1082 $label_alt = $this->fields[$key][
'label_alt'];
1083 $out .=
'<option value="' . $key .
'"' . ($key == $fieldName ?
' selected' :
'') .
'>' . $label .
'</option>';
1086 $out .=
'</select>';
1099 $out =
'<select name="' .
$name .
'" onChange="submit();">';
1100 $out .=
'<option value=""></option>';
1101 foreach (
$GLOBALS[
'TCA'] as $tN => $value) {
1102 if (
$GLOBALS[
'BE_USER']->check(
'tables_select', $tN)) {
1103 $out .=
'<option value="' . $tN .
'"' . ($tN == $cur ?
' selected' :
'') .
'>' .
$GLOBALS[
'LANG']->sl(
$GLOBALS[
'TCA'][$tN][
'ctrl'][
'title']) .
'</option>';
1106 $out .=
'</select>';
1120 $compOffSet = $comparison >> 5;
1121 $out =
'<select name="' .
$name .
'" onChange="submit();">';
1122 for ($i = 32 * $compOffSet + $neg; $i < 32 * ($compOffSet + 1); $i += 2) {
1123 if ($this->lang[
'comparison'][$i .
'_']) {
1124 $out .=
'<option value="' . $i .
'"' . ($i >> 1 == $comparison >> 1 ?
' selected' :
'') .
'>' . $this->lang[
'comparison'][($i .
'_')] .
'</option>';
1127 $out .=
'</select>';
1139 while (is_array($arr)) {
1141 list($key, ) = each($arr);
1193 switch ($conf[
'type']) {
1195 $qs .= LF . $pad . trim($conf[
'operator']) .
' (' . $this->
getQuery(
$queryConfig[$key][
'nl'], ($pad .
' ')) . LF . $pad .
')';
1218 $prefix = $this->enablePrefix ? $this->table .
'.' :
'';
1221 $qs .= trim(($conf[
'operator'] ?:
'AND')) .
' ';
1223 $qsTmp = str_replace(
'#FIELD#', $prefix . trim(substr($conf[
'type'], 6)), $this->compSQL[$conf[
'comparison']]);
1225 if ($conf[
'comparison'] == 68 || $conf[
'comparison'] == 69) {
1226 $inputVal = explode(
',', $inputVal);
1227 foreach ($inputVal as $key => $fileName) {
1228 $inputVal[$key] =
'\'' . $fileName .
'\'';
1230 $inputVal = implode(
',', $inputVal);
1231 $qsTmp = str_replace(
'#VALUE#', $inputVal, $qsTmp);
1232 } elseif ($conf[
'comparison'] == 162 || $conf[
'comparison'] == 163) {
1233 $inputValArray = explode(
',', $inputVal);
1235 foreach ($inputValArray as $fileName) {
1236 $inputVal += (int)$fileName;
1238 $qsTmp = str_replace(
'#VALUE#', $inputVal, $qsTmp);
1240 $qsTmp = str_replace(
'#VALUE#',
$GLOBALS[
'TYPO3_DB']->quoteStr($inputVal, $this->table), $qsTmp);
1242 if ($conf[
'comparison'] == 37 || $conf[
'comparison'] == 36 || $conf[
'comparison'] == 66 || $conf[
'comparison'] == 67 || $conf[
'comparison'] == 100 || $conf[
'comparison'] == 101) {
1245 $qsTmp = str_replace(
'#VALUE1#',
$GLOBALS[
'TYPO3_DB']->quoteStr($inputVal, $this->table), $qsTmp);
1247 $qs .= trim($qsTmp);
1260 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)) {
1261 $inputVal = $conf[
'inputValue' . $suffix];
1262 } elseif ($conf[
'comparison'] == 39 || $conf[
'comparison'] == 38) {
1265 } elseif ($conf[
'comparison'] == 68 || $conf[
'comparison'] == 69 || $conf[
'comparison'] == 162 || $conf[
'comparison'] == 163) {
1267 if (is_array($conf[
'inputValue' . $suffix])) {
1268 $inputVal = implode(
',', $conf[
'inputValue' . $suffix]);
1269 } elseif ($conf[
'inputValue' . $suffix]) {
1270 $inputVal = $conf[
'inputValue' . $suffix];
1275 $inputVal = doubleval($conf[
'inputValue' . $suffix]);
1319 public function makeSelectorTable($modSettings, $enableList =
'table,fields,query,group,order,limit') {
1320 $enableArr = explode(
',', $enableList);
1322 $TDparams =
' class="bgColor5" nowrap';
1323 if (in_array(
'table', $enableArr) && !
$GLOBALS[
'BE_USER']->userTS[
'mod.'][
'dbint.'][
'disableSelectATable']) {
1326 <td' . $TDparams .
'><strong>Select a table:</strong></td> 1327 <td' . $TDparams .
'>' . $this->
mkTableSelect(
'SET[queryTable]', $this->table) .
'</td> 1336 $this->extFieldLists[
'queryLimit'] = $modSettings[
'queryLimit'];
1337 if (!$this->extFieldLists[
'queryLimit']) {
1338 $this->extFieldLists[
'queryLimit'] = 100;
1342 $this->limitBegin = $parts[0];
1343 $this->limitLength = $parts[1];
1345 $this->limitLength = $this->extFieldLists[
'queryLimit'];
1347 $this->extFieldLists[
'queryLimit'] = implode(
',', array_slice($parts, 0, 2));
1349 if ($this->extFieldLists[
'queryOrder']) {
1350 $descParts = explode(
',', $modSettings[
'queryOrderDesc'] .
',' . $modSettings[
'queryOrder2Desc']);
1351 $orderParts = explode(
',', $this->extFieldLists[
'queryOrder']);
1353 foreach ($orderParts as $kk => $vv) {
1354 $reList[] = $vv . ($descParts[$kk] ?
' DESC' :
'');
1356 $this->extFieldLists[
'queryOrder_SQL'] = implode(
',', $reList);
1359 $this->
procesData($modSettings[
'queryConfig'] ? unserialize($modSettings[
'queryConfig']) :
'');
1361 $this->enableQueryParts = $modSettings[
'search_query_smallparts'];
1364 if (in_array(
'fields', $enableArr) && !
$GLOBALS[
'BE_USER']->userTS[
'mod.'][
'dbint.'][
'disableSelectFields']) {
1367 <td' . $TDparams .
'><strong>Select fields:</strong></td> 1368 <td' . $TDparams .
'>' . $this->
mkFieldToInputSelect(
'SET[queryFields]', $this->extFieldLists[
'queryFields']) .
'</td> 1371 if (in_array(
'query', $enableArr) && !
$GLOBALS[
'BE_USER']->userTS[
'mod.'][
'dbint.'][
'disableMakeQuery']) {
1373 <td colspan="2"' . $TDparams .
'><strong>Make Query:</strong></td> 1376 <td colspan="2">' . $queryCode .
'</td> 1380 if (in_array(
'group', $enableArr) && !
$GLOBALS[
'BE_USER']->userTS[
'mod.'][
'dbint.'][
'disableGroupBy']) {
1382 <td' . $TDparams .
'><strong>Group By:</strong></td> 1383 <td' . $TDparams .
'>' . $this->
mkTypeSelect(
'SET[queryGroup]', $this->extFieldLists[
'queryGroup'],
'') .
'</td> 1386 if (in_array(
'order', $enableArr) && !
$GLOBALS[
'BE_USER']->userTS[
'mod.'][
'dbint.'][
'disableOrderBy']) {
1387 $orderByArr = explode(
',', $this->extFieldLists[
'queryOrder']);
1389 $orderBy .= $this->
mkTypeSelect(
'SET[queryOrder]', $orderByArr[0],
'') .
' ' .
BackendUtility::getFuncCheck(
$GLOBALS[
'SOBE']->
id,
'SET[queryOrderDesc]', $modSettings[
'queryOrderDesc'],
'',
'',
'id="checkQueryOrderDesc"') .
' <label for="checkQueryOrderDesc">Descending</label>';
1390 if ($orderByArr[0]) {
1391 $orderBy .=
'<BR>' . $this->
mkTypeSelect(
'SET[queryOrder2]', $orderByArr[1],
'') .
' ' .
BackendUtility::getFuncCheck(
$GLOBALS[
'SOBE']->
id,
'SET[queryOrder2Desc]', $modSettings[
'queryOrder2Desc'],
'',
'',
'id="checkQueryOrder2Desc"') .
' <label for="checkQueryOrder2Desc">Descending</label>';
1394 <td' . $TDparams .
'><strong>Order By:</strong></td> 1395 <td' . $TDparams .
'>' . $orderBy .
'</td> 1398 if (in_array(
'limit', $enableArr) && !
$GLOBALS[
'BE_USER']->userTS[
'mod.'][
'dbint.'][
'disableLimit']) {
1399 $limit =
'<input type="Text" value="' . htmlspecialchars($this->extFieldLists[
'queryLimit']) .
'" name="SET[queryLimit]" id="queryLimit"' .
$GLOBALS[
'TBE_TEMPLATE']->formWidth(10) .
'>' . $this->
updateIcon();
1400 $prevLimit = $this->limitBegin - $this->limitLength < 0 ? 0 : $this->limitBegin - $this->limitLength;
1401 if ($this->limitBegin) {
1402 $prevButton =
'<input type="button" value="previous ' . $this->limitLength .
'" onclick=\'document.getElementById("queryLimit").value="' . $prevLimit .
',' . $this->limitLength .
'";document.forms[0].submit();\'>';
1404 if (!$this->limitLength) {
1405 $this->limitLength = 100;
1407 $nextLimit = $this->limitBegin + $this->limitLength;
1408 if ($nextLimit < 0) {
1412 $nextButton =
'<input type="button" value="next ' . $this->limitLength .
'" onclick=\'document.getElementById("queryLimit").value="' . $nextLimit .
',' . $this->limitLength .
'";document.forms[0].submit();\'>';
1414 $numberButtons =
'<input type="button" value="10" onclick=\'document.getElementById("queryLimit").value="10";document.forms[0].submit();\'>';
1415 $numberButtons .=
'<input type="button" value="20" onclick=\'document.getElementById("queryLimit").value="20";document.forms[0].submit();\'>';
1416 $numberButtons .=
'<input type="button" value="50" onclick=\'document.getElementById("queryLimit").value="50";document.forms[0].submit();\'>';
1417 $numberButtons .=
'<input type="button" value="100" onclick=\'document.getElementById("queryLimit").value="100";document.forms[0].submit();\'>';
1419 <td' . $TDparams .
'><strong>Limit:</strong></td> 1420 <td' . $TDparams .
'>' . $limit . $prevButton . $nextButton .
' ' . $numberButtons .
'</td> 1425 $out =
'<table border="0" cellpadding="3" cellspacing="1" class="qg-make-query">' . $out .
'</table>';
1426 $out .= $this->
JSbottom($this->formName);
1441 $depth = (int)$depth;
1442 $begin = (int)$begin;
1452 if ($id && $depth > 0) {
1454 while ($row =
$GLOBALS[
'TYPO3_DB']->sql_fetch_assoc($res)) {
1456 $theList .=
',' . $row[
'uid'];
1459 $theList .= $this->
getTreeList($row[
'uid'], $depth - 1, $begin - 1, $perms_clause);
1462 $GLOBALS[
'TYPO3_DB']->sql_free_result($res);
1477 $qString = $this->
getQuery($this->queryConfig);
1479 $qString =
'(' . $qString .
')';
1480 if (!
$GLOBALS[
'BE_USER']->isAdmin() &&
$GLOBALS[
'TYPO3_CONF_VARS'][
'BE'][
'lockBeUserToDBmounts']) {
1481 $webMounts =
$GLOBALS[
'BE_USER']->returnWebmounts();
1482 $perms_clause =
$GLOBALS[
'BE_USER']->getPagePermsClause(1);
1483 $webMountPageTree =
'';
1484 foreach ($webMounts as $key => $val) {
1485 if ($webMountPageTree) {
1486 $webMountPageTreePrefix =
',';
1488 $webMountPageTree .= $webMountPageTreePrefix . $this->
getTreeList($val, 999, ($begin = 0), $perms_clause);
1490 if ($this->table ==
'pages') {
1491 $qString .=
' AND uid IN (' . $webMountPageTree .
')';
1493 $qString .=
' AND pid IN (' . $webMountPageTree .
')';
1497 if (!
$GLOBALS[
'SOBE']->MOD_SETTINGS[
'show_deleted']) {
1500 $query =
$GLOBALS[
'TYPO3_DB']->SELECTquery($fieldlist, $this->table, $qString, trim($this->extFieldLists[
'queryGroup']), $this->extFieldLists[
'queryOrder'] ? trim($this->extFieldLists[
'queryOrder_SQL']) :
'', $this->extFieldLists[
'queryLimit']);
1513 if ($this->extJSCODE) {
1515 <script language="javascript" type="text/javascript" src="' .
$GLOBALS[
'BACK_PATH'] .
'sysext/backend/Resources/Public/JavaScript/jsfunc.evalfield.js"></script> 1516 <script language="javascript" type="text/javascript" src="' .
$GLOBALS[
'BACK_PATH'] .
'sysext/backend/Resources/Public/JavaScript/jsfunc.tbe_editor.js"></script> 1517 <script language="javascript" type="text/javascript"> 1518 TBE_EDITOR.formname = "' . $formname .
'"; 1519 TBE_EDITOR.formnameUENC = "' . rawurlencode($formname) .
'"; 1520 TBE_EDITOR.backend_interface = "' .
$GLOBALS[
'BE_USER']->uc[
'interfaceSetup'] .
'"; 1521 ' . $this->extJSCODE .
'
static modifyHTMLColor($color, $R, $G, $B)
makeSelectorTable($modSettings, $enableList='table, fields, query, group, order, limit')
mkTableSelect($name, $cur)
static skinImg($backPath, $src, $wHattribs='', $outputMode=0)
static getFuncCheck($mainParams, $elementName, $currentValue, $script='', $addParams='', $tagParams='')
getSelectQuery($qString='', $fN='')
mkFieldToInputSelect($name, $fieldName)
init($name, $table, $fieldList='')
mkCompSelect($name, $comparison, $neg)
static intExplode($delimiter, $string, $removeEmptyValues=FALSE, $limit=0)
verifyComparison($comparison, $neg)
static trimExplode($delim, $string, $removeEmptyValues=FALSE, $limit=0)
mkOperatorSelect($name, $op, $draw, $submit)
cleanUpQueryConfig($queryConfig)
getQuerySingle($conf, $first)
getTreeList($id, $depth, $begin=0, $perms_clause)
setAndCleanUpExternalLists($name, $list, $force='')
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]
mkTypeSelect($name, $fieldName, $prepend='FIELD_')
static inList($list, $item)
cleanInputVal($conf, $suffix='')
getQuery($queryConfig, $pad='')
makeOptionList($fN, $conf, $table)
getFormElements($subLevel=0, $queryConfig='', $parent='')
printCodeArray($codeArr, $l=0)
static deleteClause($table, $tableAlias='')
userDefCleanUp($queryConfig)