/** * Update database with latest product prices and store settings * @param boolean * @return $this */ public function save() { // The instance cannot be saved if ($this->blnPreventSaving) { throw new \LogicException('The model instance has been detached and cannot be saved'); } // !HOOK: additional functionality when saving a collection if (isset($GLOBALS['ISO_HOOKS']['saveCollection']) && is_array($GLOBALS['ISO_HOOKS']['saveCollection'])) { foreach ($GLOBALS['ISO_HOOKS']['saveCollection'] as $callback) { $objCallback = \System::importStatic($callback[0]); $objCallback->{$callback}[1]($this); } } $arrDbFields = \Database::getInstance()->getFieldNames(static::$strTable); $arrModified = array_diff_key($this->arrModified, array_flip($arrDbFields)); if (!empty($arrModified)) { $arrSettings = deserialize($this->settings, true); $arrSettings = array_merge($arrSettings, array_intersect_key($this->arrData, $arrModified)); $this->settings = serialize($arrSettings); } return parent::save(); }