/** * Delete current object from database * * @return boolean Deletion result */ public function delete() { if (!ObjectModel::$db) { ObjectModel::$db = Db::getInstance(); } if (!$this->_db) { $this->_db = ObjectModel::$db; } $this->clearCache(); $result = $this->_db->delete($this->def['table'], '`' . pSQL($this->def['primary']) . '` = ' . (int) $this->id); if (!$result) { return false; } $this->id = null; return $result; }
/** * Delete current object from database * * @return boolean Deletion result */ public function delete() { if (!ObjectModel::$db) { ObjectModel::$db = Db::getInstance(); } // @hook actionObject*DeleteBefore Hook::exec('actionObjectDeleteBefore', array('object' => $this)); Hook::exec('actionObject' . get_class($this) . 'DeleteBefore', array('object' => $this)); $this->clearCache(); $result = true; // Remove association to multishop table if (Shop::isTableAssociated($this->def['table'])) { $id_shop_list = Shop::getContextListShopID(); if (count($this->id_shop_list)) { $id_shop_list = $this->id_shop_list; } $result &= ObjectModel::$db->delete($this->def['table'] . '_shop', '`' . $this->def['primary'] . '`=' . (int) $this->id . ' AND id_shop IN (' . implode(', ', $id_shop_list) . ')'); } // Database deletion $has_multishop_entries = $this->hasMultishopEntries(); if ($result && !$has_multishop_entries) { $result &= ObjectModel::$db->delete($this->def['table'], '`' . pSQL($this->def['primary']) . '` = ' . (int) $this->id); } if (!$result) { return false; } // Database deletion for multilingual fields related to the object if (!empty($this->def['multilang']) && !$has_multishop_entries) { $result &= ObjectModel::$db->delete($this->def['table'] . '_lang', '`' . pSQL($this->def['primary']) . '` = ' . (int) $this->id); } // @hook actionObject*DeleteAfter Hook::exec('actionObjectDeleteAfter', array('object' => $this)); Hook::exec('actionObject' . get_class($this) . 'DeleteAfter', array('object' => $this)); return $result; }