diff --git a/mod/data/add.php b/mod/data/add.php
index cb92afeaf46..3d025494a34 100755
--- a/mod/data/add.php
+++ b/mod/data/add.php
@@ -85,8 +85,8 @@
print_heading(format_string($data->name));
/// Check to see if groups are being used here
- if ($groupmode = groupmode($course, $cm)) { // Groups are being used
- $currentgroup = setup_and_print_groups($course, $groupmode, "view.php?id=$cm->id");
+ if ($groupmode = groupmode($course, $cm)) { // Groups are being used
+ $currentgroup = setup_and_print_groups($course, $groupmode, 'add.php?d='.$data->id.'&sesskey='.sesskey().'&');
} else {
$currentgroup = 0;
}
@@ -122,13 +122,15 @@
} else {
$record->approved = 0;
}
+
+ $record->groupid = $currentgroup;
update_record('data_records',$record);
foreach ($datarecord as $name=>$value){
//this creates a new field subclass object
- if ($name != 'MAX_FILE_SIZE' && $name != 'sesskey'){
+ if ($name != 'MAX_FILE_SIZE' && $name != 'sesskey' and $name!='d' and $name!='rid'){
if (($currentfield = data_get_field_from_name($name)) !== false) {
//use native subclass method to store field data
$currentfield->update_data_content($currentfield->id, $rid, $value, $name);
@@ -145,7 +147,7 @@
foreach ($datarecord as $name => $value){ //check to see if everything is empty
- if ($name != 'MAX_FILE_SIZE' and $name != 'sesskey'){
+ if ($name != 'MAX_FILE_SIZE' and $name != 'sesskey' and $name!='d' and $name!='rid'){
//call native method to check validity
$currentfield = data_get_field_from_name($name);
if ($currentfield->notemptyfield($value, $name)){
@@ -155,7 +157,7 @@
} ///End of Empty form checking
- if (!$emptyform && $recordid = data_add_record($data->id)){ //add instance to data_record
+ if (!$emptyform && $recordid = data_add_record($data->id, $currentgroup)){ //add instance to data_record
$fields = get_records('data_fields','dataid',$data->id);
//do a manual round of inserting, to make sure even empty conentes get stored
@@ -166,7 +168,7 @@
}
//for each field in the add form, add it to the data_content.
foreach ($datarecord as $name => $value){
- if ($name != 'MAX_FILE_SIZE' && $name != 'sesskey'){ //hack to skip these inputs
+ if ($name != 'MAX_FILE_SIZE' && $name != 'sesskey' and $name!='d' and $name!='rid'){ //hack to skip these inputs
$currentfield = data_get_field_from_name($name);
//use native subclass method to sore field data
$currentfield->update_data_content($currentfield->id, $recordid, $value, $name);
diff --git a/mod/data/lib.php b/mod/data/lib.php
index 75fa20acd33..d5bbcca1f2a 100755
--- a/mod/data/lib.php
+++ b/mod/data/lib.php
@@ -661,7 +661,7 @@ function data_get_coursemodule_info($coursemodule) {
* @param string $template *
* output null *
************************************************************************/
-function data_print_template($records, $data, $search, $template, $sort, $page, $rid, $order){
+function data_print_template($records, $data, $search, $template, $sort, $page, $rid, $order, $group){
global $CFG, $course;
foreach ($records as $record){ //only 1 record for single mode
@@ -703,7 +703,7 @@ function data_print_template($records, $data, $search, $template, $sort, $page,
}else {
$replacement[] = '';
}
- $replacement[] = '
';
+ $replacement[] = '
';
if (isteacher($course->id) && ($data->approval) && (!$record->approved)){
$replacement[] = data_print_approve_button($record->id, $data->id, $page, $rid, $search, $sort, $order);
diff --git a/mod/data/view.php b/mod/data/view.php
index 3dd8c52d442..2b798fed907 100755
--- a/mod/data/view.php
+++ b/mod/data/view.php
@@ -37,7 +37,7 @@
$perpagemenu = optional_param('perpage1', 0, PARAM_INT); //value from drop down
$sort = optional_param('sort',0,PARAM_INT); //sort by field
$order = optional_param('order','ASC',PARAM_ALPHA); //sort order
-
+ $group = optional_param('group','0',PARAM_INT); //groupid
if ($id) {
@@ -117,13 +117,13 @@
/// Check to see if groups are being used here
if ($groupmode = groupmode($course, $cm)) { // Groups are being used
- $currentgroup = setup_and_print_groups($course, $groupmode, "'view.php?d='.$data->id.'&search='.s($search).'&sort='.s($sort).'&order='.s($order).'&page='.$page.'&'");
+ $currentgroup = setup_and_print_groups($course, $groupmode, 'view.php?d='.$data->id.'&search='.s($search).'&sort='.s($sort).'&order='.s($order).'&page='.$page.'&');
} else {
$currentgroup = 0;
}
if ($currentgroup) {
- $groupselect = " AND groupid = '$currentgroup'";
+ $groupselect = " AND r.groupid = '$currentgroup'";
$groupparam = "&groupid=$currentgroup";
} else {
$groupselect = "";
@@ -201,7 +201,7 @@
$perpage = get_user_preferences('data_perpage', 10); //get default per page
- $baseurl = 'view.php?d='.$data->id.'&search='.s($search).'&sort='.s($sort).'&order='.s($order).'&';
+ $baseurl = 'view.php?d='.$data->id.'&search='.s($search).'&sort='.s($sort).'&order='.s($order).'&group='.$currentgroup.'&';
//if database requires approval, then we need to do some work
@@ -233,7 +233,7 @@
WHERE c.recordid = r.id
AND c1.recordid = r.id
AND r.dataid = '.$data->id.'
- AND c.fieldid = '.$sort.'
+ AND c.fieldid = '.$sort.' '.$groupselect.'
AND ((c1.content LIKE "%'.$search.'%") OR
(c1.content1 LIKE "%'.$search.'%") OR
(c1.content2 LIKE "%'.$search.'%") OR
@@ -248,7 +248,7 @@
WHERE c.recordid = r.id
AND c1.recordid = r.id
AND r.dataid = '.$data->id.'
- AND c.fieldid = '.$sort.'
+ AND c.fieldid = '.$sort.' '.$groupselect.'
AND ((c1.content LIKE "%'.$search.'%") OR
(c1.content1 LIKE "%'.$search.'%") OR
(c1.content2 LIKE "%'.$search.'%") OR
@@ -266,7 +266,7 @@
WHERE c.recordid = r.id
AND c1.recordid = r.id
AND r.dataid = '.$data->id.'
- AND c.fieldid = '.$sort.' '.$ridsql.'
+ AND c.fieldid = '.$sort.' '.$ridsql.' '.$groupselect.'
AND ((c1.content LIKE "%'.$search.'%") OR
(c1.content1 LIKE "%'.$search.'%") OR
(c1.content2 LIKE "%'.$search.'%") OR
@@ -280,7 +280,7 @@
FROM '.$CFG->prefix.'data_content c, '
.$CFG->prefix.'data_fields f, '
.$CFG->prefix.'data_records r
- WHERE c.recordid = r.id '.$approvesql.' AND
+ WHERE c.recordid = r.id '.$groupselect.' '.$approvesql.' AND
c.fieldid = f.id AND f.dataid = '
.$data->id.' AND c.content LIKE "%'.$search.'%" ORDER BY r.id '.$order.' ';
@@ -288,7 +288,7 @@
FROM '.$CFG->prefix.'data_content c, '
.$CFG->prefix.'data_fields f, '
.$CFG->prefix.'data_records r
- WHERE c.recordid = r.id '.$approvesql.' AND
+ WHERE c.recordid = r.id '.$groupselect.' '.$approvesql.' AND
c.fieldid = f.id AND f.dataid = '
.$data->id.' AND c.content LIKE "%'.$search.'%" ORDER BY r.id '.$order.' ';
@@ -296,18 +296,18 @@
FROM '.$CFG->prefix.'data_content c, '
.$CFG->prefix.'data_fields f, '
.$CFG->prefix.'data_records r
- WHERE c.recordid = r.id '.$approvesql.' AND
+ WHERE c.recordid = r.id '.$groupselect.' '.$approvesql.' AND
c.fieldid = f.id AND f.dataid = '
.$data->id.' '.$ridsql.' AND c.content LIKE "%'.$search.'%" ORDER BY r.id '.$order.' ';
} else { //else get everything, no search, no sort
- $sql = 'SELECT * FROM '.$CFG->prefix.'data_records r WHERE r.dataid ='.$data->id.' '.$approvesql.' ORDER BY r.id '.$order.' ';
+ $sql = 'SELECT * FROM '.$CFG->prefix.'data_records r WHERE r.dataid ='.$data->id.' '.$groupselect.' '.$approvesql.' ORDER BY r.id '.$order.' ';
$sqlcount = 'SELECT COUNT(*) FROM '.$CFG->prefix
- .'data_records r WHERE r.dataid ='.$data->id.' '.$approvesql.'ORDER BY r.id '.$order.' ';
+ .'data_records r WHERE r.dataid ='.$data->id.' '.$groupselect.' '.$approvesql.'ORDER BY r.id '.$order.' ';
$sqlindex = 'SELECT COUNT(*) FROM '.$CFG->prefix
- .'data_records r WHERE r.dataid ='.$data->id.' '.$ridsql.' '.$approvesql .'ORDER BY r.id '.$order.' ';
+ .'data_records r WHERE r.dataid ='.$data->id.' '.$groupselect.' '.$ridsql.' '.$approvesql .'ORDER BY r.id '.$order.' ';
}
if ($rid) { //this is used in zooming
@@ -353,7 +353,7 @@
print_paging_bar($totalcount, $page, $perpage, $baseurl, $pagevar='page');
//for each record we find, we do a string replacement for tags.
- data_print_template($records, $data, $search, $listmode, $sort, $page, $rid, $order);
+ data_print_template($records, $data, $search, $listmode, $sort, $page, $rid, $order, $currentgroup);
print_paging_bar($totalcount, $page, $perpage, $baseurl, $pagevar='page');
if ($perpage > 1){