/**
  * Destroy this object in DB
  *
  * @return boolean true on success, false on failure
  * @access public
  */
 function destroy()
 {
     if ($this->_ID) {
         //first delete old polyobject references
         $sql = "\n\t\t\t\tdelete from\n\t\t\t\t\tmod_object_polyobjects\n\t\t\t\twhere\n\t\t\t\t\tobject_type_id_moo = '" . $this->_ID . "'\n\t\t\t";
         $q = new CMS_query($sql);
         if ($q->hasError()) {
             $this->raiseError("Can't delete datas of table mod_object_polyobjects for object : " . $this->_ID);
             return false;
         }
         //second delete object label and description
         if (sensitiveIO::IsPositiveInteger($this->getValue("labelID"))) {
             $label = new CMS_object_i18nm($this->getValue("labelID"));
             $label->destroy();
         }
         if (sensitiveIO::IsPositiveInteger($this->getValue("descriptionID"))) {
             $description = new CMS_object_i18nm($this->getValue("labelID"));
             $description->destroy();
         }
         //third, delete object definition datas
         $sql = "\n\t\t\t\tdelete from\n\t\t\t\t\tmod_object_definition\n\t\t\t\twhere\n\t\t\t\t\tid_mod = '" . $this->_ID . "'\n\t\t\t";
         $q = new CMS_query($sql);
         if ($q->hasError()) {
             $this->raiseError("Can't delete datas of table mod_object_definition for object : " . $this->_ID);
             return false;
         }
         //unset objects catalog in cache
         CMS_cache::clearTypeCacheByMetas('atm-polymod-structure', array('type' => 'object'));
         //Clear polymod cache
         //CMS_cache::clearTypeCacheByMetas('polymod', array('module' => $this->_objectValues["module"]));
         CMS_cache::clearTypeCache('polymod');
     }
     unset($this);
     return true;
 }
 /**
  * Destroy this object, in DB and filesystem if needed
  * Destroy title label also
  *
  * @return boolean true on success, false on failure
  * @access public
  */
 function destroy()
 {
     if ($this->_fieldID) {
         //delete all files of objects for this field
         $module = CMS_poly_object_catalog::getModuleCodenameForField($this->_fieldID);
         $filesDir = new CMS_file(PATH_MODULES_FILES_FS . '/' . $module, CMS_file::FILE_SYSTEM, CMS_file::TYPE_DIRECTORY);
         if ($filesDir->exists()) {
             //search all files of this field
             $filesList = $filesDir->getFileList(PATH_MODULES_FILES_FS . '/' . $module . '/*_f' . $this->_fieldID . '_*');
             //then delete them
             foreach ($filesList as $aFile) {
                 if (!CMS_file::deleteFile($aFile['name'])) {
                     $this->raiseError("Can't delete file " . $aFile['name'] . " for field : " . $this->_fieldID);
                     return false;
                 }
             }
         }
         //delete all datas of objects for this field
         $tables = array('mod_subobject_date_deleted', 'mod_subobject_date_edited', 'mod_subobject_date_public', 'mod_subobject_integer_deleted', 'mod_subobject_integer_edited', 'mod_subobject_integer_public', 'mod_subobject_string_deleted', 'mod_subobject_string_edited', 'mod_subobject_string_public', 'mod_subobject_text_deleted', 'mod_subobject_text_edited', 'mod_subobject_text_public');
         foreach ($tables as $aTable) {
             $sql = "\n\t\t\t\t\tdelete from\n\t\t\t\t\t\t" . $aTable . "\n\t\t\t\t\twhere\n\t\t\t\t\t\tobjectFieldID = '" . $this->_fieldID . "'\n\t\t\t\t";
             $q = new CMS_query($sql);
             if ($q->hasError()) {
                 $this->raiseError("Can't delete datas of table " . $aTable . " for field : " . $this->_fieldID);
                 return false;
             }
         }
         //delete title label object
         if (sensitiveIO::IsPositiveInteger($this->_objectFieldValues["labelID"])) {
             $label = new CMS_object_i18nm($this->_objectFieldValues["labelID"]);
             $label->destroy();
         }
         //delete field DB record
         $sql = "\n\t\t\t\tdelete from\n\t\t\t\t\tmod_object_field \n\t\t\t\twhere\n\t\t\t\t\tid_mof='" . $this->_fieldID . "'\n\t\t\t";
         $q = new CMS_query($sql);
         if ($q->hasError()) {
             $this->raiseError("Can't delete datas of table mod_object_field for field : " . $this->_fieldID);
             return false;
         }
         //unset fields catalog in cache
         CMS_cache::clearTypeCache('atm-polymod-structure');
         //Clear polymod cache
         //CMS_cache::clearTypeCacheByMetas('polymod', array('module' => CMS_poly_object_catalog::getModuleCodenameForField($this->_fieldID)));
         CMS_cache::clearTypeCache('polymod');
     }
     //unset fields catalog in cache
     CMS_cache::clearTypeCacheByMetas('atm-polymod-structure', array('type' => 'fields'));
     //finally destroy object instance
     unset($this);
     return true;
 }
 /**
  * Destroy this object in DB
  *
  * @return boolean true on success, false on failure
  * @access public
  */
 function destroy()
 {
     if ($this->_ID) {
         //first delete definition
         $sql = "\n\t\t\t\tdelete from\n\t\t\t\t\tmod_object_plugin_definition\n\t\t\t\twhere\n\t\t\t\t\tid_mowd = '" . $this->_ID . "'\n\t\t\t";
         $q = new CMS_query($sql);
         if ($q->hasError()) {
             $this->raiseError("Can't delete datas of table mod_object_polyobjects for object : " . $this->_ID);
             return false;
         }
         //second delete object label and description
         if (sensitiveIO::IsPositiveInteger($this->getValue("labelID"))) {
             $label = new CMS_object_i18nm($this->getValue("labelID"));
             $label->destroy();
         }
         if (sensitiveIO::IsPositiveInteger($this->getValue("descriptionID"))) {
             $description = new CMS_object_i18nm($this->getValue("labelID"));
             $description->destroy();
         }
         //Clear polymod cache
         //CMS_cache::clearTypeCacheByMetas('polymod', array('module' => CMS_poly_object_catalog::getModuleCodenameForObjectType($this->getValue('objectID'))));
         CMS_cache::clearTypeCache('polymod');
         //unset polymod structure in cache
         CMS_cache::clearTypeCache('atm-polymod-structure');
     }
     unset($this);
     return true;
 }