/** * @see ItemClassInterface::delete() * @return bool */ public function delete() { global $transaction; if ($this->class_id and $this->item_class and $this->item_has_item_class) { $transaction_id = $transaction->begin(); $item_link_array = $this->list_items(); if (is_array($item_link_array) and count($item_link_array) >= 1) { foreach ($item_link_array as $key => $value) { $item_has_item_class_access = new ItemHasItemClass_Access($value); if ($item_has_item_class_access->delete() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } } $item_information_array = ItemInformation::list_class_information($this->class_id); if (is_array($item_information_array) and count($item_information_array) >= 1) { foreach ($item_information_array as $key => $value) { $item_information = new ItemInformation($value); if ($item_information->unlink_class($this->class_id) == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } } if ($this->item_class->delete() == true) { if ($transaction_id != null) { $transaction->commit($transaction_id); } $this->__destruct(); return true; } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } else { return false; } }