MDL-35961 - mod/data: Removed duplicate data_content join in simple searches. Thanks to Patrick Pollet ([email protected]) for his patch

This commit is contained in:
Adrian Greeve
2012-11-01 16:28:19 +08:00
parent 6109f2112c
commit eb6e0c613d
+6 -8
View File
@@ -511,11 +511,10 @@ if ($showactivity) {
$what = ' DISTINCT r.id, r.approved, r.timecreated, r.timemodified, r.userid, u.firstname, u.lastname';
$count = ' COUNT(DISTINCT c.recordid) ';
$tables = '{data_content} c,{data_records} r, {data_content} cs, {user} u ';
$tables = '{data_content} c,{data_records} r, {user} u ';
$where = 'WHERE c.recordid = r.id
AND r.dataid = :dataid
AND r.userid = u.id
AND cs.recordid = r.id ';
AND r.userid = u.id ';
$params['dataid'] = $data->id;
$sortorder = ' ORDER BY '.$ordering.', r.id ASC ';
$searchselect = '';
@@ -541,7 +540,7 @@ if ($showactivity) {
$advparams = array_merge($advparams, $val->params);
}
} else if ($search) {
$searchselect = " AND (".$DB->sql_like('cs.content', ':search1', false)." OR ".$DB->sql_like('u.firstname', ':search2', false)." OR ".$DB->sql_like('u.lastname', ':search3', false)." ) ";
$searchselect = " AND (".$DB->sql_like('c.content', ':search1', false)." OR ".$DB->sql_like('u.firstname', ':search2', false)." OR ".$DB->sql_like('u.lastname', ':search3', false)." ) ";
$params['search1'] = "%$search%";
$params['search2'] = "%$search%";
$params['search3'] = "%$search%";
@@ -556,12 +555,11 @@ if ($showactivity) {
$what = ' DISTINCT r.id, r.approved, r.timecreated, r.timemodified, r.userid, u.firstname, u.lastname, ' . $sortcontentfull . ' AS sortorder ';
$count = ' COUNT(DISTINCT c.recordid) ';
$tables = '{data_content} c, {data_records} r, {data_content} cs, {user} u ';
$tables = '{data_content} c, {data_records} r, {user} u ';
$where = 'WHERE c.recordid = r.id
AND c.fieldid = :sort
AND r.dataid = :dataid
AND r.userid = u.id
AND cs.recordid = r.id ';
AND r.userid = u.id ';
$params['dataid'] = $data->id;
$params['sort'] = $sort;
$sortorder = ' ORDER BY sortorder '.$order.' , r.id ASC ';
@@ -587,7 +585,7 @@ if ($showactivity) {
$advparams = array_merge($advparams, $val->params);
}
} else if ($search) {
$searchselect = " AND (".$DB->sql_like('cs.content', ':search1', false)." OR ".$DB->sql_like('u.firstname', ':search2', false)." OR ".$DB->sql_like('u.lastname', ':search3', false)." ) ";
$searchselect = " AND (".$DB->sql_like('c.content', ':search1', false)." OR ".$DB->sql_like('u.firstname', ':search2', false)." OR ".$DB->sql_like('u.lastname', ':search3', false)." ) ";
$params['search1'] = "%$search%";
$params['search2'] = "%$search%";
$params['search3'] = "%$search%";