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[] = ''.get_string('more').''; + $replacement[] = ''.get_string('more').''; 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){