From: stronk7 Date: Wed, 6 Sep 2006 19:43:38 +0000 (+0000) Subject: Now keys are able to return their PHP specs. X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=989a41af6f3cf33963ce6e83704139c06163c0a7;p=moodle.git Now keys are able to return their PHP specs. --- diff --git a/lib/xmldb/classes/XMLDBKey.class.php b/lib/xmldb/classes/XMLDBKey.class.php index 8607f4025d..76fab318fa 100644 --- a/lib/xmldb/classes/XMLDBKey.class.php +++ b/lib/xmldb/classes/XMLDBKey.class.php @@ -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 */