Ejemplo n.º 1
0
 /**
  * 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;
 }