Skip to content

Commit

Permalink
data, forum, glossary: use sql_ilike() for a portable LIKE operator
Browse files Browse the repository at this point in the history
  • Loading branch information
martinlanghoff committed Sep 26, 2006
1 parent 95008f8 commit a8f4522
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 19 deletions.
5 changes: 3 additions & 2 deletions mod/data/lib.php
Expand Up @@ -1223,13 +1223,14 @@ function data_get_post_actions() {
function data_fieldname_exists($name, $dataid, $fieldid=0) {
global $CFG;

$LIKE = sql_ilike();
if ($fieldid) {
return record_exists_sql("SELECT * from {$CFG->prefix}data_fields AS df
WHERE df.name LIKE '$name' AND df.dataid = $dataid
WHERE df.name $LIKE '$name' AND df.dataid = $dataid
AND ((df.id < $fieldid) OR (df.id > $fieldid))");
} else {
return record_exists_sql("SELECT * from {$CFG->prefix}data_fields AS df
WHERE df.name LIKE '$name' AND df.dataid = $dataid");
WHERE df.name $LIKE '$name' AND df.dataid = $dataid");
}
}

Expand Down
16 changes: 8 additions & 8 deletions mod/forum/lib.php
Expand Up @@ -755,6 +755,7 @@ function forum_user_complete($course, $user, $mod, $forum) {

function forum_print_overview($courses,&$htmlarray) {
global $USER, $CFG;
$LIKE = sql_ilike();

if (empty($courses) || !is_array($courses) || count($courses) == 0) {
return array();
Expand All @@ -774,7 +775,7 @@ function forum_print_overview($courses,&$htmlarray) {
}
$sql = substr($sql,0,-3); // take off the last OR

$sql .= ") AND l.module = 'forum' AND action LIKE 'add post%' "
$sql .= ") AND l.module = 'forum' AND action $LIKE 'add post%' "
." AND userid != ".$USER->id." GROUP BY cmid,l.course,instance";

if (!$new = get_records_sql($sql)) {
Expand Down Expand Up @@ -856,14 +857,15 @@ function forum_print_recent_activity($course, $isteacher, $timestart) {
/// messages posted in the course since that date

global $CFG;
$LIKE = sql_ilike();

$heading = false;
$content = false;

if (!$logs = get_records_select('log', 'time > \''.$timestart.'\' AND '.
'course = \''.$course->id.'\' AND '.
'module = \'forum\' AND '.
'action LIKE \'add %\' ', 'time ASC')){
'action $LIKE \'add %\' ', 'time ASC')){
return false;
}

Expand Down Expand Up @@ -1264,15 +1266,13 @@ function forum_search_posts($searchterms, $courseid=0, $limitfrom=0, $limitnum=5
$selectdiscussion .= ")";


// Some differences in syntax for PostgreSQL.
// Some differences SQL
$LIKE = sql_ilike();
$NOTLIKE = 'NOT ' . $LIKE;
if ($CFG->dbtype == 'postgres7') {
$LIKE = 'ILIKE'; // Case-insensitive
$NOTLIKE = 'NOT ILIKE'; // Case-insensitive
$REGEXP = '~*';
$NOTREGEXP = '!~*';
} else { // Note the LIKE are casesensitive for Oracle. Oracle 10g is required to use
$LIKE = 'LIKE'; // the caseinsensitive search using regexp_like() or NLS_COMP=LINGUISTIC :-(
$NOTLIKE = 'NOT LIKE'; // See http://docs.moodle.org/en/XMLDB_Problems#Case-insensitive_searches
} else {
$REGEXP = 'REGEXP';
$NOTREGEXP = 'NOT REGEXP';
}
Expand Down
11 changes: 2 additions & 9 deletions mod/glossary/sql.php
Expand Up @@ -147,24 +147,17 @@

$where = '';
$fullpivot = 0;
if ($CFG->dbtype == "postgres7") {
$LIKE = "ILIKE"; // case-insensitive
} else {
$LIKE = "LIKE";
}
$LIKE = sql_ilike();
$NOTLIKE = 'NOT ' . $LIKE;

switch ( $mode ) {
case 'search':

/// Some differences in syntax for PostgreSQL
if ($CFG->dbtype == "postgres7") {
$LIKE = "ILIKE"; // case-insensitive
$NOTLIKE = "NOT ILIKE"; // case-insensitive
$REGEXP = "~*";
$NOTREGEXP = "!~*";
} else {
$LIKE = "LIKE";
$NOTLIKE = "NOT LIKE";
$REGEXP = "REGEXP";
$NOTREGEXP = "NOT REGEXP";
}
Expand Down

0 comments on commit a8f4522

Please sign in to comment.