fix unchecked foreach loops

This commit is contained in:
diml
2007-11-20 23:25:46 +00:00
parent 7bf21a5064
commit ad91f3744e
2 changed files with 45 additions and 73 deletions
+15 -22
View File
@@ -10,10 +10,6 @@
*
* Functions for iterating and retrieving the necessary records are now also included
* in this file, rather than mod/resource/lib.php
*
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
* @package search
* @version 2007110400
**/
require_once("$CFG->dirroot/search/documents/document.php");
@@ -96,12 +92,10 @@ function resource_get_content_for_index(&$notneeded) {
foreach($resources as $aResource){
$coursemodule = get_field('modules', 'id', 'name', 'resource');
$cm = get_record('course_modules', 'course', $aResource->course, 'module', $coursemodule, 'instance', $aResource->id);
if ($cm){
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
$aResource->id = $cm->id;
$documents[] = new ResourceSearchDocument(get_object_vars($aResource), $context->id);
mtrace("finished $aResource->name");
}
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
$aResource->id = $cm->id;
$documents[] = new ResourceSearchDocument(get_object_vars($aResource), $context->id);
mtrace("finished $aResource->name");
}
// special physical files handling
@@ -136,12 +130,14 @@ function resource_get_content_for_index(&$notneeded) {
$resources = get_records_sql($query);
// invokes external content extractor if exists.
foreach($resources as $aResource){
// fetches a physical indexable document and adds it to documents passed by ref
$coursemodule = get_field('modules', 'id', 'name', 'resource');
$cm = get_record('course_modules', 'id', $aResource->id);
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
resource_get_physical_file($aResource, $context->id, false, $documents);
if ($resources){
foreach($resources as $aResource){
// fetches a physical indexable document and adds it to documents passed by ref
$coursemodule = get_field('modules', 'id', 'name', 'resource');
$cm = get_record('course_modules', 'id', $aResource->id);
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
resource_get_physical_file($aResource, $context->id, false, $documents);
}
}
}
return $documents;
@@ -300,14 +296,11 @@ function resource_check_text_access($path, $itemtype, $this_id, $user, $group_id
include_once("{$CFG->dirroot}/{$path}/lib.php");
$r = get_record('resource', 'id', $this_id);
$context = get_record('context', 'id', $context_id);
$cm = get_record('course_modules', 'id', $context->instanceid);
// $cm = get_coursemodule_from_instance('resource', $r->id, $r->course);
// $context = get_context_instance(CONTEXT_MODULE, $cm->id);
$module_context = get_record('context', 'id', $context_id);
$cm = get_record('course_modules', 'id', $module_context->instanceid);
//check if found course module is visible
if (!$cm->visible and !has_capability('moodle/course:viewhiddenactivities', $context)){
if (!empty($CFG->search_access_debug)) echo "search reject : hidden resource ";
if (!$cm->visible and !has_capability('moodle/course:viewhiddenactivities', $module_context)){
return false;
}
+30 -51
View File
@@ -5,10 +5,6 @@
* 2007/08/02
*
* document handling for techproject activity module
*
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
* @package search
* @version 2007110400
*/
/* see wiki_document.php for descriptions */
@@ -83,27 +79,29 @@ function techproject_get_content_for_index(&$techproject) {
$cm = get_record('course_modules', 'course', $techproject->course, 'module', $coursemodule, 'instance', $techproject->id);
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
$entries = array_merge($requirements, $specifications, $milestones, $deliverables);
foreach($entries as $anEntry) {
if ($anEntry) {
if (strlen($anEntry->description) > 0) {
$anEntry->author = '';
$documents[] = new TechprojectEntrySearchDocument(get_object_vars($anEntry), $techproject->course, $context->id);
$entries = @array_merge($requirements, $specifications, $milestones, $deliverables);
if ($entries){
foreach($entries as $anEntry) {
if ($anEntry) {
if (strlen($anEntry->description) > 0) {
$documents[] = new TechprojectEntrySearchDocument(get_object_vars($anEntry), $techproject->course, $context->id);
}
}
}
}
foreach($tasks as $aTask) {
if ($aTask) {
if (strlen($aTask->description) > 0) {
if ($aTask->assignee){
$user = get_record('user', 'id', $aTask->assignee);
$aTask->author = fullname($user);
}
$documents[] = new TechprojectEntrySearchDocument(get_object_vars($aTask), $techproject->course, $context->id);
}
if ($tasks){
foreach($tasks as $aTask) {
if ($aTask) {
if (strlen($aTask->description) > 0) {
if ($aTask->assignee){
$user = get_record('user', 'id', $aTask->assignee);
$aTask->author = $user->firstname.' '.$user->lastname;
}
$documents[] = new TechprojectEntrySearchDocument(get_object_vars($aTask), $techproject->course, $context->id);
}
}
}
}
}
return $documents;
} //techproject_get_content_for_index
@@ -141,14 +139,10 @@ function techproject_single_document($id, $itemtype) {
$techprojet_course = get_field('techproject', 'course', 'id', $entry->projectid);
$coursemodule = get_field('modules', 'id', 'name', 'techproject');
$cm = get_record('course_modules', 'course', $techproject_course, 'module', $coursemodule, 'instance', $entry->projectid);
if ($cm){
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
$entry->type = $itemtype;
$techproject = get_record('techproject', 'id', $requirement->projectid);
return new TechprojectEntrySearchDocument(get_object_vars($anEntry), $techproject->course, $context->id);
}
return null;
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
$entry->type = $itemtype;
$techproject = get_record('techproject', 'id', $requirement->projectid);
return new TechprojectEntrySearchDocument(get_object_vars($anEntry), $techproject->course, $context->id);
} //techproject_single_document
/**
@@ -259,42 +253,27 @@ function techproject_check_text_access($path, $entry_type, $this_id, $user, $gro
// get the techproject object and all related stuff
$techproject = get_record('techproject', 'id', $this_id);
$context = get_record('context', 'id', $context_id);
$cm = get_record('course_modules', 'id', $context->instanceid);
// $cm = get_coursemodule_from_instance('techproject', $techproject->id, $techproject->course);
// $context = get_record('context', 'id', $cm->id);
if (!$cm->visible and !has_capability('moodle/course:viewhiddenactivities', $context)) return false;
$course = get_record('course', 'id', $techproject->course);
$module_context = get_record('context', 'id', $context_id);
$cm = get_record('course_modules', 'id', $module_context->instanceid);
if (!$cm->visible and !has_capability('moodle/course:viewhiddenactivities', $module_context)) return false;
//group consistency check : checks the following situations about groups
// if user is guest check access capabilities for guests :
// guests can see default project, and other records if groups are liberal
// TODO : change guestsallowed in a capability
$course = get_record('course', 'id', $techproject->course);
if (isguest() && $techproject->guestsallowed){
if ($group_id && groupmode($course, $cm) == SEPARATEGROUPS){
if (!empty($CFG->search_access_debug)) echo "search reject : no group access for guests ";
if ($group_id && groupmode($course, $cm) == SEPARATEGROUPS)
return false;
}
return true;
}
// trap if user is not same group and groups are separated
$current_group = get_current_group($course->id);
if ((groupmode($course, $cm) == SEPARATEGROUPS) && $group_id != $current_group && $group_id) {
if (!empty($CFG->search_access_debug)) echo "search reject : resource not in my group when separated ";
return false;
}
if ((groupmode($course) == SEPARATEGROUPS) && $group_id != $current_group && $group_id) return false;
//trap if ungroupedsees is off in strict access mode and user is not teacher
if ((groupmode($course, $cm) == SEPARATEGROUPS) && !$techproject->ungroupedsees && !$group_id && isteacher($user->id)){
if (!empty($CFG->search_access_debug)) echo "search reject : ungrouped cannot see anything here, unless teacher ";
return false;
}
//opening periods check
// trap if user has not capability to see hidden records and date is out of opening range
// TODO : find a strategy
$now = usertime(time());
if ((groupmode($course) == SEPARATEGROUPS) && !$techproject->ungroupedsees && !$group_id && isteacher($user->id)) return false;
return true;
} //techproject_check_text_access