Exemple #1
0
 /**
  * 删除文档
  * @param mixed $id 文档编号
  */
 public function actionDelete($id = null)
 {
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
         if (empty($_POST['Archives']['content_archives_id'])) {
             $this->redirect[] = array('text' => '', 'href' => $_SERVER['HTTP_REFERER']);
             $this->message('文档不存在或已被删除', self::MSG_ERROR, true);
         }
         $content_archives_id = $_POST['Archives']['content_archives_id'];
     } else {
         if (empty($id) > 0) {
             $this->redirect[] = array('text' => '', 'href' => $_SERVER['HTTP_REFERER']);
             $this->message('文档不存在或已被删除', self::MSG_ERROR, true);
         }
         $content_archives_id = $id;
     }
     //
     if (!is_array($content_archives_id)) {
         $content_archives_id = array($content_archives_id);
     }
     //
     $_sql_wheel = "";
     $_sql_params = array();
     foreach ($content_archives_id as $_k => $_v) {
         $_sql_wheel .= "content_archives_id=:content_archives_id{$_k} OR ";
         $_sql_params[":content_archives_id{$_k}"] = $_v;
     }
     $_sql_wheel = trim($_sql_wheel, ' OR ');
     //
     $_sql = "SELECT content_archives_id, content_archives_subject FROM {{content_archives}} WHERE {$_sql_wheel}";
     $cmd = Yii::app()->db->createCommand($_sql);
     $_r = $cmd->queryAll(true, $_sql_params);
     //修改状态为删除
     $content_archives_subject = ContentArchives::get_archive_subject_by_id($id);
     $flag = Yii::app()->db->createCommand()->update('{{content_archives}}', array('content_archives_status' => ContentArchives::STAT_DELETED), $_sql_wheel, $_sql_params);
     if ($flag) {
         foreach ($_r as $_k => $_v) {
             //删除缓存
             if (Yii::app()->cache) {
                 Yii::app()->cache->delete("content.archive.row.{$id}");
             }
             //记录操作日志
             $user = Yii::app()->user;
             $message = '{user_name}删除了文档({archive_subject})';
             $data = array('user_id' => $user->id, 'user_name' => $user->name, 'archive_subject' => $_v['content_archives_subject'], 'data' => array('content_archives_id' => $id));
             AdminLogs::add($user->id, 'Content/Archive', $_v['content_archives_id'], 'Delete', 'success', $message, $data);
         }
     }
     if (!isset($_GET['ajax'])) {
         $this->redirect[] = array('text' => '', 'href' => $_SERVER['HTTP_REFERER']);
         $this->message('删除文档完成', self::MSG_SUCCESS, true);
     }
 }