예제 #1
0
                foreach ($attachedfiles_tmpdraft_files as $attachedfiles_draft_file) {
                    $attachedfiles_draft_files[] = $attachedfiles_draft_file;
                }
                $uploader->setFiles($attachedfiles_draft_files, uploader::STATUS_ADDED);
            }
        } else {
            $attachedfiles_tmpprj_files = $tmpPrj->getAttach();
            if ($attachedfiles_tmpprj_files) {
                $attachedfiles_prj_files = array();
                foreach ($attachedfiles_tmpprj_files as $attachedfiles_prj_file) {
                    $attachedfiles_prj_files[] = $attachedfiles_prj_file['file_id'];
                }
                $set = $uploader->setFiles($attachedfiles_prj_files, $draft_id ? uploader::STATUS_ADDED : uploader::STATUS_CREATE);
            }
        }
        $attachedfiles_files = $uploader->getFiles();
        $content = "new/tpl.step_1.php";
        break;
        //------------------------------------------------------------------------------
    //------------------------------------------------------------------------------
    case 0:
    default:
        header_location_exit('/public/?step=1&kind=1');
        break;
}
// Все изменения $tmpPrj->_project переносим в переменную.
$project = $tmpPrj->getProject();
if (trim($project['contacts']) != '') {
    $contacts = unserialize($project['contacts']) ? unserialize($project['contacts']) : $contacts;
}
if ($project['country']) {
예제 #2
0
파일: drafts.php 프로젝트: amage/fl-ru-damp
 /**
  * Сохранение проекта в черновики (новый шаблон)
  *
  * @param   array     $prj    Информация о проекте
  * @return  array             ['id'] - ID черновика, ['date'] - дата сохранения черновика
  */
 function SaveProjectNew($prj, $attachedfiles_files = false)
 {
     global $DB;
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/attachedfiles.php";
     $categories = "";
     $check = array();
     for ($i = 0; $i <= 2; $i++) {
         $catID = __paramValue('int', $prj['project_profession' . $i . '_columns'][0]);
         $subcatID = __paramValue('int', $prj['project_profession' . $i . '_spec_columns'][0]);
         if ($catID || $subcatID) {
             $categories .= $catID . '|' . $subcatID . ',';
         }
     }
     $categories = preg_replace("/,\$/", "", $categories);
     if ($prj['name'] === false) {
         $prj['name'] = '';
     }
     if ($prj['descr'] === false) {
         $prj['descr'] = '';
     }
     if (!$prj['end_date']) {
         $prj['end_date'] = NULL;
     }
     if (!$prj['win_date']) {
         $prj['win_date'] = NULL;
     }
     $prj['budget_type'] = intval($prj['budget_type']);
     if (!intval($prj['draft_prj_id'])) {
         $prj['prj_id'] = NULL;
     } else {
         $prj['prj_id'] = $prj['draft_prj_id'];
     }
     $prj['draft_id'] = intval($prj['draft_id']);
     if (!isset($prj['kind'])) {
         $prj['kind'] = 7;
     }
     $prj['cost'] = $prj['agreement'] ? 0 : floatval($prj['cost']);
     $date = date("Y-m-d H:i:s");
     $prj['strong_top'] = hasPermissions('projects') ? (int) $prj['strong_top'] : 0;
     $prj['verify_only'] = (bool) $prj['verify_only'];
     // платные опции
     $prj['urgent'] = (bool) $prj['urgent'];
     $prj['hide'] = (bool) $prj['hide'];
     $topDays = $prj['top_ok'] ? $prj['top_days'] : 0;
     if ($prj['logo_ok']) {
         $logoAttach = new attachedfiles($prj['logo_attachedfiles_session']);
         $logoFiles = $logoAttach->getFiles();
         if (is_array($logoFiles) && count($logoFiles)) {
             $logoFile = array_pop($logoFiles);
             // файлов может быть несколько, берем последний
             $logoAttach->setStatusTo3($logoFile['id']);
             $logoFileID = $logoFile['id'];
         } elseif ($prj['logo_file_id']) {
             $logoFileID = $prj['logo_file_id'];
         }
         $logoLink = $prj['link'];
     }
     if (self::isDraftExists($prj['draft_id'], $prj['uid'], 1, $prj['prj_id'])) {
         $sql = "UPDATE draft_projects SET \n                            name = ?u,\n                            descr = ?u,\n                            cost = ?,\n                            currency = ?i,\n                            kind = ?i,\n                            pro_only = ?,\n                            strong_top = ?i,\n                            end_date = ?,\n                            win_date = ?,\n                            country = ?i,\n                            city = ?i,\n                            categories = ?,\n                            date = ?,\n                            prj_id = ?,\n                            priceby = ?i,\n                            prefer_sbr = ?,\n                            budget_type = ?i,\n                            verify_only = ?,\n                            urgent = ?,\n                            hide = ?,\n                            top_days = ?i,\n                            logo_id = ?,\n                            logo_link = ?,\n                            contacts = ?\n                    WHERE (id=? OR prj_id=?)AND uid=?i";
         $DB->query($sql, $prj['name'], $prj['descr'], $prj['cost'], $prj['currency_db_id'], $prj['kind'], $prj['pro_only'] == 1 ? 't' : 'f', $prj['strong_top'], $prj['end_date'], $prj['win_date'], (int) $prj['project_location_columns'][0], (int) $prj['project_location_columns'][1], $categories, $date, $prj['prj_id'], intval($prj['priceby_db_id']), $prj['prefer_sbr'] == 1 ? 't' : 'f', $prj['budget_type'], $prj['verify_only'], $prj['urgent'], $prj['hide'], $topDays, $logoFileID, $logoLink, $prj['contacts'], $prj['draft_id'], $prj['prj_id'], $prj['uid']);
         $id = $prj['draft_id'];
     } else {
         $new_draft = true;
         $sql = "INSERT INTO draft_projects (\n                            name,\n                            descr,\n                            cost,\n                            currency,\n                            kind,\n                            pro_only,\n                            end_date,\n                            win_date,\n                            country,\n                            city,\n                            categories,\n                            date,\n                            uid,\n                            prj_id,\n                            priceby,\n                            prefer_sbr,\n                            budget_type,\n                            strong_top,\n                            verify_only,\n                            urgent,\n                            hide, \n                            top_days,\n                            logo_id,\n                            logo_link,\n                            contacts\n                        ) VALUES (\n                            ?u,\n                            ?u,\n                            ?,\n                            ?i,\n                            ?i,\n                            ?,\n                            ?,\n                            ?,\n                            ?i,\n                            ?i,\n                            ?,\n                            ?,\n                            ?i,\n                            ?,\n                            ?i,\n                            ?,\n                            ?i,\n                            ?i,\n                            ?,\n                            ?,\n                            ?,\n                            ?i,\n                            ?,\n                            ?,\n                            ?\n                        ) RETURNING id;";
         $id = $DB->val($sql, $prj['name'], $prj['descr'], $prj['cost'], $prj['currency_db_id'], $prj['kind'], $prj['pro_only'] == 1 ? 't' : 'f', $prj['end_date'], $prj['win_date'], (int) $prj['project_location_columns'][0], (int) $prj['project_location_columns'][1], $categories, $date, $prj['uid'], $prj['prj_id'], intval($prj['priceby_db_id']), $prj['prefer_sbr'] == 1 ? 't' : 'f', $prj['budget_type'], (int) $prj['strong_top'], $prj['verify_only'], $prj['urgent'], $prj['hide'], $topDays, $logoFileID, $logoLink, $prj['contacts']);
     }
     // - BEGIN атачи
     if (!$attachedfiles_files) {
         require_once $_SERVER['DOCUMENT_ROOT'] . "/classes//uploader/uploader.php";
         $mask_files = array(1, 3);
         $uploader = new uploader(current($prj['IDResource']));
         $attachedfiles_files = $uploader->getFiles($mask_files);
     }
     $file_id = array();
     // массив с ID файлов которые не надо удалять
     $noDeletedFiles = array();
     foreach ($attachedfiles_files as $attachedfiles_file) {
         $noDeletedFiles[] = $attachedfiles_file['id'];
         // старые файлы не трогаем
         if ($attachedfiles_file['status'] == 3) {
             continue;
         }
         if (in_array($f->id, $file_id)) {
             continue;
         }
         // Чтобы не было дублей
         $file_id[] = $f->id;
         $f = new CFile($attachedfiles_file['id']);
         $f->table = 'file';
         $f->makeLink();
         $sql = "INSERT INTO draft_attaches(draft_id, draft_type, file_id) VALUES(?i, 4, ?i)";
         $DB->hold()->query($sql, $id, $f->id);
     }
     if ($DB->sqls) {
         $DB->query();
     }
     if ($uploader && $attachedfiles_files) {
         $uploader->setStatusFiles(uploader::STATUS_CREATE, uploader::STATUS_ADDED);
     }
     $sqlNoDeletedFiles = count($noDeletedFiles) ? $DB->parse('AND file_id NOT IN (?l)', $noDeletedFiles) : '';
     $sql = "SELECT * FROM draft_attaches WHERE draft_id = ?i AND draft_type = 4 {$sqlNoDeletedFiles};";
     $files = $DB->rows($sql, $id, $noDeletedFiles);
     if ($files) {
         foreach ($files as $f) {
             $cf = new CFile($f['file_id']);
             $cf->table = 'file';
             $cf->Delete($cf->id);
         }
     }
     $sql = "DELETE FROM draft_attaches WHERE draft_id = ?i AND draft_type = 4 {$sqlNoDeletedFiles};";
     $DB->query($sql, $id, array());
     // - END атачи
     $_SESSION['drafts_count'] = drafts::getCount($msg['uid']);
     return array('id' => $id, 'date' => $date);
 }
예제 #3
0
 public function doActivation($code)
 {
     $activation_data = $this->getActivation($code);
     if (!$activation_data) {
         return false;
     }
     $this->deleteActivation($code);
     $current_uid = get_uid(false);
     if ($current_uid) {
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php';
         $user = new employer();
         $user->GetUserByUID($current_uid);
         $status = 1;
     } else {
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/registration.php';
         $registration = new registration();
         $user_data = $registration->autoRegistationAndLogin(array('uid' => $activation_data['user_id'], 'role' => 1, 'email' => $activation_data['email'], 'uname' => $activation_data['uname'], 'usurname' => $activation_data['usurname']));
         if (!$user_data || !$user_data['ret']) {
             return self::REDIRECT_AUTH_FAIL;
         }
         $status = $user_data['ret'];
         $user = $user_data['user'];
     }
     $uid = $user->uid;
     $redirect = false;
     $data = $activation_data['data'];
     switch ($activation_data['type']) {
         case GuestConst::TYPE_PERSONAL_ORDER:
             $data['emp_id'] = $uid;
             require_once $_SERVER['DOCUMENT_ROOT'] . '/tu/models/TServiceOrderModel.php';
             $orderModel = TServiceOrderModel::model();
             if ($order = $orderModel->createPersonal($data)) {
                 $tservices_smail = new tservices_smail();
                 $tservices_smail->newOrder($order);
                 $redirect = sprintf(tservices_helper::url('order_card_url'), $order['id']);
             }
             break;
         case GuestConst::TYPE_VACANCY:
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
             $data['state'] = projects::STATE_MOVED_TO_VACANCY;
             $date_public = null;
             $redirect_layout = '/public/?step=1&kind=4&public=%s&popup=1';
         case GuestConst::TYPE_PROJECT:
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
             $key = md5(uniqid($uid));
             $tmpPrj = new tmp_project($key);
             $tmpPrj->initForUser($user);
             if (isset($data['IDResource']) && !empty($data['IDResource'])) {
                 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/uploader/uploader.php';
                 $uploader = new uploader($data['IDResource']);
                 $attachedfiles_files = $uploader->getFiles();
                 $tmpPrj->clearAttaches();
                 $tmpPrj->addAttachedFiles($attachedfiles_files, false);
                 $uploader->clear();
             }
             if ($prj = $tmpPrj->addSimpleProject($data)) {
                 $_SESSION['new_public'] = 1;
                 $redirect = getFriendlyURL('project', $prj);
                 if (isset($redirect_layout)) {
                     $redirect = sprintf($redirect_layout, $prj['id']);
                 }
                 $src_id = $prj['id'];
                 //Если проект был создан при переходе с лендинга
                 //то привязываем его для статистики
                 if (isset($data['landingProjectId'])) {
                     require_once ABS_PATH . '/classes/LandingProjects.php';
                     LandingProjects::model()->linkWithProject($data['landingProjectId'], $src_id, !$activation_data['user_id']);
                 }
             }
             break;
     }
     //Обновляем приглашение
     if (isset($activation_data['invite_id']) && $activation_data['invite_id'] > 0) {
         $guestInviteModel = new GuestInviteModel();
         $guestInviteModel->updateDateComeInvite($activation_data['invite_id'], array('src_id' => isset($src_id) ? $src_id : null, 'date_public' => isset($date_public) ? $date_public : null));
     }
     //Мессага с паролями для новеньких
     if (!$activation_data['user_id'] && !$current_uid) {
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/Helpers/SubBarNotificationHelper.php';
         SubBarNotificationHelper::getInstance()->setMessage($activation_data['type'], array('login' => $user->login, 'password' => $user->passwd), $user->uid);
     } elseif ($status == users::AUTH_STATUS_2FA) {
         $_SESSION['ref_uri'] = $redirect;
         $redirect = '/auth/second/';
     }
     return $redirect;
 }