Esempio n. 1
0
 // Может быть получен с нулевого шага.
 $project = $tmpPrj->getProject();
 if ($project['kind'] && !in_array($project['kind'], array(0, 1, 2, 4, 7))) {
     $error['kind'] = 'Закладка не выбрана';
 }
 if ($action == 'next' || $action == "change" || $action == "change_country") {
     $use_draft = $project['user_id'] == get_uid(false);
     // сохаряем проект в черновики между первым и вторым шагом, если вдруг что пойдет не так
     $is_tmp_draft = false;
     if ($use_draft) {
         if (!$draft_id) {
             $is_tmp_draft = true;
         }
         $tmp = $_POST;
         $tmp['uid'] = $uid;
         $dmp = $drafts->SaveProject($tmp);
         $draft_id = $dmp['id'];
     }
     $tmpPrj->setProjectField('descr', antispam(__paramInit('html', NULL, 'descr', NULL, NULL, TRUE)));
     $tmpPrj->setProjectField('name', substr(antispam(__paramInit('string', NULL, 'name', NULL, 60)), 0, 512));
     $tmpPrj->setProjectField('cost', __paramInit('float', NULL, 'cost', 0));
     $tmpPrj->setProjectField('currency', __paramInit('int', NULL, 'currency', 0));
     $tmpPrj->setProjectField('budget_type', __paramInit('int', NULL, 'budget_type', 0));
     $tmpPrj->setProjectField('priceby', __paramInit('int', NULL, 'priceby', 0));
     $tmpPrj->setProjectField('agreement', __paramInit('int', NULL, 'agreement', 0));
     if (!$PDA) {
         $c = __paramInit('array', NULL, 'categories');
         $sc = __paramInit('array', NULL, 'subcategories');
         if (empty($c) || sizeof($c) == 1 && $c[0] == 0) {
             $error['category'] = 'Не выбран раздел';
         } else {
Esempio n. 2
0
/**
* Сохнить черновик проекта
*
* @param    array   $prj    Информация о проекте
*/
function SaveDraftProject($prj, $newTemplate = false)
{
    session_start();
    $uid = get_uid(false);
    if ($uid) {
        $prj['uid'] = $uid;
        require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/drafts.php";
        $draft = $newTemplate ? drafts::SaveProjectNew($prj) : drafts::SaveProject($prj);
        $aRes['html'] = iconv('CP1251', 'UTF-8', "Текст проекта сохранен в  " . preg_replace("/^.* /", "", preg_replace("/:\\d{2}\$/", "", $draft['date'])));
        $aRes['id'] = $draft['id'];
        $aRes['success'] = true;
    } else {
        $aRes['success'] = false;
    }
    echo json_encode($aRes);
}
Esempio n. 3
0
 public function transferProjects()
 {
     $projects = $this->getCreatedProjects();
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/drafts.php';
     if ($projects) {
         $key = md5(microtime());
         $prj = new tmp_project($key);
         $this->setPath();
         foreach ($projects as $k => $project) {
             $files = $this->getProjectAttach($project['id']);
             if ($project['kind'] == 7) {
                 $tmp_dir = $this->tmpAbsDir;
             } else {
                 $tmp_dir = $this->dstAbsDir;
             }
             if ($files) {
                 $table = 'file_projects';
                 $files = $this->transferFiles($files, $table, $tmp_dir);
             }
             if ($project['kind'] != 7) {
                 $attach = array_map(create_function('$a', 'return array("file_id" => $a["id"]);'), $files);
                 $insert = array('user_id' => $_SESSION['uid'] ? $_SESSION['uid'] : $_SESSION['RUID'], 'name' => addslashes($project['name']), 'descr' => addslashes($project['descr']), 'kind' => $project['kind'], 'cost' => $project['cost'], 'currency' => $project['currency'], 'country' => $project['country'] > 0 ? $project['country'] : 'NULL', 'city' => $project['city'] > 0 ? $project['city'] : 'NULL', 'payed' => '0', 'pro_only' => $project['pro_only'], 'logo_id' => 'NULL', 'link' => $project['logo_link'], 'is_color' => 'f', 'is_bold' => 'f', 'billing_id' => 0, 'payed_items' => '000', 'folder_id' => 0, 'budget_type' => $project['budget_type'], 'priceby' => $project['priceby'], 'prefer_sbr' => $project['prefer_sbr']);
                 $cat = explode('|', $project['categories']);
                 $categories[0] = array('category_id' => intval($cat[0]), 'subcategory_id' => intval($cat[1]));
                 $prj->addPrj($insert, $attach, $categories);
                 // Добавляем проект
                 if ($insert['id']) {
                     $delete_projects[] = $project['id'];
                 } else {
                     $error_project[] = "Ошибка создания проекта #{$project['id']}";
                 }
                 // Проверяем платные опции если есть обновляем в отложенных операциях тк выше все операции выбранные там уже ушли туда
                 if ($insert['id'] && ($project['is_color'] || $project['is_bold'] || $project['top_count'] > 0 || $project['logo_id'] > 0)) {
                     $update = array('parent_id' => $insert['id']);
                     $this->_db->update('draft_account_operations', $update, "parent_id = ? AND op_type = 'project' AND uid = ?", $project['id'], wizard::getUserIDReg());
                     if ($project['logo_link']) {
                         $update = array('extra' => $project['logo_link']);
                         $this->_db->update('draft_account_operations', $update, "parent_id = ? AND op_type = 'contest' AND option = 'logo' AND uid = ?", $contest['id'], wizard::getUserIDReg());
                     }
                 }
                 // Если это конкурс он сразу идет в черновики
             } else {
                 $draft = new drafts();
                 $cat = explode('|', $project['categories']);
                 $insert = array('uid' => $_SESSION['uid'] ? $_SESSION['uid'] : $_SESSION['RUID'], 'name' => addslashes($project['name']), 'descr' => addslashes($project['descr']), 'kind' => $project['kind'], 'cost' => $project['cost'], 'currency' => $project['currency'], 'country' => $project['country'], 'end_date' => $project['end_date'], 'win_date' => $project['win_date'], 'city' => $project['city'], 'pro_only' => $project['pro_only'] == 't' ? 1 : 0, 'budget_type' => $project['budget_type'], 'priceby' => $project['priceby'], 'prefer_sbr' => $project['prefer_sbr'], 'categories' => array(0 => $cat[0]), 'subcategories' => array(0 => $cat[1]), 'logo_id' => $project['logo_id'], 'link' => $project['logo_link']);
                 $contest = $draft->SaveProject($insert, $files);
                 if ($contest['id']) {
                     $delete_projects[] = $project['id'];
                 } else {
                     $error_project[] = "ошибка создания конкурса #{$project['id']}";
                 }
                 // Проверяем платные опции если есть пишем в отложенные платежи
                 if ($contest['id'] && ($project['is_color'] || $project['is_bold'] || $project['top_count'] > 0 || $project['logo_id'] > 0)) {
                     $update = array('parent_id' => $contest['id']);
                     $this->_db->update('draft_account_operations', $update, "parent_id = ? AND op_type = 'contest' AND uid = ?", $project['id'], wizard::getUserIDReg());
                     if ($project['logo_link']) {
                         $update = array('extra' => $project['logo_link']);
                         $this->_db->update('draft_account_operations', $update, "parent_id = ? AND op_type = 'contest' AND option = 'logo' AND uid = ?", $contest['id'], wizard::getUserIDReg());
                     }
                 }
             }
         }
         if ($delete_projects) {
             $this->_db->query('DELETE FROM wizard_projects WHERE id IN (?l) AND wiz_uid = ?', $delete_projects, $this->getWizardUserID());
         }
         if ($error_projects) {
             foreach ($error_projects as $error) {
                 $this->log->writeln('Error transfer projects content () - user (' . wizard::getUserIDReg() . '|' . $this->getWizardUserID() . ") - Error: {$error}");
             }
         }
     }
     return $error;
 }