/**
  * Переносим ответы на проекты в работающие таблицы
  * 
  * @param array $offers  Ответы на проекты
  * @return array
  */
 public function transferOffers($offers)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/projects_offers.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/contest.php";
     foreach ($offers as $k => $offer) {
         $pict1 = str_replace("sm_", "", $offer['pict1']);
         $pict2 = str_replace("sm_", "", $offer['pict2']);
         $pict3 = str_replace("sm_", "", $offer['pict3']);
         // Переносим файлы в рабочие папки сайта
         $files = $this->_db->rows("SELECT DISTINCT id FROM file_wizard WHERE fname IN (?l)", array($pict1, $pict2, $pict3));
         if ($files) {
             $dir = "users/" . substr($this->user->login, 0, 2) . "/" . $this->user->login . "/upload/";
             $table = 'file';
             $picts = $this->transferFiles($files, $table, $dir, false);
             $sm_files = $this->_db->rows("SELECT DISTINCT id FROM file_wizard WHERE fname IN (?l)", array($offer['pict1'], $offer['pict2'], $offer['pict3']));
             if ($sm_files) {
                 $sm_picts = $this->transferFiles($sm_files, $table, $dir, false);
             }
         }
         if ($offer['kind'] != 7) {
             $error = projects_offers::AddOffer(wizard::getUserIDReg(), $offer['project_id'], $offer['cost_from'], $offer['cost_to'], $offer['cost_currency'], $offer['time_from'], $offer['time_to'], $offer['time_type'], $offer['descr'], 0, 0, 0, null, null, null, null, null, null, $picts[0]['fname'], $picts[1]['fname'], $picts[2]['fname'], $sm_picts[0]['fname'], $sm_picts[1]['fname'], $sm_picts[2]['fname']);
         } else {
             // Пишем ответ на конкурс
             $contest = new contest($offer['project_id'], wizard::getUserIDReg());
             $error = $contest->CreateOffer($offer['descr'], implode('/', $files), false);
             if ($picts && $contest->new_oid) {
                 $content_pict = array();
                 foreach ($picts as $k => $pict) {
                     $content_pict[] = array('uid' => wizard::getUserIDReg(), 'file' => $pict['id'], 'prev' => $sm_picts[$k]['id'], 'orig_name' => $pict['orig_name'], 'post_date' => date('Y-m-d H:i:s'));
                 }
                 $contest->addOfferFiles($contest->new_oid, $content_pict);
             }
         }
         if (!$error) {
             $delete_offers[] = $offer['id'];
         } else {
             $error_offer[] = $error . " - ответ на проект #{$offer['id']}";
         }
         unset($error);
     }
     // Очищаем перенесенные данные если нет ошибок если есть выводим
     if ($error_offer) {
         foreach ($error_offer as $error) {
             $this->log->writeln("Error transfer offer content - user (" . wizard::getUserIDReg() . "|" . $this->getWizardUserID() . ") - Error: {$error}");
         }
     } else {
         if ($delete_offers) {
             $this->_db->query("DELETE FROM wizard_offers WHERE id IN (?l) AND wiz_uid = ?", $delete_offers, $this->getWizardUserID());
         }
     }
     return $error_offer;
 }
Exemple #2
0
         $account->commit_transaction($transaction_id, get_uid(), $billing_id);
         $is_payed_color = true;
     }
     if ($is_payed_color) {
         header('Location: /bill/success/');
         exit;
     }
     if (!$error_offer) {
         header('Location: ' . getFriendlyURL('project', $project['id']) . '?' . $from_prm_s);
     }
 } else {
     if ($project['kind'] == 7) {
         if ($_POST['comment'] || $_POST['files']) {
             $comm_blocked = $contest->is_pro || $contest->is_moder ? $_POST['comm_blocked'] : FALSE;
             $comment = change_q_x(antispam(substr(stripslashes($_POST['comment']), 0, 30000)), false, true, 'b|br|i|p|ul|li|cut|h[1-6]{1}', false, false);
             if (!($er = $contest->CreateOffer($comment, $_POST['files'], $comm_blocked))) {
                 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/external/base.php';
                 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/external/api/api.php';
                 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/external/api/mobile.php';
                 externalApi_Mobile::addPushMsg($project['user_id'], 'prj_response', array('from_user_id' => get_uid(false), 'name' => $project['name'], 'prj_id' => $project['id']));
                 header('Location: ' . getFriendlyURL('project', $project['id']) . "?offer={$contest->new_oid}");
                 exit;
             }
         }
     } else {
         $obj_offer->AddOfferKon($uid, $project['id'], antispam($_POST['ps_text']), $_POST['ps_work_pict'], $_POST['ps_work_prev_pict'], false);
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/external/base.php';
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/external/api/api.php';
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/external/api/mobile.php';
         externalApi_Mobile::addPushMsg($project['user_id'], 'prj_response', array('from_user_id' => get_uid(false), 'name' => $project['name'], 'prj_id' => $project['id']));
         header('Location: ' . getFriendlyURL('project', $project['id']) . '?' . $from_prm_s);