/** * delete article and navigation node relation * * @param array $data */ public function perform($data = FALSE) { $sql = "DELETE FROM {$this->config['dbTablePrefix']}article_lock\n WHERE\n `id_article`={$data['id_article']}"; $this->model->dba->query($sql); $sql = "DELETE FROM {$this->config['dbTablePrefix']}article_media_pic\n WHERE\n `id_article`={$data['id_article']}"; $this->model->dba->query($sql); $sql = "DELETE FROM {$this->config['dbTablePrefix']}article_media_file\n WHERE\n `id_article`={$data['id_article']}"; $this->model->dba->query($sql); $sql = "DELETE FROM {$this->config['dbTablePrefix']}article_index\n WHERE\n `id_article`={$data['id_article']}"; $this->model->dba->query($sql); $sql = "DELETE FROM {$this->config['dbTablePrefix']}article_keyword\n WHERE\n `id_article`={$data['id_article']}"; $this->model->dba->query($sql); $sql = "DELETE FROM {$this->config['dbTablePrefix']}article_comment\n WHERE\n `id_article`={$data['id_article']}"; $this->model->dba->query($sql); $sql = "DELETE FROM {$this->config['dbTablePrefix']}article_view_rel\n WHERE\n `id_article`={$data['id_article']}"; $this->model->dba->query($sql); $sql = "SELECT \n `media_folder`,\n `id_node`\n FROM \n {$this->config['dbTablePrefix']}article_article\n WHERE\n `id_article`={$data['id_article']}"; $rs = $this->model->dba->query($sql); $row = $rs->fetchAssoc(); if (isset($row['media_folder']) && !empty($row['media_folder'])) { // delete article data media folder SmartCommonUtil::deleteDirTree(SMART_BASE_DIR . 'data/article/' . $row['media_folder']); } $sql = "DELETE FROM {$this->config['dbTablePrefix']}article_article\n WHERE\n `id_article`={$data['id_article']}"; $this->model->dba->query($sql); // reorder node related article ranks $this->model->action('article', 'reorderRank', array('id_node' => (int) $row['id_node'])); }
/** * remove empty navigation data directory * * @return bool */ private function removeEmptyDirectory($id_node, &$media_folder) { $dir = SMART_BASE_DIR . 'data/navigation/' . $media_folder; if (TRUE == $this->isDirEmpty($dir)) { // delete whole tree SmartCommonUtil::deleteDirTree($dir); // remove media_folder reference $this->model->action('navigation', 'updateNode', array('id_node' => (int) $id_node, 'fields' => array('media_folder' => ''))); } }
/** * remove empty user directory * */ private function removeEmptyDirectory(&$media_folder, &$data) { $dir = SMART_BASE_DIR . 'data/article/' . $media_folder; if (TRUE == $this->isDirEmpty($dir)) { // delete whole tree SmartCommonUtil::deleteDirTree($dir); // remove media_folder reference $this->model->action('article', 'updateArticle', array('id_article' => (int) $data['id_article'], 'error' => &$data['error'], 'fields' => array('media_folder' => ''))); } }
private function deleteNode($id_node) { $sql = "DELETE FROM {$this->config['dbTablePrefix']}navigation_node_lock\n WHERE\n `id_node`={$id_node}"; $this->model->dba->query($sql); $sql = "DELETE FROM {$this->config['dbTablePrefix']}navigation_media_pic\n WHERE\n `id_node`={$id_node}"; $this->model->dba->query($sql); $sql = "DELETE FROM {$this->config['dbTablePrefix']}navigation_media_file\n WHERE\n `id_node`={$id_node}"; $this->model->dba->query($sql); $sql = "SELECT `media_folder` FROM {$this->config['dbTablePrefix']}navigation_node\n WHERE\n `id_node`={$id_node}"; $rs = $this->model->dba->query($sql); $row = $rs->fetchAssoc(); if (isset($row['media_folder']) && !empty($row['media_folder'])) { // delete user data media folder SmartCommonUtil::deleteDirTree(SMART_BASE_DIR . 'data/navigation/' . $row['media_folder']); } $sql = "DELETE FROM {$this->config['dbTablePrefix']}navigation_node\n WHERE\n `id_node`={$id_node}"; $this->model->dba->query($sql); }
/** * delete user * * @param array $data */ function perform($data = FALSE) { $sql = "DELETE FROM {$this->config['dbTablePrefix']}user_access\n WHERE\n `id_user`={$data['id_user']}"; $this->model->dba->query($sql); $sql = "DELETE FROM {$this->config['dbTablePrefix']}user_lock\n WHERE\n `id_user`={$data['id_user']}"; $this->model->dba->query($sql); $sql = "DELETE FROM {$this->config['dbTablePrefix']}user_media_pic\n WHERE\n `id_user`={$data['id_user']}"; $this->model->dba->query($sql); $sql = "DELETE FROM {$this->config['dbTablePrefix']}user_media_file\n WHERE\n `id_user`={$data['id_user']}"; $this->model->dba->query($sql); $sql = "SELECT `media_folder` FROM {$this->config['dbTablePrefix']}user_user\n WHERE\n `id_user`={$data['id_user']}"; $rs = $this->model->dba->query($sql); $row = $rs->fetchAssoc(); if (isset($row['media_folder']) && !empty($row['media_folder'])) { // delete user data media folder SmartCommonUtil::deleteDirTree(SMART_BASE_DIR . 'data/user/' . $row['media_folder']); } $sql = "DELETE FROM {$this->config['dbTablePrefix']}user_user\n WHERE\n `id_user`={$data['id_user']}"; $this->model->dba->query($sql); return TRUE; }
/** * delete_dir_tree * * Delete directory and content recursive * * @param string $dir Directory */ public static function deleteDirTree($dir) { if (($handle = @opendir($dir)) != FALSE) { while (($file = readdir($handle)) != false) { if ($file == "." || $file == "..") { continue; } if (@is_dir($dir . '/' . $file)) { SmartCommonUtil::deleteDirTree($dir . '/' . $file); } else { if (@unlink($dir . '/' . $file) == FALSE) { trigger_error("Can not delete content in dir tree: {$dir}/{$file}", E_USER_ERROR); } } } @closedir($handle); if (@rmdir($dir) == FALSE) { trigger_error("Can not remvoe dir: {$dir}", E_USER_ERROR); } } else { trigger_error("Can not delete content dir: {$dir}", E_USER_ERROR); } }
/** * remove empty user directory * * @return bool */ private function removeEmptyDirectory() { $dir = SMART_BASE_DIR . 'data/user/' . $this->mediaFolder; if (TRUE == $this->isDirEmpty($dir)) { // delete whole tree SmartCommonUtil::deleteDirTree($dir); $error = array(); // remove media_folder reference $this->model->action('user', 'update', array('id_user' => (int) $this->idUser, 'error' => &$error, 'user' => array('media_folder' => ''))); } }
/** * remove empty user directory * * @return bool */ private function removeEmptyDirectory() { $dir = SMART_BASE_DIR . 'data/misc/' . $this->mediaFolder; if (TRUE == $this->isDirEmpty($dir)) { // delete whole tree SmartCommonUtil::deleteDirTree($dir); // remove media_folder reference $this->model->action('misc', 'updateText', array('id_text' => (int) $this->idText, 'fields' => array('media_folder' => ''))); } }