? config.php
Index: course/scales.php
===================================================================
RCS file: /cvsroot/moodle/moodle/course/scales.php,v
retrieving revision 1.30.2.1
diff -u -r1.30.2.1 scales.php
--- course/scales.php 28 Feb 2007 05:36:14 -0000 1.30.2.1
+++ course/scales.php 24 Sep 2007 05:58:20 -0000
@@ -146,15 +146,15 @@
$scale->description = "";
}
- //Calculate the uses
+ //Check if the scale is in use
if ($scale->courseid == 0) {
- $scale_uses = site_scale_used($scale->id,$courses);
+ $scale_used = site_scale_used($scale->id,$courses);
} else {
- $scale_uses = course_scale_used($course->id,$scale->id);
+ $scale_used = course_scale_used($course->id,$scale->id);
}
- //Check for scale_uses
- if (!empty($scale_uses)) {
+ //Check for scale use
+ if ($scale_used)) {
error("Scale is in use and cannot be modified",$CFG->wwwroot.'/course/scales.php?id='.$course->id);
}
@@ -210,7 +210,7 @@
echo "
";
echo "| ";
echo " | ";
- echo "".get_string("usedinnplaces","",$scale_uses);
+ echo " | $stractivities: ".($scale_used ? get_string("yes") : get_string("no"));
echo " | ";
echo "
";
}
@@ -240,15 +240,15 @@
error("Scale ID was incorrect");
}
- //Calculate the uses
+ //Check if the scale is in use
if ($scale->courseid == 0) {
- $scale_uses = site_scale_used($scale->id,$courses);
+ $scale_used = site_scale_used($scale->id,$courses);
} else {
- $scale_uses = course_scale_used($course->id,$scale->id);
+ $scale_used = course_scale_used($course->id,$scale->id);
}
- //Check for scale_uses
- if (!empty($scale_uses)) {
+ //Check for scale use
+ if ($scale_used) {
error("Scale is in use and cannot be deleted",$CFG->wwwroot.'/course/scales.php?id='.$course->id);
}
@@ -271,15 +271,15 @@
error("Scale ID was incorrect");
}
- //Calculate the uses
+ //Check if the scale is in use
if ($scale->courseid == 0) {
- $scale_uses = site_scale_used($scale->id,$courses);
+ $scale_used = site_scale_used($scale->id,$courses);
} else {
- $scale_uses = course_scale_used($course->id,$scale->id);
+ $scale_used = course_scale_used($course->id,$scale->id);
}
- //Check for scale_uses
- if (!empty($scale_uses)) {
+ //Check for scale use
+ if ($scale_used)) {
error("Scale is in use and cannot be moved",$CFG->wwwroot.'/course/scales.php?id='.$course->id);
}
@@ -424,18 +424,18 @@
$line = array();
$line[] = "name\" href=\"$CFG->wwwroot/course/scales.php?id=$course->id&scaleid=$scale->id&action=details\" "."onclick=\"return openpopup('/course/scales.php?id=$course->id\&scaleid=$scale->id&action=details', 'scale', 'menubar=0,location=0,scrollbars,resizable,width=600,height=450', 0);\">".$scale->name."
".str_replace(",",", ",$scale->scale)."";
if (!empty($scale->courseid)) {
- $scales_uses = course_scale_used($course->id,$scale->id);
+ $scale_used = course_scale_used($course->id,$scale->id);
} else {
- $scales_uses = site_scale_used($scale->id,$courses);
+ $scale_used = site_scale_used($scale->id,$courses);
}
- $line[] = $scales_uses;
+ $line[] = $scale_used ? get_string("yes") : get_string("no");
if ($incustom) {
$line[] = $strcustomscale;
} else {
$line[] = $strstandardscale;
}
$buttons = "";
- if (empty($scales_uses) && ($incustom || has_capability('moodle/course:managescales', get_context_instance(CONTEXT_SYSTEM, SITEID)))) {
+ if (!$scale_used && ($incustom || has_capability('moodle/course:managescales', get_context_instance(CONTEXT_SYSTEM, SITEID)))) {
$buttons .= "id&scaleid=$scale->id&action=edit\">
pixpath/t/edit.gif\" class=\"iconsmall\" alt=\"$stredit\" /> ";
if ($incustom && has_capability('moodle/course:managescales', get_context_instance(CONTEXT_SYSTEM, SITEID))) {
Index: lib/moodlelib.php
===================================================================
RCS file: /cvsroot/moodle/moodle/lib/moodlelib.php,v
retrieving revision 1.837.2.67
diff -u -r1.837.2.67 moodlelib.php
--- lib/moodlelib.php 21 Sep 2007 02:19:26 -0000 1.837.2.67
+++ lib/moodlelib.php 24 Sep 2007 06:05:08 -0000
@@ -5953,12 +5953,11 @@
}
/**
- * This function returns the nummber of activities
- * using scaleid in a courseid
+ * Returns true if a scale is in use in the given course.
*
- * @param int $courseid ?
- * @param int $scaleid ?
- * @return int
+ * @param int $courseid The course to be checked.
+ * @param int $scaleid The scale to be checked.
+ * @return boolean
* @todo Finish documenting this function
*/
function course_scale_used($courseid, $scaleid) {
@@ -5976,42 +5975,69 @@
$function_name = $cm->modname.'_scale_used';
if (function_exists($function_name)) {
if ($function_name($cm->instance,$scaleid)) {
- $return++;
+ return true;
}
}
}
}
}
}
- return $return;
+ return false;
}
/**
- * This function returns the nummber of activities
- * using scaleid in the entire site
+ * Returns true if a scale is in use anywhere on the site.
*
- * @param int $scaleid ?
- * @return int
- * @todo Finish documenting this function. Is return type correct?
+ * @param int $scaleid The scale to be checked.
+ * @param array $courses The site courses, needed is the old way to check has to be used.
+ * @return boolean
*/
function site_scale_used($scaleid,&$courses) {
+ if (empty($scaleid)) {
+ return false;
+ }
+
global $CFG;
$return = 0;
- if (!is_array($courses) || count($courses) == 0) {
- $courses = get_courses("all",false,"c.id,c.shortname");
+ $legacy_mods = false;
+ if ($mods = get_records('modules', 'visible', 1)) {
+ foreach ($mods as $mod) {
+ //Check $mod->name/lib.php exists
+ if (file_exists($CFG->dirroot.'/mod/'.$mod->name.'/lib.php')) {
+ include_once($CFG->dirroot.'/mod/'.$mod->name.'/lib.php');
+ $function_name = $mod->name.'_scale_used_anywhere';
+ $old_function_name = $mod->name.'_scale_used';
+ if (function_exists($function_name)) {
+ if ($function_name($scaleid)) {
+ return true;
+ }
+ } else if (function_exists($old_function_name)) {
+ $legacy_mods = true;
+ debugging('Please notify the developer of module "'.$mod->name.'" that new function module_scale_used_anywhere() should be implemented.', DEBUG_DEVELOPER);
+ break;
+ }
+ }
+ }
}
- if (!empty($scaleid)) {
+ // some mods are missing the new xxx_scale_used_anywhere() - use the really slow old way
+ if ($legacy_mods) {
+ if (!is_array($courses) || count($courses) == 0) {
+ $courses = get_courses("all",false,"c.id,c.shortname");
+ }
if (is_array($courses) && count($courses) > 0) {
foreach ($courses as $course) {
- $return += course_scale_used($course->id,$scaleid);
+ if (course_scale_used($course->id,$scaleid)) {
+ return true;
+ }
}
}
}
- return $return;
+
+ return false;
}
/**
Index: mod/assignment/lib.php
===================================================================
RCS file: /cvsroot/moodle/moodle/mod/assignment/lib.php,v
retrieving revision 1.219.2.16
diff -u -r1.219.2.16 lib.php
--- mod/assignment/lib.php 17 Sep 2007 16:58:54 -0000 1.219.2.16
+++ mod/assignment/lib.php 20 Sep 2007 10:06:48 -0000
@@ -1981,6 +1981,16 @@
}
/**
+ * Returns true if the scale is in use in the system.
+ *
+ * @param $scaleid int The scale to be counted.
+ * @return boolean
+ */
+function assignment_scale_used_anywhere($scaleid) {
+ return record_exists("assignment","grade","-$scaleid");
+}
+
+/**
* Make sure up-to-date events are created for all assignment instances
*
* This standard function will check all instances of this module
Index: mod/forum/lib.php
===================================================================
RCS file: /cvsroot/moodle/moodle/mod/forum/lib.php,v
retrieving revision 1.536.2.37
diff -u -r1.536.2.37 lib.php
--- mod/forum/lib.php 23 Aug 2007 13:38:21 -0000 1.536.2.37
+++ mod/forum/lib.php 20 Sep 2007 10:11:16 -0000
@@ -1222,6 +1222,16 @@
return $return;
}
+/**
+ * Returns true if the scale is in use in the system.
+ *
+ * @param $scaleid int The scale to be counted.
+ * @return boolean
+ */
+function forum_scale_used_anywhere($scaleid) {
+ return record_exists("forum","scale","-$scaleid");
+}
+
// SQL FUNCTIONS ///////////////////////////////////////////////////////////
/**
Index: mod/glossary/lib.php
===================================================================
RCS file: /cvsroot/moodle/moodle/mod/glossary/lib.php,v
retrieving revision 1.168.2.5
diff -u -r1.168.2.5 lib.php
--- mod/glossary/lib.php 15 Jul 2007 22:24:44 -0000 1.168.2.5
+++ mod/glossary/lib.php 20 Sep 2007 10:13:00 -0000
@@ -401,6 +401,16 @@
return $return;
}
+/**
+ * Returns true if the scale is in use in the system.
+ *
+ * @param $scaleid int The scale to be counted.
+ * @return boolean
+ */
+function glossary_scale_used_anywhere($scaleid) {
+ return record_exists("glossary","scale","-$scaleid");
+}
+
//////////////////////////////////////////////////////////////////////////////////////
/// Any other glossary functions go here. Each of them must have a name that
/// starts with glossary_
Index: mod/hotpot/lib.php
===================================================================
RCS file: /cvsroot/moodle/moodle/mod/hotpot/lib.php,v
retrieving revision 1.66.2.7
diff -u -r1.66.2.7 lib.php
--- mod/hotpot/lib.php 26 Jun 2007 12:04:00 -0000 1.66.2.7
+++ mod/hotpot/lib.php 20 Sep 2007 10:13:40 -0000
@@ -1225,6 +1225,17 @@
return $report;
}
+/**
+ * Returns true if the scale is in use in the system.
+ *
+ * @param $scaleid int The scale to be counted.
+ * @return boolean
+ */
+function hotpot_scale_used_anywhere($scaleid) {
+// return record_exists("hotpot","scale","-$scaleid");
+ return false; // Scales are not used by Hotpot module
+}
+
//////////////////////////////////////////////////////////
/// Any other hotpot functions go here.
/// Each of them must have a name that starts with hotpot
Index: mod/journal/lib.php
===================================================================
RCS file: /cvsroot/moodle/moodle/mod/journal/lib.php,v
retrieving revision 1.79.2.1
diff -u -r1.79.2.1 lib.php
--- mod/journal/lib.php 15 May 2007 18:26:53 -0000 1.79.2.1
+++ mod/journal/lib.php 20 Sep 2007 10:14:32 -0000
@@ -307,6 +307,16 @@
return $return;
}
+/**
+ * Returns true if the scale is in use in the system.
+ *
+ * @param $scaleid int The scale to be counted.
+ * @return boolean
+ */
+function journal_scale_used_anywhere($scaleid) {
+ return record_exists("journal","assessed","-$scaleid");
+}
+
// SQL FUNCTIONS ///////////////////////////////////////////////////////////////////
function journal_get_users_done($journal) {
Index: mod/lams/lib.php
===================================================================
RCS file: /cvsroot/moodle/moodle/mod/lams/lib.php,v
retrieving revision 1.5.2.2
diff -u -r1.5.2.2 lib.php
--- mod/lams/lib.php 20 Feb 2007 17:31:37 -0000 1.5.2.2
+++ mod/lams/lib.php 20 Sep 2007 10:15:46 -0000
@@ -140,6 +140,17 @@
return $return;
}
+/**
+ * Returns true if the scale is in use in the system.
+ *
+ * @param $scaleid int The scale to be counted.
+ * @return boolean
+ */
+function lams_scale_used_anywhere($scaleid) {
+// return record_exists("lams","scale","-$scaleid");
+ return false;
+}
+
//////////////////////////////////////////////////////////////////////////////////////
/// Any other lams functions go here. Each of them must have a name that
/// starts with lams_