diff --git a/mod/data/lib.php b/mod/data/lib.php
index 7ac3f844df3..d097bc33749 100755
--- a/mod/data/lib.php
+++ b/mod/data/lib.php
@@ -959,9 +959,8 @@ function data_get_participants($dataid) {
* @param string $template *
* output null *
************************************************************************/
-function data_print_template($template, $records, $data, $search='',$page=0, $return=false) {
+function data_print_template($template, $records, $data, $search='', $page=0, $return=false) {
global $CFG, $DB;
-
$cm = get_coursemodule_from_instance('data', $data->id);
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
@@ -1011,10 +1010,14 @@ function data_print_template($template, $records, $data, $search='',$page=0, $re
$replacement[] = '';
$replacement[] = '';
}
+
+ $moreurl = $CFG->wwwroot . '/mod/data/view.php?d=' . $data->id . '&rid=' . $record->id;
+ $search && $moreurl .= '&filter=1';
$patterns[]='##more##';
- $replacement[] = '
';
+ $replacement[] = '
';
+
$patterns[]='##moreurl##';
- $replacement[] = $CFG->wwwroot.'/mod/data/view.php?d='.$data->id.'&rid='.$record->id;
+ $replacement[] = $moreurl;
$patterns[]='##user##';
$replacement[] = '';
+ echo ' ';
echo ' ';
echo ' ';
diff --git a/mod/data/view.php b/mod/data/view.php
index 63c91f0ef47..dd1b690c7a6 100755
--- a/mod/data/view.php
+++ b/mod/data/view.php
@@ -30,11 +30,12 @@
require_once('pagelib.php');
/// One of these is necessary!
- $id = optional_param('id', 0, PARAM_INT); // course module id
- $d = optional_param('d', 0, PARAM_INT); // database id
- $rid = optional_param('rid', 0, PARAM_INT); //record id
-
- $mode = optional_param('mode', '', PARAM_ALPHA); // Force the browse mode ('single')
+ $id = optional_param('id', 0, PARAM_INT); // course module id
+ $d = optional_param('d', 0, PARAM_INT); // database id
+ $rid = optional_param('rid', 0, PARAM_INT); //record id
+ $mode = optional_param('mode', '', PARAM_ALPHA); // Force the browse mode ('single')
+ $filter = optional_param('filter', 0, PARAM_BOOL);
+ // search filter will only be applied when $filter is true
$edit = optional_param('edit', -1, PARAM_BOOL);
$page = optional_param('page', 0, PARAM_INT);
@@ -143,7 +144,6 @@
//(even if page 0 is revisited).
//A false $paging flag generates advanced search results based on the fields input by the user.
//A true $paging flag generates davanced search results from the $SESSION global.
- //(See lines 147-158)
$paging = optional_param('paging', NULL, PARAM_BOOL);
if($page == 0 && !isset($paging)) {
@@ -224,6 +224,9 @@
$paging = NULL;
}
+ // Disable search filters if $filter is not true:
+ $filter || $search = '';
+
$textlib = textlib_get_instance();
if ($textlib->strlen($search) < 2) {
$search = '';
@@ -600,8 +603,8 @@
}
if ($mode == 'single') { // Single template
- $baseurl = 'view.php?d='.$data->id.'&mode=single&';
-
+ $baseurl = 'view.php?d=' . $data->id . '&mode=single&';
+ $search && $baseurl .= 'filter=1&';
print_paging_bar($totalcount, $page, $nowperpage, $baseurl, $pagevar='page');
if (empty($data->singletemplate)){