admin_log::addLog(admin_log::OBJ_CODE_USER, admin_log::ACT_ID_DEL_ACC, $sUid, $sUid, $sObjName, $sObjLink, 1, '', null, $sReason); header("Location: /users/{$user}"); } break; case 'real_name_splash': // сохранение имени, фамилии и юзерпика с соответствующего сплэш-скрина require_once ABS_PATH . "/classes/users.php"; require_once ABS_PATH . "/classes/attachedfiles.php"; require_once ABS_PATH . "/classes/CFile.php"; $userObj = new users(); $userID = get_uid(); $aFiles = new attachedfiles($_POST['attachedfiles_session']); $userpics = $aFiles->getFiles(array(1)); if (is_array($userpics) && !empty($userpics)) { $userpic = array_pop($userpics); $aFiles->setStatusTo3($userpic['id']); $foto = new CFile($userpic['id']); $to = $foto->path . 'sm_' . $foto->name; $foto->resizeImage($to, 50, 50, 'auto', true); $userObj->photo = $userpic['name']; } $name = change_q(substr(trim($_POST['name']), 0, 21), true); $surname = change_q(substr(trim($_POST['surname']), 0, 21), true); if ($name && !preg_match("/^[-a-zA-Zа-яёА-ЯЁ]+\$/", $name)) { $error_flag = 1; $alert[1] = "Поле заполнено некорректно"; } if ($surname && !preg_match("/^[-a-zA-Zа-яёА-ЯЁ]+\$/", $surname)) { $error_flag = 1; $alert[2] = "Поле заполнено некорректно"; }
/** * Сохранение проекта в черновики (новый шаблон) * * @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); }
} if (!$error['win_date'] && mktime(0, 0, 0, $o2[2], $o2[1], $o2[3]) <= mktime(0, 0, 0, $o1[2], $o1[1], $o1[3])) { $error['win_date'] = 'Дата определения победителя должна быть больше даты окончания конкурса'; } } } $logoOK = __paramInit('bool', NULL, 'logo_ok'); if ($logoOK) { $logoAttach = new attachedfiles($_POST['logo_attachedfiles_session']); $logoFiles = $logoAttach->getFiles(array(1, 3)); if (count($logoFiles)) { $logoFile = array_pop($logoFiles); // загружено может быть несколько файлов, берем последний $logoCFile = new CFile($logoFile['id']); $tmpPrj->setLogoNew($logoCFile); $logoAttach->setStatusTo3($logoFile['id']); } elseif ($_POST['logo_file_id']) { //$logoCFile = new CFile(__paramInit('int', null, 'logo_file_id')); //$tmpPrj->setLogoNew($logoCFile); } else { if ($_POST['is_exec_quickprj'] != 1) { $error['logo'] = 'Необходимо выбрать файл'; } } } else { $tmpPrj->clearLogo(); } if (!$error) { if (!$PDA) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/attachedfiles.php"; reset($_POST['IDResource']);