/** * Добавить новые теги * * * @param array $tags Теги [тег1,тег2,...] * @return array Записанные результаты */ function Add($tags) { global $DB; foreach ($tags as $ikey => $value) { if (!$value) { continue; } $sql = "SELECT inserttag('" . change_q_new(substr(trim($value), 0, 20)) . "');"; $tag[] = $DB->val($sql); $error[1] = parse_db_error($DB->error); } return $tag; }
/** * Сохранение работы в портфолио * * @param object $objResponse xajaxResponse * @param string $rec_id идентификатор записи * @param string $rec_type тип записи * @param array $aForm массив данных * @param string $sDrawFunc имя функции для выполнения после сохранения */ function _admEditPortfolioSaveForm(&$objResponse, $rec_id = '', $rec_type = '', $aForm = array(), $sDrawFunc = '') { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/user_content.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/portfolio.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; $max_time_value = 100; //стоимость работы из портфолио $max_portf_cost[0] = 100000; // usd $max_portf_cost[1] = 100000; // euro $max_portf_cost[2] = 5000000; // rur $max_portf_cost[3] = 100000; // fm $user = new users(); $user->GetUserByUID($aForm['user_id']); // инициализация $aPortf = portfolio::GetPortfById($rec_id); $alert = array(); $maxlen = $aForm['is_video'] ? 80 : 120; $name = substr($aForm['pname'], 0, $maxlen); $name = change_q_x($name, false, true, '', false, false); $name = $name ? $name : ''; $descr = substr(change_q_new(trim(stripslashes($aForm['descr']))), 0, 1500); $prof = intval($aForm['prof']); $new_prof = intval($aForm['new_prof']); $prj_id = $rec_id; $cost = intval(str_replace(' ', '', $aForm['pcost']) * 100) / 100; $cost_type = intval($aForm['pcosttype']); $time_value = intval(trim($aForm['ptime'])); $time_type = intval($aForm['ptimeei']); $is_video = $aForm['is_video'] ? 't' : 'f'; $video_link = $aForm['is_video'] ? stripslashes(trim($aForm['v_video_link'])) : ''; $link = $aForm['is_video'] ? '' : addhttp(trim(substr(change_q_x($aForm['link'], true), 0, 150))); $link = $link ? $link : ''; $make_position = $aForm['make_position']; $make_position_num = trim($aForm['make_position_num']); $update_prev = intval($aForm['upd_prev']); $prev_type = intval($aForm['prev_type']); $del_prev = intval($aForm['del_prev']); $new_position = NULL; $pict = substr(change_q_new(trim(stripslashes($aForm['pict']))), 0, 1500); $prev_pict = substr(change_q_new(trim(stripslashes($aForm['prev_pict']))), 0, 1500); if ($new_prof != $prof) { $new_position = 0; } if (isset($make_position)) { switch ($make_position) { case 'first': $new_position = 1; break; case 'last': $new_position = 0; break; case 'num': default: $new_position = intval($make_position_num); $new_position = $new_position <= 0 ? 1 : $new_position; break; } } // валидация (нумерация алертов как в первоначальном варианте радактирования и новый нулевой) if (!$name || strlen(trim(stripslashes($aForm['pname']))) > 80) { $alert[1] = 'Поле заполнено некорректно'; } if ($link != '' && !url_validate($link, true)) { $alert[6] = 'Поле заполнено некорректно'; } if ($is_video == 't') { $v_video_link = video_validate($video_link); if (!$v_video_link) { $alert[206] = "Поле заполнено некорректно"; } else { $video_link = preg_replace("/^http:\\/\\//", '', $v_video_link); } } if ($cost < 0 || $cost > $max_portf_cost[$cost_type]) { $alert[4] = 'Стоимость должна быть в пределе от 0 ' . view_range_cost2(0, $max_portf_cost[$cost_type], '', '', false, $cost_type) . ($cost_type != 2 ? '.' : ''); } if ($time_value < 0 || $time_value > $max_time_value) { $alert[5] = 'Временные затраты должны быть в пределе от 0 до ' . $max_time_value . '.'; } if ($new_prof != $prof && ($new_prof == professions::CLIENTS_PROF_ID || $new_prof == professions::BEST_PROF_ID) && portfolio::CountAll($aForm['user_id'], $new_prof, true) >= portfolio::MAX_BEST_WORKS) { $alert[0] = 'Превышено количество работ в этом разделе'; } // сохраняем if (!$alert) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php'; $sReason = _parseReason($aForm['user_id'], $aForm['adm_edit_text']); $portf = new portfolio(); $portf->EditPortf($aForm['user_id'], $name, $img, $sm_img, $link, $descr, $new_prof, $cost, $cost_type, $time_type, $time_value, $prev_type, $prj_id, $file_error, $preview_error, $new_position, 0, $video_link, $update_prev, $_SESSION['uid'], $pict, $prev_pict, $user->login, $sReason); if ($del_prev) { $portf->DelPict($user->login, $prj_id, 0); } messages::portfolioModifiedNotification($aPortf, $user, $sReason); $content_id = user_content::MODER_PORTFOLIO; _admEditAfterAll($objResponse, $content_id, $rec_id, $rec_type, $sDrawFunc, $aForm); } else { _setErrors($objResponse, $alert, array(0 => 'prof', 1 => 'pname', 2 => 'descr', 4 => 'pcost', 5 => 'ptime', 6 => 'link', 206 => 'video_link'), $sDrawFunc); } }
?> " <?php echo $group['id'] == $group_id ? 'selected' : ''; ?> ><?php echo $group['name']; ?> </option> <?php } ?> </select> Логин: <input type="text" name="login" value="<?php echo change_q_new($login); ?> "> <input type="submit" value=" Показать "> </form> <br><br> <table width="100%" border="0" cellspacing="5" cellpadding="5"> <?php if ($users) { ?> <?php foreach ($users as $user) { ?> <?php
/** * Добавляет жалобу на проект * * @param integer $project_id ID проекта * @param integer $user_id ID пользователя * @param integer $type тип жалобы * @param string $msg текст жалобы * @param string $files загруженные скриншоты * @param boolean $exported Опубликован на стороннем ресурсе вместо админки FL * @return string возможная ошибка */ function AddComplain($project_id, $user_id, $type, $msg, $files, $exported = false) { global $DB; $error = ''; $msg = change_q_new(stripslashes($msg), true, true); $sql = "INSERT INTO projects_complains(project_id,user_id,type,msg,files,exported) VALUES(?i,?i,?i,?,?,?)"; $DB->query($sql, $project_id, $user_id, $type, $msg, $files, $exported); if (!$DB->error) { $oMemBuf = new memBuff(); $oMemBuf->delete('complain_projects_count'); } $error = $DB->error; return $error; }
/** * Добавляет жалобу на предложение * * @param int $offer_id Идентификатор предложения на которое жалуются * @param int $user_id Идентификатор пользователя который жалуется * @param int $type Тип нарушения * @param string $msg Суть жалобы * @return bool true - успех, false - провал */ function AddComplain($offer_id, $user_id, $type, $msg) { $msg = change_q_new(stripslashes($msg), true, true); $aData = compact('offer_id', 'user_id', 'type', 'msg'); $GLOBALS['DB']->insert('freelance_offers_complains', $aData); if (!$GLOBALS['DB']->error) { $oMemBuf = new memBuff(); $oMemBuf->delete('complain_offers_count'); } return !$GLOBALS['DB']->error; }
exit; } } break; case 'Update': $alert = NULL; $id = __paramInit('array', NULL, 'id'); $name = __paramInit('array', NULL, 'name'); $descr = __paramInit('array', NULL, 'descr'); $cnt = count($id); for ($i = 0; $i < $cnt; $i++) { $n = change_q_new($name[$i], TRUE); if (!trim($n)) { $alert['name[]'][intval($id[$i])] = "Нельзя без названия."; } else { $d = change_q_new($descr[$i], TRUE); if (!commune::UpdateGroup(intval($id[$i]), $n, $d, $i + 1)) { $error .= (!$error ? '' : '<br/>') . "Ошибка. Не удалось изменить раздел '{$n}'."; } } } if (!$error && !$alert) { header("Location: /siteadmin/commune/?result=success"); exit; } break; case 'Delete': $alert = NULL; $id = __paramInit('int', 'id', NULL); if (!commune::DeleteGroup($id)) { $error = "Ошибка. Невозможно удалить раздел. Возможен конфликт ключей (если раздел уже содержит сообщества).";
} $FBShare = array('title' => $comm['name'], 'description' => '', 'image' => HTTP_PREFIX . 'www.free-lance.ru/images/free-lance_logo.jpg'); $commune_output = 'tpl.commune.php'; } break; } switch ($action) { case 'do.Update.admin': $alert = NULL; $member_id = __paramInit('array', NULL, 'member_id'); $note = __paramInit('array', NULL, 'note'); $is_moderator = __paramInit('array', NULL, 'is_moderator'); $is_manager = __paramInit('array', NULL, 'is_manager'); $mCnt = count($member_id); for ($i = 0; $i < $mCnt; ++$i) { $n = change_q_new($note[$i], TRUE); if (strlen($n) > commune::MEMBER_NOTE_MAX_LENGTH) { $n = substr($n, 0, commune::MEMBER_NOTE_MAX_LENGTH); } commune::UpdateAdmin(intval($member_id[$i]), $n, $is_moderator[$i] ? 1 : 0, $is_manager[$i] ? 1 : 0); } header("Location: /commune/?id={$id}&site=Admin"); exit; break; case 'do.Add.admin': $commune_output = 'admin.php'; $user_login = __paramInit('string', 'user_login', NULL); $alert = NULL; if (!trim($user_login)) { header("Location: /commune/?id={$id}&site=Admin"); exit;