/**
  * Delete one or more documents
  *
  * @param $docs
  */
 public function delete($docs)
 {
     if ($docs instanceof Document) {
         $this->obj_gateway->delete([$docs->getId()]);
     } elseif (is_string($docs)) {
         $this->obj_gateway->delete([$docs]);
     } elseif (is_array($docs)) {
         $arr_doc_ids = [];
         foreach ($docs as $doc) {
             if ($doc instanceof Document) {
                 $arr_doc_ids[] = $doc->getId();
             } elseif (is_string($doc)) {
                 $arr_doc_ids[] = $doc;
             } else {
                 throw new \InvalidArgumentException('Parameter must be one or more \\Search\\Document objects or ID strings');
             }
         }
         $this->obj_gateway->delete($arr_doc_ids);
     } else {
         throw new \InvalidArgumentException('Parameter must be one or more \\Search\\Document objects or ID strings');
     }
 }
Exemple #2
0
 function deleteAction()
 {
     $id = AF::get($_POST, 'id', 0);
     $modelsID = explode(',', $id);
     $errors = FALSE;
     foreach ($modelsID as $id) {
         $model = new Gateway();
         $model->model_uset_id = $this->user->user_id;
         if ($model->findByPk($id)) {
             $model->delete($id);
         } else {
             $errors = TRUE;
         }
         if ($model->getErrors()) {
             $errors = TRUE;
         }
         unset($model);
     }
     if (isset($_POST['ajax'])) {
         AF::setJsonHeaders('json');
         if ($errors) {
             Message::echoJsonError(__('gateway_not_deleted'));
         } else {
             $countE = AF::get($_POST, 'countE', 100000);
             if (count($modelsID) >= $countE) {
                 $link = AF::link(array('gateways' => 'view'));
                 Message::echoJsonRedirect($link);
             } else {
                 Message::echoJsonSuccess(__('gateway_deleted'));
             }
         }
     }
     $this->redirect();
 }