Exemplo n.º 1
0
<?php

require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/stdf.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/projects.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/CFile.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
$ret = 'ok:::-!-:::';
if (isset($_POST['project_id']) && isset($_POST['emp_id']) && is_array($_FILES['attach'])) {
    $prj_id = isset($_POST['project_id']) ? intval($_POST['project_id']) : 0;
    $project = new projects();
    $prj = $project->GetPrj(0, $prj_id, 1);
    if ($prj['id'] == $prj_id && $_POST['emp_id'] == $prj['user_id']) {
        $attaches = array();
        if (is_array($_FILES['attach']) && !empty($_FILES['attach']['name'])) {
            foreach ($_FILES['attach']['name'] as $key => $v) {
                if (!$_FILES['attach']['name'][$key]) {
                    continue;
                }
                $attaches[] = new CFile(array('name' => $_FILES['attach']['name'][$key], 'type' => $_FILES['attach']['type'][$key], 'tmp_name' => $_FILES['attach']['tmp_name'][$key], 'error' => $_FILES['attach']['error'][$key], 'size' => $_FILES['attach']['size'][$key]));
            }
        }
        if ($attaches) {
            $files = array();
            $error = false;
            $err = '';
            $emp = new users();
            $emp->GetUser($emp->GetField($prj['user_id'], $ee, 'login'));
            $dir = $emp->login;
            foreach ($attaches as $attach) {
                $attach->max_size = 2097152;
                $attach->proportional = 1;
Exemplo n.º 2
0
         $js_file[] = 'svg.js';
     }
     $inner = "rating_inner.php";
     $activ_tab = 11;
     break;
 case "project":
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/projects.php";
     $prj_id = intval(trim($_GET['prjid']));
     // todo: переполнение integer в БД.
     if ($prj_id < -2147483648 || $prj_id > 2147483647) {
         include ABS_PATH . "/404.php";
         exit;
     }
     $projects = new projects();
     $uid = $user->GetUid($err);
     $prj = $projects->GetPrj($uid, $prj_id);
     if ($prj['pro_only'] == "t" && !$_SESSION['pro_last'] && $_SESSION['login'] !== $prj['login'] && !hasPermissions('projects')) {
         header("Location: /proonly.php");
     }
     $inner = "aboutprj_inner.php";
     $activ_tab = 0;
     $page_keyw = "требуется дизайнер, программист, требуется менеджер, фотограф,\n  переводчик, автор, журналист, ищу, работа, вакансия, услуги, дизайн,\n  сайт, оптимизация, хостинг, флэш, баннер, портфолио, резюме, москва,\n  петербург";
     $page_descr = substr(preg_replace("'[\r\n\\s]+'", " ", input_ref($prj['descr'])), 0, 150);
     $page_title = $prj['name'];
     break;
 case "opinions":
     require_once $_SERVER['DOCUMENT_ROOT'] . "/user/opinions.action.php";
     $inner = "../opinions_inner.php";
     $activ_tab = 5;
     $css_file[] = 'opinions.css';
     break;
Exemplo n.º 3
0
/**
* Добавляет жалобу на проект.
*
* @param    integer     $project_id     ID проекта
* @param    integer     $user_id        ID пользователя
* @param    integer     $type           тип жалобы
* @param    string      $msg            текст жалобы
* @param    string      $files          имена загруженных скриншотов
*
* @return                               xajax responce
*/
function SendComplain($project_id, $type, $msg, $files)
{
    global $session;
    session_start();
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/uploader/uploader.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects_complains.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/userecho.php';
    $objResponse = new xajaxResponse();
    $project_id = (int) $project_id;
    $user_id = get_uid(false);
    $type = (int) $type;
    $msg = __paramValue('htmltext', $msg);
    $error = false;
    $project = new projects();
    $prj = $project->GetPrj(0, $project_id, 1);
    $file_list = array();
    if ($files != '') {
        $files = uploader::sgetFiles($files);
        if (!empty($files)) {
            $emp = new users();
            $emp->GetUser($emp->GetField($prj['user_id'], $ee, 'login'));
            $dir = 'users/' . substr($emp->login, 0, 2) . '/' . $emp->login . '/upload/';
            foreach ($files as $file) {
                $copy = uploader::remoteCopy($file['id'], 'file_projects', $dir);
                $rfiles[] = $copy->name;
                $file_list[] = array('name' => $copy->original_name, 'link' => WDCPREFIX . '/' . $copy->path . $copy->name);
            }
            $files = implode(',', $rfiles);
        } else {
            $files = '';
        }
    }
    if (!$files) {
        $files = '';
    }
    if (projects::IsHaveComplainType($project_id, $user_id, $type)) {
        // Уже жаловался
        return $objResponse;
    }
    $projects_complains = new projects_complains();
    $type_name = $projects_complains->GetComplainType($type);
    $project_url = getAbsUrl(getFriendlyURL('project', $project_id));
    $is_moder = $projects_complains->isComplainTypeModer($type);
    if ($is_moder) {
        $userEcho = new UserEcho();
        $topic_message = $userEcho->constructMessage($project_url, $prj['name'], $msg, $file_list);
        $topicUrl = $userEcho->newTopicComplain($type_name, $topic_message, $file_list);
        if ($topicUrl) {
            messages::sendProjectComplain($user_id, $project_url, $prj['name'], $msg, $topicUrl);
        } else {
            $error = true;
        }
    }
    if (!$error) {
        $error = projects::AddComplain($project_id, $user_id, $type, $msg, $files, $is_moder && $topicUrl);
    }
    if ($error) {
        $objResponse->script("\$('abuse_project_popup').toggleClass('b-shadow_hide');");
        if ($is_moder) {
            $objResponse->script("\$('abuse-cause-error').removeClass('b-layout__txt_hide'); abuseResetSelection();");
        } else {
            $objResponse->script("\$\$('.abuse-btn-send').removeClass('b-button_rectangle_color_disable')");
        }
    } else {
        $upl = array('umask' => uploader::umask('prj_abuse'), 'validation' => array('allowedExtensions' => array('jpg', 'gif', 'png', 'jpeg'), 'restrictedExtensions' => array()), 'text' => array('uploadButton' => iconv('cp1251', 'utf8', 'Прикрепить файлы')));
        $objResponse->script("\n            \$('abuse{$type}').addClass('abuse-checked');\n            \$('abuse{$type}').getChildren().each(function(el) { \$(el).addClass('abuse-checked'); });\n        ");
        $objResponse->script("uploader.create('abuse_uploader', " . json_encode($upl) . ');');
        $objResponse->script("\$('prj_abuse_msg').set('value', '')");
        $objResponse->script("\$\$('.abuse-btn-send').removeClass('b-button_disabled')");
        $objResponse->script("\$('abuse_project_popup').toggleClass('b-shadow_hide');");
        $objResponse->script("\$('project_abuse_success').removeClass('b-layout__txt_hide');");
        $objResponse->script("\$('form_abuse').hide();");
        $objResponse->script("setTimeout(\"\$('project_abuse_success').addClass('b-layout__txt_hide')\", 5000);");
        if ($is_moder) {
            $objResponse->script("\$('abuse-cause-error').addClass('b-layout__txt_hide');");
        }
    }
    return $objResponse;
}
Exemplo n.º 4
0
            ?>
<br/>
  <?php 
        }
        ?>
  </form>
<?php 
    }
    ?>
</body>
</html>
<?php 
} else {
    if (preg_match('~/projects/\\?pid=([\\d]+)~i', $_SERVER['HTTP_REFERER'], $aMatches)) {
        $project = new projects();
        $prj = $project->GetPrj(0, $aMatches[1], 1);
        $prj_kind = $prj['kind'];
        if ($prj_kind == 7) {
            echo '<html>
            <head>
            <title></title>
            </head>
            <body style="margin:0px; padding:0px">
            ERROR
            </body>
            </html>';
            die;
        }
    }
    ?>
<html>
Exemplo n.º 5
0
 /**
  * Посылаем уведомление пользователю о его некорректном проекте исходя из жалоб пользователей
  *
  * @param array $ids имеет вид array('1-2') где 1 - ИД проекта, 2 - Тип жалобы
  */
 function ProjectComplainsSend($ids, $connect = NULL)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/projects.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
     if (!is_array($ids)) {
         $ids = array($ids);
     }
     foreach ($ids as $id) {
         list($project_id, $type) = explode("-", $id);
         $complains[$project_id][] = $type;
     }
     // Рассылаем
     foreach ($complains as $project_id => $types) {
         $project = new projects();
         $prj = $project->GetPrj(0, $project_id, 1);
         $emp = new users();
         $emp->GetUserByUID($prj['user_id']);
         if (!$emp->email || substr($emp->subscr, 4, 1) != '1' || $emp->is_banned == '1') {
             continue;
         }
         $prj['name'] = htmlspecialchars($prj['name'], ENT_QUOTES, 'CP1251', false);
         $text_type = "";
         foreach ($types as $type) {
             switch ($type) {
                 case '6':
                     $this->subject = "Отредактируйте свой проект на FL.ru";
                     $message = "Пожалуйста, измените раздел/подраздел, в котором опубликован ваш проект «<a href='{$GLOBALS['host']}" . getFriendlyURL("project", $project_id) . $this->_addUrlParams('e') . "'>{$prj['name']}</a>». По сообщениям пользователей, проект размещен неверно: задание не соответствует специализации фрилансеров, которую вы указали.<br/><br/>";
                     $message .= "<a href='{$GLOBALS['host']}/public/?step=1&public={$project_id}" . $this->_addUrlParams('e') . "'>Перейти к редактированию проекта</a><br/><br/>";
                     $message .= "Шансы найти подходящего исполнителя выше, если ваш проект опубликован правильно. Вы можете ознакомиться с инструкцией по <a href='http://feedback.fl.ru/" . $this->_addUrlParams('e') . "'>редактированию</a> проектов в нашем сообществе поддержки.";
                     break;
                 case '7':
                     $this->subject = "Укажите дополнительную информацию по вашему проекту на FL.ru";
                     $message = "По сообщениям пользователей, вы указали недостаточно информации при публикации проекта «<a href='{$GLOBALS['host']}" . getFriendlyURL("project", $project_id) . $this->_addUrlParams('e') . "'>{$prj['name']}</a>». Возможно, вам стоит описать подробнее суть задачи, дополнить техническое задание, указать сроки выполнения работы.<br/><br/>";
                     $message .= "<a href='{$GLOBALS['host']}/public/?step=1&public={$project_id}" . $this->_addUrlParams('e') . "'>Перейти к редактированию проекта</a><br/><br/>";
                     $message .= "Вы можете ознакомиться с инструкцией по <a href='http://feedback.fl.ru/" . $this->_addUrlParams('e') . "'>редактированию</a> проектов в нашем сообществе поддержки. ";
                     break;
                 case '8':
                     $this->subject = "Укажите бюджет вашего проекта на FL.ru";
                     $message = "По сообщениям пользователей, вы не указали размер гонорара исполнителя в вашем проекте «<a href='{$GLOBALS['host']}" . getFriendlyURL("project", $project_id) . $this->_addUrlParams('e') . "'>{$prj['name']}</a>».<br/><br/>";
                     $message .= "Для того чтобы фрилансеры могли оценить соотношение «объем работы/оплата» и принять решение о подаче заявки на выполнение проекта, им необходимо знать бюджет. Пожалуйста, заполните поле «Бюджет» в форме редактирования проекта.<br/><br/>";
                     $message .= "<a href='{$GLOBALS['host']}/public/?step=1&public={$project_id}" . $this->_addUrlParams('e') . "'>Перейти к редактированию проекта</a><br/><br/>";
                     $message .= "Вы можете ознакомиться с инструкцией по <a href='http://feedback.fl.ru/" . $this->_addUrlParams('e') . "'>редактированию</a> проектов в нашем сообществе поддержки. ";
                     break;
                 default:
                     continue;
                     break;
             }
             $this->message = $this->GetHtml($emp->uname, $message, array('header' => 'default', 'footer' => 'feedback_default'), array('login' => $emp->login));
             $this->recipient = $emp->uname . ' ' . $emp->usurname . ' [' . $emp->login . '] <' . $emp->email . '>';
             $this->send('text/html');
             //$this->SmtpMail('text/html');
             projects::updateComplainCounters(array('is_send' => true), $project_id, "AND is_send = false AND type = {$type}");
         }
     }
 }
