/** * put your comment there... * * @param mixed $ids */ public function delete($ids) { // Allow single or multiple Ids to be passed. if (!is_array($ids)) { $ids = array($ids); } // Create Tables objects. $blocks = new CJTBlocksTable($this->dbDriver); $pins = new CJTBlockPinsTable($this->dbDriver); $codeFile = new CJTBlockFilesTable($this->dbDriver); // Get blocks revisions. $revisions['fields'] = array('id'); $revisions['filters']['parent'] = $ids; $revisions['type'] = 'revision'; $revisions['result'] = $blocks->get(null, $revisions['fields'], $revisions['filters']); // Revisions ids used as revision key. $revisions = array_keys($revisions['result']); // Delete all revisions for all "DELETED" blocks // only if there is at least one revision. if (!empty($revisions)) { $blocks->delete($revisions); $pins->delete($revisions); // Delete code files. $this->dbDriver->delete(sprintf('DELETE FROM #__cjtoolbox_block_files WHERE blockId IN(%s)', implode(',', $revisions))); } // Delete linked templates. $linkedOnlyTemplatesQuery = 'DELETE FROM #__cjtoolbox_block_templates WHERE blockId IN(%s)'; $this->dbDriver->delete(sprintf($linkedOnlyTemplatesQuery, implode(',', $ids))); // Delete associated parameters. $mdlParams = new CJT_Models_Parameters(); $mdlParams->delete($ids); // Delete form. $mdlForm = new CJT_Models_Forms(); $mdlForm->delete($ids); // Delete blocks. $blocks->delete($ids); $pins->delete($ids); // Delete code files. $this->dbDriver->delete(sprintf('DELETE FROM #__cjtoolbox_block_files WHERE blockId IN(%s)', implode(',', $ids))); // Chaining! return $this; }