]> git.mjollnir.org Git - moodle.git/commitdiff
Now keys are able to return their PHP specs.
authorstronk7 <stronk7>
Wed, 6 Sep 2006 19:43:38 +0000 (19:43 +0000)
committerstronk7 <stronk7>
Wed, 6 Sep 2006 19:43:38 +0000 (19:43 +0000)
lib/xmldb/classes/XMLDBKey.class.php

index 8607f4025d547f583cf3bc99dae5009e4fd02f2f..76fab318fad50cb456117516dc5c83d624a8efd3 100644 (file)
@@ -374,6 +374,53 @@ class XMLDBKey extends XMLDBObject {
         $this->changed = true;
     }
 
+    /**
+     * Returns the PHP code needed to define one XMLDBKey
+     */
+    function getPHP() {
+
+        $result = '';
+
+    /// The type
+        switch ($this->getType()) {
+            case XMLDB_KEY_PRIMARY:
+                $result .= 'XMLDB_KEY_PRIMARY' . ', ';
+                break;
+            case XMLDB_KEY_UNIQUE:
+                $result .= 'XMLDB_KEY_UNIQUE' . ', ';
+                break;
+            case XMLDB_KEY_FOREIGN:
+                $result .= 'XMLDB_KEY_FOREIGN' . ', ';
+                break;
+        }       
+    /// The fields
+        $keyfields = $this->getFields();
+        if (!empty($keyfields)) {
+            $result .= 'array(' . "'".  implode("', '", $keyfields) . "')";
+        } else {
+            $result .= 'null';
+        }   
+    /// The FKs attributes
+        if ($this->getType() == XMLDB_KEY_FOREIGN) {
+        /// The reftable
+            $reftable = $this->getRefTable();
+            if (!empty($reftable)) {
+                $result .= ", '" . $reftable . "', ";
+            } else {
+                $result .= 'null, ';
+            }   
+        /// The reffields
+            $reffields = $this->getRefFields();
+            if (!empty($reffields)) {
+                $result .= 'array(' . "'".  implode("', '", $reffields) . "')";
+            } else {
+                $result .= 'null';
+            }
+        }
+    /// Return result
+        return $result;
+    }
+
     /**     
      * Shows info in a readable format
      */