diff --git a/mod/data/field/checkbox/field.class.php b/mod/data/field/checkbox/field.class.php
index b70bd4e6175..17b98b1c3f3 100755
--- a/mod/data/field/checkbox/field.class.php
+++ b/mod/data/field/checkbox/field.class.php
@@ -113,17 +113,18 @@ class data_field_checkbox extends data_field_base {
}
return array('checked'=>$selected, 'allrequired'=>$allrequired);
}
-
+
function generate_sql($tablealias, $value) {
$allrequired = $value['allrequired'];
$selected = $value['checked'];
+ $varcharcontent = sql_compare_text("{$tablealias}.content", 255);
if ($selected) {
$conditions = array();
foreach ($selected as $sel) {
$likesel = str_replace('%', '\%', $sel);
$likeselsel = str_replace('_', '\_', $likesel);
- $conditions[] = "({$tablealias}.fieldid = {$this->field->id} AND ({$tablealias}.content = '$sel'
+ $conditions[] = "({$tablealias}.fieldid = {$this->field->id} AND ($varcharcontent = '$sel'
OR {$tablealias}.content LIKE '$likesel##%'
OR {$tablealias}.content LIKE '%##$likesel'
OR {$tablealias}.content LIKE '%##$likesel##%'))";
@@ -138,7 +139,6 @@ class data_field_checkbox extends data_field_base {
}
}
-
function update_content($recordid, $value, $name='') {
$content = new object();
$content->fieldid = $this->field->id;
diff --git a/mod/data/field/latlong/field.class.php b/mod/data/field/latlong/field.class.php
index 6da21ee09be..5cbe4e59035 100755
--- a/mod/data/field/latlong/field.class.php
+++ b/mod/data/field/latlong/field.class.php
@@ -93,7 +93,9 @@ class data_field_latlong extends data_field_base {
$latlong[0] = '';
$latlong[1] = '';
$latlong = explode (',', $value, 2);
- return " ({$tablealias}.fieldid = {$this->field->id} AND {$tablealias}.content = '$latlong[0]' AND {$tablealias}.content1 = '$latlong[1]') ";
+ $varcharlat = sql_compare_text("{$tablealias}.content");
+ $varcharlong= sql_compare_text("{$tablealias}.content1");
+ return " ({$tablealias}.fieldid = {$this->field->id} AND $varcharlat = '$latlong[0]' AND $varcharlong = '$latlong[1]') ";
}
function display_browse_field($recordid, $template) {
diff --git a/mod/data/field/menu/field.class.php b/mod/data/field/menu/field.class.php
index e2b367e6b9c..7b374e8cdc8 100755
--- a/mod/data/field/menu/field.class.php
+++ b/mod/data/field/menu/field.class.php
@@ -97,7 +97,8 @@ class data_field_menu extends data_field_base {
}
function generate_sql($tablealias, $value) {
- return " ({$tablealias}.fieldid = {$this->field->id} AND {$tablealias}.content = '$value') ";
+ $varcharcontent = sql_compare_text("{$tablealias}.content", 255);
+ return " ({$tablealias}.fieldid = {$this->field->id} AND $varcharcontent = '$value') ";
}
}
diff --git a/mod/data/field/multimenu/field.class.php b/mod/data/field/multimenu/field.class.php
index d6fcbb26edb..a51a674cd42 100755
--- a/mod/data/field/multimenu/field.class.php
+++ b/mod/data/field/multimenu/field.class.php
@@ -140,13 +140,14 @@ class data_field_multimenu extends data_field_base {
function generate_sql($tablealias, $value) {
$allrequired = $value['allrequired'];
$selected = $value['selected'];
+ $varcharcontent = sql_compare_text("{$tablealias}.content", 255);
if ($selected) {
$conditions = array();
foreach ($selected as $sel) {
$likesel = str_replace('%', '\%', $sel);
$likeselsel = str_replace('_', '\_', $likesel);
- $conditions[] = "({$tablealias}.fieldid = {$this->field->id} AND ({$tablealias}.content = '$sel'
+ $conditions[] = "({$tablealias}.fieldid = {$this->field->id} AND ($varcharcontent = '$sel'
OR {$tablealias}.content LIKE '$likesel##%'
OR {$tablealias}.content LIKE '%##$likesel'
OR {$tablealias}.content LIKE '%##$likesel##%'))";
diff --git a/mod/data/field/number/field.class.php b/mod/data/field/number/field.class.php
index 371d725ca5a..eb165048dd8 100755
--- a/mod/data/field/number/field.class.php
+++ b/mod/data/field/number/field.class.php
@@ -76,10 +76,10 @@ class data_field_number extends data_field_base {
function parse_search_field() {
return optional_param('f_'.$this->field->id, '', PARAM_NOTAGS);
}
-
- // need to cast?
+
function generate_sql($tablealias, $value) {
- return " ({$tablealias}.fieldid = {$this->field->id} AND {$tablealias}.content = '$value') ";
+ $varcharcontent = sql_compare_text("{$tablealias}.content");
+ return " ({$tablealias}.fieldid = {$this->field->id} AND $varcharcontent = '$value') ";
}
function get_sort_sql($fieldname) {
diff --git a/mod/data/field/radiobutton/field.class.php b/mod/data/field/radiobutton/field.class.php
index 04b685233e3..6cfda5e57c8 100755
--- a/mod/data/field/radiobutton/field.class.php
+++ b/mod/data/field/radiobutton/field.class.php
@@ -91,7 +91,8 @@ class data_field_radiobutton extends data_field_base {
}
function generate_sql($tablealias, $value) {
- return " ({$tablealias}.fieldid = {$this->field->id} AND {$tablealias}.content = '$value') ";
+ $varcharcontent = sql_compare_text("{$tablealias}.content", 255);
+ return " ({$tablealias}.fieldid = {$this->field->id} AND $varcharcontent = '$value') ";
}
}
diff --git a/mod/data/field/text/field.class.php b/mod/data/field/text/field.class.php
index ba13558a5f5..248d2b4791c 100755
--- a/mod/data/field/text/field.class.php
+++ b/mod/data/field/text/field.class.php
@@ -29,19 +29,19 @@ class data_field_text extends data_field_base {
function data_field_text($field=0, $data=0) {
parent::data_field_base($field, $data);
}
-
+
function display_search_field($value = '') {
- return '';
+ return '';
}
-
+
function parse_search_field() {
return optional_param('f_'.$this->field->id, '', PARAM_NOTAGS);
}
-
+
function generate_sql($tablealias, $value) {
- return " ({$tablealias}.fieldid = {$this->field->id} AND {$tablealias}.content LIKE '%{$value}%') ";
+ return " ({$tablealias}.fieldid = {$this->field->id} AND {$tablealias}.content LIKE '%{$value}%') ";
}
-
+
}
?>
diff --git a/mod/data/field/textarea/field.class.php b/mod/data/field/textarea/field.class.php
index 9d22247a4f7..7ebf19c06ba 100755
--- a/mod/data/field/textarea/field.class.php
+++ b/mod/data/field/textarea/field.class.php
@@ -68,20 +68,20 @@ class data_field_textarea extends data_field_base {
$str .= '';
return $str;
}
-
-
+
+
function display_search_field($value = '') {
- return '';
+ return '';
}
-
+
function parse_search_field() {
return optional_param('f_'.$this->field->id, '', PARAM_NOTAGS);
}
-
+
function generate_sql($tablealias, $value) {
- return " ({$tablealias}.fieldid = {$this->field->id} AND {$tablealias}.content LIKE '%{$value}%') ";
+ return " ({$tablealias}.fieldid = {$this->field->id} AND {$tablealias}.content LIKE '%{$value}%') ";
}
-
+
function gen_textarea($usehtmleditor, $text='') {
// MDL-16018: Don't print htmlarea with < 7 lines height, causes visualization problem
$text = clean_text($text);