/**
  * 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' => '')));
     }
 }