Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
cesa.co.za /
sipdm.cesa.co.za /
lib /
Delete
Unzip
Name
Size
Permission
Date
Action
adodb
[ DIR ]
drwxr-sr-x
2017-06-22 15:31
ajax
[ DIR ]
drwxr-sr-x
2017-06-22 15:31
amd
[ DIR ]
drwxr-sr-x
2017-06-22 15:19
antivirus
[ DIR ]
drwxr-sr-x
2017-06-22 15:19
behat
[ DIR ]
drwxr-sr-x
2017-06-22 15:32
bennu
[ DIR ]
drwxr-sr-x
2017-06-22 15:32
classes
[ DIR ]
drwxr-sr-x
2017-06-22 15:34
db
[ DIR ]
drwxr-sr-x
2017-06-22 15:34
ddl
[ DIR ]
drwxr-sr-x
2017-06-22 15:34
dml
[ DIR ]
drwxr-sr-x
2017-06-22 15:35
dtl
[ DIR ]
drwxr-sr-x
2017-06-22 15:35
editor
[ DIR ]
drwxr-sr-x
2017-06-22 15:37
evalmath
[ DIR ]
drwxr-sr-x
2017-06-22 15:40
external
[ DIR ]
drwxr-sr-x
2017-06-22 15:40
filebrowser
[ DIR ]
drwxr-sr-x
2017-06-22 15:40
filestorage
[ DIR ]
drwxr-sr-x
2017-06-22 15:40
form
[ DIR ]
drwxr-sr-x
2017-06-22 15:40
google
[ DIR ]
drwxr-sr-x
2017-06-22 15:40
grade
[ DIR ]
drwxr-sr-x
2017-06-22 15:42
horde
[ DIR ]
drwxr-sr-x
2017-06-22 15:44
html2text
[ DIR ]
drwxr-sr-x
2017-06-22 15:44
htmlpurifier
[ DIR ]
drwxr-sr-x
2017-06-22 15:45
jabber
[ DIR ]
drwxr-sr-x
2017-06-22 15:45
jquery
[ DIR ]
drwxr-sr-x
2017-06-22 15:45
lessphp
[ DIR ]
drwxr-sr-x
2017-06-22 15:46
ltiprovider
[ DIR ]
drwxr-sr-x
2017-06-22 15:46
markdown
[ DIR ]
drwxr-sr-x
2017-06-22 15:46
maxmind
[ DIR ]
drwxr-sr-x
2017-06-22 15:46
minify
[ DIR ]
drwxr-sr-x
2017-06-22 15:46
mustache
[ DIR ]
drwxr-sr-x
2017-06-22 15:47
password_compat
[ DIR ]
drwxr-sr-x
2017-06-22 15:30
pear
[ DIR ]
drwxr-sr-x
2017-06-22 15:47
php-css-parser
[ DIR ]
drwxr-sr-x
2017-06-22 15:47
phpexcel
[ DIR ]
drwxr-sr-x
2017-06-22 15:49
phpmailer
[ DIR ]
drwxr-sr-x
2017-06-22 15:49
phpunit
[ DIR ]
drwxr-sr-x
2017-06-22 15:49
portfolio
[ DIR ]
drwxr-sr-x
2017-06-22 15:49
requirejs
[ DIR ]
drwxr-sr-x
2017-06-22 15:49
rtlcss
[ DIR ]
drwxr-sr-x
2017-06-22 15:49
scssphp
[ DIR ]
drwxr-sr-x
2017-06-22 15:49
simplepie
[ DIR ]
drwxr-sr-x
2017-06-22 15:49
spout
[ DIR ]
drwxr-sr-x
2017-06-22 15:49
tcpdf
[ DIR ]
drwxr-sr-x
2017-06-22 15:51
templates
[ DIR ]
drwxr-sr-x
2017-06-22 15:51
testing
[ DIR ]
drwxr-sr-x
2017-06-22 15:51
tests
[ DIR ]
drwxr-sr-x
2017-06-22 15:52
typo3
[ DIR ]
drwxr-sr-x
2017-06-22 15:52
xhprof
[ DIR ]
drwxr-sr-x
2017-06-22 15:53
xmldb
[ DIR ]
drwxr-sr-x
2017-06-22 15:53
yui
[ DIR ]
drwxr-sr-x
2017-06-22 15:53
yuilib
[ DIR ]
drwxr-sr-x
2017-06-22 16:01
accesslib.php
257.12
KB
-rw-r--r--
2017-06-22 15:30
adminlib.php
345.63
KB
-rw-r--r--
2017-06-22 15:30
authlib.php
26.75
KB
-rw-r--r--
2017-06-22 15:32
badgeslib.php
42.95
KB
-rw-r--r--
2017-06-22 15:32
blocklib.php
97.26
KB
-rw-r--r--
2017-06-22 15:32
boxlib.php
8.08
KB
-rw-r--r--
2017-06-22 15:32
cacert.pem
239.21
KB
-rw-r--r--
2017-06-22 15:32
cacert.txt
811
B
-rw-r--r--
2017-06-22 15:32
clilib.php
6.62
KB
-rw-r--r--
2017-06-22 15:34
completionlib.php
46.36
KB
-rw-r--r--
2017-06-22 15:34
componentlib.class.php
29.2
KB
-rw-r--r--
2017-06-22 15:34
conditionlib.php
1.11
KB
-rw-r--r--
2017-06-22 15:34
configonlylib.php
6.48
KB
-rw-r--r--
2017-06-22 15:34
cookies.js
2.37
KB
-rw-r--r--
2017-06-22 15:34
coursecatlib.php
124.32
KB
-rw-r--r--
2017-06-22 15:34
cronlib.php
11.08
KB
-rw-r--r--
2017-06-22 15:34
csslib.php
14.42
KB
-rw-r--r--
2017-06-22 15:34
csvlib.class.php
17.25
KB
-rw-r--r--
2017-06-22 15:34
customcheckslib.php
1.5
KB
-rw-r--r--
2017-06-22 15:34
dataformatlib.php
2.48
KB
-rw-r--r--
2017-06-22 15:34
datalib.php
65.83
KB
-rw-r--r--
2017-06-22 15:34
ddllib.php
4.71
KB
-rw-r--r--
2017-06-22 15:34
default.ttf
502.23
KB
-rw-r--r--
2017-06-22 15:34
deprecatedlib.php
227.36
KB
-rw-r--r--
2017-06-22 15:34
dmllib.php
12.29
KB
-rw-r--r--
2017-06-22 15:35
dtllib.php
2.58
KB
-rw-r--r--
2017-06-22 15:35
editorlib.php
6.43
KB
-rw-r--r--
2017-06-22 15:40
emptyfile.php
809
B
-rw-r--r--
2017-06-22 15:40
enrollib.php
100.43
KB
-rw-r--r--
2017-06-22 15:40
environmentlib.php
54.94
KB
-rw-r--r--
2017-06-22 15:40
eventslib.php
4.58
KB
-rw-r--r--
2017-06-22 15:40
excellib.class.php
29.16
KB
-rw-r--r--
2017-06-22 15:40
externallib.php
52.09
KB
-rw-r--r--
2017-06-22 15:40
filelib.php
177.78
KB
-rw-r--r--
2017-06-22 15:40
filterlib.php
56.44
KB
-rw-r--r--
2017-06-22 15:40
flickrlib.php
51.75
KB
-rw-r--r--
2017-06-22 15:40
formslib.php
127.64
KB
-rw-r--r--
2017-06-22 15:40
gdlib.php
16.96
KB
-rw-r--r--
2017-06-22 15:40
googleapi.php
16.34
KB
-rw-r--r--
2017-06-22 15:41
gradelib.php
60.36
KB
-rw-r--r--
2017-06-22 15:42
graphlib.php
83.1
KB
-rw-r--r--
2017-06-22 15:42
grouplib.php
38.34
KB
-rw-r--r--
2017-06-22 15:42
htaccess
1.84
KB
-rw-r--r--
2017-06-22 15:44
index.html
1
B
-rw-r--r--
2017-06-22 15:45
installlib.php
18
KB
-rw-r--r--
2017-06-22 15:45
javascript-static.js
56.77
KB
-rw-r--r--
2017-06-22 15:45
javascript.php
4.09
KB
-rw-r--r--
2017-06-22 15:45
jslib.php
4.15
KB
-rw-r--r--
2017-06-22 15:46
ldaplib.php
18.07
KB
-rw-r--r--
2017-06-22 15:46
lexer.php
16.07
KB
-rw-r--r--
2017-06-22 15:46
licenselib.php
7.25
KB
-rw-r--r--
2017-06-22 15:46
listlib.php
22.2
KB
-rw-r--r--
2017-06-22 15:46
mathslib.php
4.58
KB
-rw-r--r--
2017-06-22 15:46
medialib.php
5.4
KB
-rw-r--r--
2017-06-22 15:46
messagelib.php
25.68
KB
-rw-r--r--
2017-06-22 15:46
modinfolib.php
103.04
KB
-rw-r--r--
2017-06-22 15:46
moodlelib.php
345.25
KB
-rw-r--r--
2017-06-22 15:47
myprofilelib.php
20.9
KB
-rw-r--r--
2017-06-22 15:47
navigationlib.php
236.48
KB
-rw-r--r--
2017-06-22 15:47
oauthlib.php
21.11
KB
-rw-r--r--
2017-06-22 15:47
odslib.class.php
57.36
KB
-rw-r--r--
2017-06-22 15:47
outputactions.php
7.11
KB
-rw-r--r--
2017-06-22 15:47
outputcomponents.php
149.65
KB
-rw-r--r--
2017-06-22 15:47
outputfactories.php
18.11
KB
-rw-r--r--
2017-06-22 15:47
outputfragmentrequirementslib.php
4.17
KB
-rw-r--r--
2017-06-22 15:47
outputlib.php
85.67
KB
-rw-r--r--
2017-06-22 15:47
outputrenderers.php
194.47
KB
-rw-r--r--
2017-06-22 15:47
outputrequirementslib.php
82.56
KB
-rw-r--r--
2017-06-22 15:47
pagelib.php
77.05
KB
-rw-r--r--
2017-06-22 15:47
pdflib.php
9.23
KB
-rw-r--r--
2017-06-22 15:47
plagiarismlib.php
6.9
KB
-rw-r--r--
2017-06-22 15:49
portfoliolib.php
54.31
KB
-rw-r--r--
2017-06-22 15:49
questionlib.php
69.63
KB
-rw-r--r--
2017-06-22 15:49
recaptchalib.php
12.38
KB
-rw-r--r--
2017-06-22 15:49
requirejs.php
5.25
KB
-rw-r--r--
2017-06-22 15:49
resourcelib.php
8.91
KB
-rw-r--r--
2017-06-22 15:49
rsslib.php
17.93
KB
-rw-r--r--
2017-06-22 15:49
searchlib.php
16.23
KB
-rw-r--r--
2017-06-22 15:49
sessionkeepalive_ajax.php
1.21
KB
-rw-r--r--
2017-06-22 15:49
sessionlib.php
6.85
KB
-rw-r--r--
2017-06-22 15:49
setup.php
38.93
KB
-rw-r--r--
2017-06-22 15:49
setuplib.php
72.26
KB
-rw-r--r--
2017-06-22 15:49
soaplib.php
5.23
KB
-rw-r--r--
2017-06-22 15:49
statslib.php
67.12
KB
-rw-r--r--
2017-06-22 15:50
tablelib.php
60.3
KB
-rw-r--r--
2017-06-22 15:50
thirdpartylibs.xml
7.62
KB
-rw-r--r--
2017-06-22 15:52
tokeniserlib.php
16.48
KB
-rw-r--r--
2017-06-22 15:52
upgrade.txt
61.47
KB
-rw-r--r--
2017-06-22 15:52
upgradelib.php
90.37
KB
-rw-r--r--
2017-06-22 15:52
uploadlib.php
1.9
KB
-rw-r--r--
2017-06-22 15:52
validateurlsyntax.php
22.73
KB
-rw-r--r--
2017-06-22 15:52
webdavlib.php
67.84
KB
-rw-r--r--
2017-06-22 15:52
weblib.php
118.7
KB
-rw-r--r--
2017-06-22 15:52
wiki_to_markdown.php
13.12
KB
-rw-r--r--
2017-06-22 15:52
womenslib.php
1021
B
-rw-r--r--
2017-06-22 15:52
wordlist.txt
1.23
KB
-rw-r--r--
2017-06-22 15:52
xhtml.xsl
223
B
-rw-r--r--
2017-06-22 15:53
xmlize.php
6.63
KB
-rw-r--r--
2017-06-22 15:53
xsendfilelib.php
2.59
KB
-rw-r--r--
2017-06-22 15:53
Save
Rename
<?php // This file is part of Moodle - http://moodle.org/ // // Moodle 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 3 of the License, or // (at your option) any later version. // // Moodle 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. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * @package core * @subpackage search * @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); /** @see lexer.php */ require_once($CFG->libdir.'/lexer.php'); /** Constants for the various types of tokens */ define("TOKEN_USER","0"); define("TOKEN_META","1"); define("TOKEN_EXACT","2"); define("TOKEN_NEGATE","3"); define("TOKEN_STRING","4"); define("TOKEN_USERID","5"); define("TOKEN_DATEFROM","6"); define("TOKEN_DATETO","7"); define("TOKEN_INSTANCE","8"); /** * Class to hold token/value pairs after they're parsed. * * @package moodlecore * @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class search_token { private $value; private $type; public function __construct($type,$value){ $this->type = $type; $this->value = $this->sanitize($value); } /** * Old syntax of class constructor. Deprecated in PHP7. * * @deprecated since Moodle 3.1 */ public function search_token($type, $value) { debugging('Use of class name as constructor is deprecated', DEBUG_DEVELOPER); self::__construct($type, $value); } // Try to clean up user input to avoid potential security issues. // Need to think about this some more. function sanitize($userstring){ return htmlspecialchars($userstring); } function getValue(){ return $this->value; } function getType(){ return $this->type; } } /** * This class does the heavy lifting of lexing the search string into tokens. * Using a full-blown lexer is probably overkill for this application, but * might be useful for other tasks. * * @package moodlecore * @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class search_lexer extends Lexer{ public function __construct(&$parser){ // Call parent constructor. parent::__construct($parser); //Set up the state machine and pattern matches for transitions. // Patterns to handle strings of the form datefrom:foo // If we see the string datefrom: while in the base accept state, start // parsing a username and go to the indatefrom state. $this->addEntryPattern("datefrom:\S+","accept","indatefrom"); // Snarf everything into the username until we see whitespace, then exit // back to the base accept state. $this->addExitPattern("\s","indatefrom"); // Patterns to handle strings of the form dateto:foo // If we see the string dateto: while in the base accept state, start // parsing a username and go to the indateto state. $this->addEntryPattern("dateto:\S+","accept","indateto"); // Snarf everything into the username until we see whitespace, then exit // back to the base accept state. $this->addExitPattern("\s","indateto"); // Patterns to handle strings of the form instance:foo // If we see the string instance: while in the base accept state, start // parsing for instance number and go to the ininstance state. $this->addEntryPattern("instance:\S+","accept","ininstance"); // Snarf everything into the username until we see whitespace, then exit // back to the base accept state. $this->addExitPattern("\s","ininstance"); // Patterns to handle strings of the form userid:foo // If we see the string userid: while in the base accept state, start // parsing a username and go to the inuserid state. $this->addEntryPattern("userid:\S+","accept","inuserid"); // Snarf everything into the username until we see whitespace, then exit // back to the base accept state. $this->addExitPattern("\s","inuserid"); // Patterns to handle strings of the form user:foo // If we see the string user: while in the base accept state, start // parsing a username and go to the inusername state. $this->addEntryPattern("user:\S+","accept","inusername"); // Snarf everything into the username until we see whitespace, then exit // back to the base accept state. $this->addExitPattern("\s","inusername"); // Patterns to handle strings of the form meta:foo // If we see the string meta: while in the base accept state, start // parsing a username and go to the inmeta state. $this->addEntryPattern("subject:\S+","accept","inmeta"); // Snarf everything into the meta token until we see whitespace, then exit // back to the base accept state. $this->addExitPattern("\s","inmeta"); // Patterns to handle required exact match strings (+foo) . // If we see a + sign while in the base accept state, start // parsing an exact match string and enter the inrequired state $this->addEntryPattern("\+\S+","accept","inrequired"); // When we see white space, exit back to accept state. $this->addExitPattern("\s","inrequired"); // Handle excluded strings (-foo) // If we see a - sign while in the base accept state, start // parsing an excluded string and enter the inexcluded state $this->addEntryPattern("\-\S+","accept","inexcluded"); // When we see white space, exit back to accept state. $this->addExitPattern("\s","inexcluded"); // Patterns to handle quoted strings. // If we see a quote while in the base accept state, start // parsing a quoted string and enter the inquotedstring state. // Grab everything until we see the closing quote. $this->addEntryPattern("\"[^\"]+","accept","inquotedstring"); // When we see a closing quote, reenter the base accept state. $this->addExitPattern("\"","inquotedstring"); // Patterns to handle ordinary, nonquoted words. // When we see non-whitespace, snarf everything into the nonquoted word // until we see whitespace again. $this->addEntryPattern("\S+","accept","plainstring"); // Once we see whitespace, reenter the base accept state. $this->addExitPattern("\s","plainstring"); } /** * Old syntax of class constructor. Deprecated in PHP7. * * @deprecated since Moodle 3.1 */ public function search_lexer(&$parser) { debugging('Use of class name as constructor is deprecated', DEBUG_DEVELOPER); self::__construct($parser); } } /** * This class takes care of sticking the proper token type/value pairs into * the parsed token array. * Most functions in this class should only be called by the lexer, the * one exception being getParseArray() which returns the result. * * @package moodlecore * @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class search_parser { private $tokens; // This function is called by the code that's interested in the result of the parse operation. function get_parsed_array(){ return $this->tokens; } /* * Functions below this are part of the state machine for the parse * operation and should not be called directly. */ // Base state. No output emitted. function accept() { return true; } // State for handling datefrom:foo constructs. Potentially emits a token. function indatefrom($content){ if (strlen($content) < 10) { // State exit or missing parameter. return true; } // Strip off the datefrom: part and add the reminder to the parsed token array $param = trim(substr($content,9)); $this->tokens[] = new search_token(TOKEN_DATEFROM,$param); return true; } // State for handling dateto:foo constructs. Potentially emits a token. function indateto($content){ if (strlen($content) < 8) { // State exit or missing parameter. return true; } // Strip off the dateto: part and add the reminder to the parsed token array $param = trim(substr($content,7)); $this->tokens[] = new search_token(TOKEN_DATETO,$param); return true; } // State for handling instance:foo constructs. Potentially emits a token. function ininstance($content){ if (strlen($content) < 10) { // State exit or missing parameter. return true; } // Strip off the instance: part and add the reminder to the parsed token array $param = trim(substr($content,9)); $this->tokens[] = new search_token(TOKEN_INSTANCE,$param); return true; } // State for handling userid:foo constructs. Potentially emits a token. function inuserid($content){ if (strlen($content) < 8) { // State exit or missing parameter. return true; } // Strip off the userid: part and add the reminder to the parsed token array $param = trim(substr($content,7)); $this->tokens[] = new search_token(TOKEN_USERID,$param); return true; } // State for handling user:foo constructs. Potentially emits a token. function inusername($content){ if (strlen($content) < 6) { // State exit or missing parameter. return true; } // Strip off the user: part and add the reminder to the parsed token array $param = trim(substr($content,5)); $this->tokens[] = new search_token(TOKEN_USER,$param); return true; } // State for handling meta:foo constructs. Potentially emits a token. function inmeta($content){ if (strlen($content) < 9) { // Missing parameter. return true; } // Strip off the meta: part and add the reminder to the parsed token array. $param = trim(substr($content,8)); $this->tokens[] = new search_token(TOKEN_META,$param); return true; } // State entered when we've seen a required string (+foo). Potentially // emits a token. function inrequired($content){ if (strlen($content) < 2) { // State exit or missing parameter, don't emit. return true; } // Strip off the + sign and add the reminder to the parsed token array. $this->tokens[] = new search_token(TOKEN_EXACT,substr($content,1)); return true; } // State entered when we've seen an excluded string (-foo). Potentially // emits a token. function inexcluded($content){ if (strlen($content) < 2) { // State exit or missing parameter. return true; } // Strip off the -sign and add the reminder to the parsed token array. $this->tokens[] = new search_token(TOKEN_NEGATE,substr($content,1)); return true; } // State entered when we've seen a quoted string. Potentially emits a token. function inquotedstring($content){ if (strlen($content) < 2) { // State exit or missing parameter. return true; } // Strip off the opening quote and add the reminder to the parsed token array. $this->tokens[] = new search_token(TOKEN_STRING,substr($content,1)); return true; } // State entered when we've seen an ordinary, non-quoted word. Potentially // emits a token. function plainstring($content){ if (trim($content) === '') { // State exit return true; } // Add the string to the parsed token array. $this->tokens[] = new search_token(TOKEN_STRING,$content); return true; } } /** * Primitive function to generate a SQL string from a parse tree * using TEXT indexes. If searches aren't suitable to use TEXT * this function calls the default search_generate_SQL() one. * * @deprecated since Moodle 2.9 MDL-48939 * @todo MDL-48940 This will be deleted in Moodle 3.2 * @see search_generate_SQL() */ function search_generate_text_SQL($parsetree, $datafield, $metafield, $mainidfield, $useridfield, $userfirstnamefield, $userlastnamefield, $timefield, $instancefield) { debugging('search_generate_text_SQL() is deprecated, please use search_generate_SQL() instead.', DEBUG_DEVELOPER); return search_generate_SQL($parsetree, $datafield, $metafield, $mainidfield, $useridfield, $userfirstnamefield, $userlastnamefield, $timefield, $instancefield); } /** * Primitive function to generate a SQL string from a parse tree. * Parameters: * * $parsetree should be a parse tree generated by a * search_lexer/search_parser combination. * Other fields are database table names to search. * * @global object * @global object */ function search_generate_SQL($parsetree, $datafield, $metafield, $mainidfield, $useridfield, $userfirstnamefield, $userlastnamefield, $timefield, $instancefield) { global $CFG, $DB; static $p = 0; if ($DB->sql_regex_supported()) { $REGEXP = $DB->sql_regex(true); $NOTREGEXP = $DB->sql_regex(false); } $params = array(); $ntokens = count($parsetree); if ($ntokens == 0) { return ""; } $SQLString = ''; for ($i=0; $i<$ntokens; $i++){ if ($i > 0) {// We have more than one clause, need to tack on AND $SQLString .= ' AND '; } $type = $parsetree[$i]->getType(); $value = $parsetree[$i]->getValue(); /// Under Oracle and MSSQL, transform TOKEN searches into STRING searches and trim +- chars if (!$DB->sql_regex_supported()) { $value = trim($value, '+-'); if ($type == TOKEN_EXACT) { $type = TOKEN_STRING; } } $name1 = 'sq'.$p++; $name2 = 'sq'.$p++; switch($type){ case TOKEN_STRING: $SQLString .= "((".$DB->sql_like($datafield, ":$name1", false).") OR (".$DB->sql_like($metafield, ":$name2", false)."))"; $params[$name1] = "%$value%"; $params[$name2] = "%$value%"; break; case TOKEN_EXACT: $SQLString .= "(($datafield $REGEXP :$name1) OR ($metafield $REGEXP :$name2))"; $params[$name1] = "[[:<:]]".$value."[[:>:]]"; $params[$name2] = "[[:<:]]".$value."[[:>:]]"; break; case TOKEN_META: if ($metafield != '') { $SQLString .= "(".$DB->sql_like($metafield, ":$name1", false).")"; $params[$name1] = "%$value%"; } break; case TOKEN_USER: $SQLString .= "(($mainidfield = $useridfield) AND ((".$DB->sql_like($userfirstnamefield, ":$name1", false).") OR (".$DB->sql_like($userlastnamefield, ":$name2", false).")))"; $params[$name1] = "%$value%"; $params[$name2] = "%$value%"; break; case TOKEN_USERID: $SQLString .= "($useridfield = :$name1)"; $params[$name1] = $value; break; case TOKEN_INSTANCE: $SQLString .= "($instancefield = :$name1)"; $params[$name1] = $value; break; case TOKEN_DATETO: $SQLString .= "($timefield <= :$name1)"; $params[$name1] = $value; break; case TOKEN_DATEFROM: $SQLString .= "($timefield >= :$name1)"; $params[$name1] = $value; break; case TOKEN_NEGATE: $SQLString .= "(NOT ((".$DB->sql_like($datafield, ":$name1", false).") OR (".$DB->sql_like($metafield, ":$name2", false).")))"; $params[$name1] = "%$value%"; $params[$name2] = "%$value%"; break; default: return ''; } } return array($SQLString, $params); }