Example #1
0
 /**
  * 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();
 }