Exemplo n.º 6
0
}
$action = trim($_GET['action']);
if (!$action) {
    $action = trim($_POST['action']);
}
$can_modify = hasPermissions('projects');
switch ($action) {
    case "delete":
        $id = trim($_GET['prjid']);
        $projects = new projects();
        $projects->DeletePublicProject($id, 0, $can_modify);
        break;
    case "edit":
        $id = trim($_GET['prjid']);
        if ($id) {
            $eprj = projects::GetPrj(0, $id, $can_modify);
        }
        break;
    case "allow":
        $id = trim($_GET['aid']);
        if ($id) {
            $error .= projects::Alow($id);
        }
        break;
    case "prj_change":
        $admin_edit = 1;
        include $rpath . "user/employer/setup/newproj.php";
        break;
}
$kind = trim($_GET['kind']);
if (!$page) {
Exemplo n.º 7
0
             }
             if (!$error) {
                 $error = $prj_offer->SetSelected($po_id, $prj_id, $user_id, true);
                 header('Location: /projects/index.php?pid=' . intval($prj_id));
                 exit;
             }
         }
     }
     break;
 case 'refuse':
     if ($PDA) {
         $po_id = intval($_GET['id']);
         $prj_id = intval($_GET['pid']);
         $user_id = intval($_GET['uid']);
         $prj = new projects();
         $project = $prj->GetPrj($emp_id, $prj_id, 1);
         if (!$project) {
             $content = '404.php';
             include '../template2.php';
             exit;
         }
         if (isset($_GET['refuse'])) {
             $user = new users();
             $prj_offer = new projects_offers();
             $po_reason = intval($_GET['refuse']);
             $emp_id = get_uid(false);
             $emp_name = $user->GetName($emp_id, $error);
             //Не позволяем производить действия с заблокированным проектом
             if (projects::CheckBlocked(intval($prj_id))) {
                 $objResponse->script("document.location.href='/projects/index.php?pid=" . intval($prj_id) . "'");
             } else {