adding group support

This commit is contained in:
toyomoyo
2006-02-06 06:13:34 +00:00
parent a0397e90da
commit f4e101bd08
3 changed files with 24 additions and 22 deletions
+8 -6
View File
@@ -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);
+2 -2
View File
@@ -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[] = '<a href="'.$CFG->wwwroot.'/mod/data/view.php?d='.$data->id.'&amp;rid='.$record->id.'&amp;search='.$search.'&amp;sort='.$sort.'&amp;order='.$order.'&amp;"><img src="'.$CFG->pixpath.'/i/search.gif" height="11" width="11" border="0" alt="'.get_string('more').'" /></a>';
$replacement[] = '<a href="'.$CFG->wwwroot.'/mod/data/view.php?d='.$data->id.'&amp;rid='.$record->id.'&amp;search='.$search.'&amp;sort='.$sort.'&amp;order='.$order.'&amp;group='.$group.'&amp;"><img src="'.$CFG->pixpath.'/i/search.gif" height="11" width="11" border="0" alt="'.get_string('more').'" /></a>';
if (isteacher($course->id) && ($data->approval) && (!$record->approved)){
$replacement[] = data_print_approve_button($record->id, $data->id, $page, $rid, $search, $sort, $order);
+14 -14
View File
@@ -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.'&amp;search='.s($search).'&amp;sort='.s($sort).'&amp;order='.s($order).'&amp;page='.$page.'&amp;'");
$currentgroup = setup_and_print_groups($course, $groupmode, 'view.php?d='.$data->id.'&amp;search='.s($search).'&amp;sort='.s($sort).'&amp;order='.s($order).'&amp;page='.$page.'&amp;');
} else {
$currentgroup = 0;
}
if ($currentgroup) {
$groupselect = " AND groupid = '$currentgroup'";
$groupselect = " AND r.groupid = '$currentgroup'";
$groupparam = "&amp;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.'&amp;search='.s($search).'&amp;sort='.s($sort).'&amp;order='.s($order).'&amp;';
$baseurl = 'view.php?d='.$data->id.'&amp;search='.s($search).'&amp;sort='.s($sort).'&amp;order='.s($order).'&amp;group='.$currentgroup.'&amp;';
//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){