Esempio n. 1
0
 /**
  * Добавить новые теги
  * 
  * 
  * @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);
    }
}
Esempio n. 3
0
    ?>
" <?php 
    echo $group['id'] == $group_id ? 'selected' : '';
    ?>
><?php 
    echo $group['name'];
    ?>
</option>
    <?php 
}
?>
</select>
&nbsp;&nbsp;&nbsp;&nbsp;
Логин:
<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 
Esempio n. 4
0
 /**
  * Добавляет жалобу на проект
  *
  * @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;
 }
Esempio n. 5
0
 /**
  * Добавляет жалобу на предложение
  * 
  * @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;
 }
Esempio n. 6
0
             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 = "Ошибка. Невозможно удалить раздел. Возможен конфликт ключей (если раздел уже содержит сообщества).";
Esempio n. 7
0
            }
            $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;