]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-9506 Forgot to add the grade_scale.php file.
authornicolasconnault <nicolasconnault>
Tue, 1 May 2007 05:47:10 +0000 (05:47 +0000)
committernicolasconnault <nicolasconnault>
Tue, 1 May 2007 05:47:10 +0000 (05:47 +0000)
lib/grade/grade_scale.php [new file with mode: 0644]

diff --git a/lib/grade/grade_scale.php b/lib/grade/grade_scale.php
new file mode 100644 (file)
index 0000000..4d5e4bc
--- /dev/null
@@ -0,0 +1,127 @@
+<?php // $Id$
+
+///////////////////////////////////////////////////////////////////////////
+//                                                                       //
+// NOTICE OF COPYRIGHT                                                   //
+//                                                                       //
+// Moodle - Modular Object-Oriented Dynamic Learning Environment         //
+//          http://moodle.com                                            //
+//                                                                       //
+// Copyright (C) 2001-2003  Martin Dougiamas  http://dougiamas.com       //
+//                                                                       //
+// This program is free software; you can redistribute it and/or modify  //
+// it under the terms of the GNU General Public License as published by  //
+// the Free Software Foundation; either version 2 of the License, or     //
+// (at your option) any later version.                                   //
+//                                                                       //
+// This program is distributed in the hope that it will be useful,       //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of        //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         //
+// GNU General Public License for more details:                          //
+//                                                                       //
+//          http://www.gnu.org/copyleft/gpl.html                         //
+//                                                                       //
+///////////////////////////////////////////////////////////////////////////
+
+require_once('grade_object.php');
+
+/**
+ * Class representing a grade item. It is responsible for handling its DB representation,
+ * modifying and returning its metadata.
+ */
+class grade_scale extends grade_object {
+    /**
+     * DB Table (used by grade_object).
+     * @var string $table
+     */
+    var $table = 'scale';
+    
+    /**
+     * Array of class variables that are not part of the DB table fields
+     * @var array $nonfields
+     */
+    var $nonfields = array('table', 'nonfields', 'scale_items');
+  
+    /**
+     * The course this scale belongs to.
+     * @var int $courseid
+     */
+    var $courseid;
+    
+    /**
+     * The name of the scale.
+     * @var string $name
+     */
+    var $name;
+
+    /**
+     * The items in this scale.
+     * @var array $scale_items
+     */
+    var $scale_items = array();
+
+    /**
+     * A string representatin of the scale items (a comma-separated list).
+     * @var string $scale
+     */
+    var $scale;
+
+    /**
+     * A description for this scale.
+     * @var string $description
+     */
+    var $description;
+    
+    /**
+     * Loads the scale's items into the $scale_items array. 
+     * There are three ways to achieve this:
+     * 1. No argument given: The $scale string is already loaded and exploded to an array of items.
+     * 2. A string is given: A comma-separated list of items is exploded into an array of items.
+     * 3. An array of items is given and saved directly as the array of items for this scale.
+     *
+     * @param mixed $items Could be null, a string or an array. The method behaves differently for each case.
+     * @return array The resulting array of scale items or null if the method failed to produce one.
+     */
+    function load_items($items=NULL) {
+        if (empty($items)) {
+            $this->scale_items = explode(',', $this->scale);
+        } elseif (is_array($items)) {
+            $this->scale_items = $items;
+        } else {
+            $this->scale_items = explode(',', $items);
+        }
+        
+        // Trim whitespace around each value
+        foreach ($this->scale_items as $key => $val) {
+            $this->scale_items[$key] = trim($val);
+        }
+
+        return $this->scale_items;
+    }
+
+    /**
+     * Compacts (implodes) the array of items in $scale_items into a comma-separated string, $scale.
+     * There are three ways to achieve this:
+     * 1. No argument given: The $scale_items array is already loaded and imploded to a string of items.
+     * 2. An array is given and is imploded into a string of items.
+     * 3. A string of items is given and saved directly as the $scale variable.
+     * NOTE: This method is the exact reverse of load_items, and their input/output should be interchangeable. However,
+     * because load_items() trims the whitespace around the items, when the string is reconstructed these whitespaces will
+     * be missing. This is not an issue, but should be kept in mind when comparing the two strings.
+     *
+     * @param mixed $items Could be null, a string or an array. The method behaves differently for each case.
+     * @return array The resulting string of scale items or null if the method failed to produce one.
+     */
+    function compact_items($items=NULL) {
+        if (empty($items)) {
+            $this->scale = implode(',', $this->scale_items);
+        } elseif (is_array($items)) {
+            $this->scale = implode(',', $items);
+        } else {
+            $this->scale = $items;
+        }
+
+        return $this->scale; 
+    } 
+}
+?>