diff options
| author | Romain LE DISEZ <romain.git@ledisez.net> | 2009-07-18 17:51:23 +0200 |
|---|---|---|
| committer | Romain LE DISEZ <romain.git@ledisez.net> | 2009-07-18 17:51:23 +0200 |
| commit | c78744d4f8a0cfad7ca5aa3d2867fb66d4c6b8c4 (patch) | |
| tree | e2b4d5d066590a966d949409cb48104456edaf7e /modules/gallery/libraries/MY_ORM.php | |
| parent | 7f5030ac208c30a7dc576a57cd9e665022ccbde5 (diff) | |
| parent | df22832a5b7e7c1962940becab1c90aaec3392f9 (diff) | |
Merge commit 'upstream/master'
Diffstat (limited to 'modules/gallery/libraries/MY_ORM.php')
| -rw-r--r-- | modules/gallery/libraries/MY_ORM.php | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/modules/gallery/libraries/MY_ORM.php b/modules/gallery/libraries/MY_ORM.php index 2bd9b4eb..1d3c1ef3 100644 --- a/modules/gallery/libraries/MY_ORM.php +++ b/modules/gallery/libraries/MY_ORM.php @@ -18,6 +18,9 @@ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ class ORM extends ORM_Core { + // Track the original value of this ORM instance so that we can look it up in ORM::original() + protected $original = null; + public function open_paren() { $this->db->open_paren(); return $this; @@ -29,8 +32,30 @@ class ORM extends ORM_Core { } public function save() { - model_cache::clear($this->object_name, $this->{$this->primary_key}, $this->primary_key); - return parent::save(); + model_cache::clear(); + $result = parent::save(); + $this->original = $this->object; + return $result; + } + + public function __set($column, $value) { + if (!isset($this->original)) { + $this->original = $this->object; + } + + return parent::__set($column, $value); + } + + public function __unset($column) { + if (!isset($this->original)) { + $this->original = $this->object; + } + + return parent::__unset($column); + } + + public function original($column) { + return $this->original[$column]; } } |
