Exemple #1
0
 public static function nextActive()
 {
     $stmt = parent::$conn->prepare("SELECT * FROM contest WHERE contest_start = 0 ORDER BY contest_id ASC LIMIT 1");
     $contest = new contest($stmt);
     if ($contest->found()) {
         return $contest;
     }
     $stmt = parent::$conn->prepare("SELECT contest_name, contest_desc FROM contest GROUP BY contest_name, contest_desc ORDER BY COUNT(*) ASC, RAND() LIMIT 1");
     $randcontest = new contest($stmt);
     if (!$randcontest->found()) {
         return new contest(['name' => 'Placeholder', 'desc' => '-']);
     }
     return new contest(['name' => $randcontest->name, 'desc' => $randcontest->desc]);
 }
Exemple #2
0
function pickrandom($time)
{
    $active = contest::active();
    $activeCountries = country::stateSortVotes('active');
    if ($activeCountries->count() == 0) {
        $final = country::stateSortVotes('finale');
        $finalCount = $final->count();
        $ranks = [1 => 'gold', 2 => 'silver', 3 => 'bronze'];
        for ($i = 1; $i <= 3 && $i <= $finalCount; $i++) {
            $final->found();
            new medal(['type' => $ranks[$i], 'votes' => $final->votes, 'contest#' => $active->id, 'country#' => $final->id]);
        }
        country::resetVotes();
        $active->end = $time;
        $new = contest::nextActive();
        $new->start = $time;
        $new->update();
        pickFromQueue();
    } else {
        $activeCountries->state = 'finale';
        $activeCountries->votes = 0;
        while ($activeCountries->found()) {
            $activeCountries->state = 'eliminated';
        }
        pickFromQueue();
    }
}
 public function executeNew(sfWebRequest $request)
 {
     // Display the form
     $this->form = new ContestForm();
     if ($this->getRequest()->isMethod('post')) {
         $this->form->bind($request->getParameter('contest'));
         if ($this->form->isValid()) {
             $contest = new contest();
             $contest->setEmail($this->form->getValue('email'));
             $contest->setUrl($this->form->getValue('url'));
             $contest->setAdmin_hash(md5(time() . $this->form->getValue('url') . $this->form->getValue('email')));
             $contest->setPublic_hash(md5(time() . $this->form->getValue('email') . $this->form->getValue('url')));
             $contest->save();
             // Send mail with secret URL
             try {
                 // Create the mailer and message objects
                 //$mailer = new Swift(new Swift_Connection_NativeMail());
                 //$connection = new Swift_Connection_SMTP('smtp.free.fr');
                 $connection = new Swift_Connection_NativeMail();
                 $mailer = new Swift($connection);
                 $message = new Swift_Message('Welcome!');
                 // Render message parts
                 $mailContext = array('admin_hash' => $contest->getAdmin_hash(), 'contest_url' => $contest->getUrl());
                 $v = $this->getPartial('newcontestMailHtmlBody', $mailContext);
                 $htmlPart = new Swift_Message_Part($v, 'text/html');
                 $message->attach($htmlPart);
                 $message->attach(new Swift_Message_Part($this->getPartial('newcontestMailTextBody', $mailContext), 'text/plain'));
                 $mailTo = $contest->getEmail();
                 $mailFrom = sfConfig::get('app_mail_webmaster');
                 $mailer->send($message, $mailTo, $mailFrom);
                 $mailer->disconnect();
             } catch (Exception $e) {
                 $this->logMessage($e);
             }
             //redirect to the thank you page
             $this->redirect('contest/thankyou');
         }
     } else {
         return sfView::SUCCESS;
     }
 }
 /**
  * Переносим ответы на проекты в работающие таблицы
  * 
  * @param array $offers  Ответы на проекты
  * @return array
  */
 public function transferOffers($offers)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/projects_offers.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/contest.php";
     foreach ($offers as $k => $offer) {
         $pict1 = str_replace("sm_", "", $offer['pict1']);
         $pict2 = str_replace("sm_", "", $offer['pict2']);
         $pict3 = str_replace("sm_", "", $offer['pict3']);
         // Переносим файлы в рабочие папки сайта
         $files = $this->_db->rows("SELECT DISTINCT id FROM file_wizard WHERE fname IN (?l)", array($pict1, $pict2, $pict3));
         if ($files) {
             $dir = "users/" . substr($this->user->login, 0, 2) . "/" . $this->user->login . "/upload/";
             $table = 'file';
             $picts = $this->transferFiles($files, $table, $dir, false);
             $sm_files = $this->_db->rows("SELECT DISTINCT id FROM file_wizard WHERE fname IN (?l)", array($offer['pict1'], $offer['pict2'], $offer['pict3']));
             if ($sm_files) {
                 $sm_picts = $this->transferFiles($sm_files, $table, $dir, false);
             }
         }
         if ($offer['kind'] != 7) {
             $error = projects_offers::AddOffer(wizard::getUserIDReg(), $offer['project_id'], $offer['cost_from'], $offer['cost_to'], $offer['cost_currency'], $offer['time_from'], $offer['time_to'], $offer['time_type'], $offer['descr'], 0, 0, 0, null, null, null, null, null, null, $picts[0]['fname'], $picts[1]['fname'], $picts[2]['fname'], $sm_picts[0]['fname'], $sm_picts[1]['fname'], $sm_picts[2]['fname']);
         } else {
             // Пишем ответ на конкурс
             $contest = new contest($offer['project_id'], wizard::getUserIDReg());
             $error = $contest->CreateOffer($offer['descr'], implode('/', $files), false);
             if ($picts && $contest->new_oid) {
                 $content_pict = array();
                 foreach ($picts as $k => $pict) {
                     $content_pict[] = array('uid' => wizard::getUserIDReg(), 'file' => $pict['id'], 'prev' => $sm_picts[$k]['id'], 'orig_name' => $pict['orig_name'], 'post_date' => date('Y-m-d H:i:s'));
                 }
                 $contest->addOfferFiles($contest->new_oid, $content_pict);
             }
         }
         if (!$error) {
             $delete_offers[] = $offer['id'];
         } else {
             $error_offer[] = $error . " - ответ на проект #{$offer['id']}";
         }
         unset($error);
     }
     // Очищаем перенесенные данные если нет ошибок если есть выводим
     if ($error_offer) {
         foreach ($error_offer as $error) {
             $this->log->writeln("Error transfer offer content - user (" . wizard::getUserIDReg() . "|" . $this->getWizardUserID() . ") - Error: {$error}");
         }
     } else {
         if ($delete_offers) {
             $this->_db->query("DELETE FROM wizard_offers WHERE id IN (?l) AND wiz_uid = ?", $delete_offers, $this->getWizardUserID());
         }
     }
     return $error_offer;
 }
Exemple #5
0
 /**
  * Проверка возможности отправить сообщение ползователю.
  * 
  * @global type $DB
  * @staticvar null $exists_allowed
  *
  * @param type $to_id
  * @param type $from_id
  *
  * @return bool
  */
 public static function isAllowed($to_id, $from_id = null)
 {
     $is_auth = isset($_SESSION['uid']) && $_SESSION['uid'] > 0;
     if (!$from_id && !$is_auth) {
         return false;
     }
     if (!$from_id) {
         $from_id = $_SESSION['uid'];
     }
     if ($is_auth && (currentUserHasPermissions('users') || is_emp())) {
         return true;
     }
     $is_allowed = self::_isAllowed($to_id, $from_id);
     if (!$is_allowed) {
         //Была ли уже проверка доступности
         //тогда пользователю запрещено писать
         $key_check_is_allowed = sprintf(self::KEY_CHECK_IS_ALLOWED, $from_id, $to_id);
         $mem = new memBuff();
         if ($mem->get($key_check_is_allowed)) {
             return false;
         }
         //Иначе делаем проверку
         //Которые уже хотя бы раз общались с заказчиком через личку,
         //например если заказчик инициировал общение или они ранее общались
         $proxy_db = new DB();
         $is_allowed = $proxy_db->val('SELECT messages_dialog_count(?i, ?i)', $to_id, $from_id) > 0;
         //Которых заказчик выбрал исполнителем в любом своем проекте
         if (!$is_allowed) {
             require_once ABS_PATH . '/classes/projects.php';
             $is_allowed = (bool) projects::isExec($from_id, $to_id);
         }
         //В список условий я бы еще добавил проведение заказа на сайте - если есть завершенный заказ
         //(с резервом или без, по ТУ, проекту или прямой) с данным заказчиком, то тоже разрешать
         //исполнителю писать ему в личку, так как в заказе светится логин заказчика и они уже сотрудничали.
         if (!$is_allowed) {
             require_once ABS_PATH . '/tu/models/TServiceOrderModel.php';
             $is_allowed = (bool) TServiceOrderModel::hasSuccessfulOrder($from_id, $to_id);
         }
         //Если фрилансер был выбран на любое призовое место в конкурсе то
         //он может писать сообщения заказчику.
         if (!$is_allowed) {
             require_once ABS_PATH . '/classes/contest.php';
             $is_allowed = (bool) contest::isPrizePlace($from_id, $to_id);
         }
         if ($is_allowed) {
             self::setIsAllowed($to_id, $from_id, true);
         }
         $mem->set($key_check_is_allowed, 1, 0, self::KEY_CHECK_TAG_IS_ALLOWED);
     }
     return $is_allowed;
 }
function AddDialogueMessage($form)
{
    global $session;
    session_start();
    $objResponse = new xajaxResponse();
    $offerIsBlocked = projects_offers::isOfferBlocked(false, get_uid(), $form['prj_id']);
    if ($offerIsBlocked) {
        $objResponse->alert('Ваше предложение заблокировано, вы не можете отправить это сообщение');
        return $objResponse;
    }
    $prj = new projects();
    $project = $prj->GetPrjCust(intval($form['prj_id']));
    $is_pro = is_pro();
    if ($project['pro_only'] == 't' && !$is_pro && !is_emp() && !hasPermissions('projects')) {
        if ($project['kind'] == 7) {
            if (contest::IsContestOfferExists($project['id'], get_uid(false))) {
                $is_pro = true;
            }
        } else {
            if (projects_offers::IsPrjOfferExists($project['id'], get_uid(false))) {
                $is_pro = true;
            }
        }
    }
    if ($project['pro_only'] == 't' && !$is_pro && $project['user_id'] != get_uid() && !hasPermissions('projects')) {
        $objResponse->alert('Данная функция доступна только пользователям с аккаунтом PRO.');
        $objResponse->script("\$('savebtn').set('disabled', false);");
        return $objResponse;
    } elseif ($project['verify_only'] == 't' && !($_SESSION['is_verify'] == 't') && $project['user_id'] != get_uid() && !hasPermissions('projects')) {
        $objResponse->alert('Данная функция доступна только верифицированным пользователям.');
        $objResponse->script("\$('savebtn').set('disabled', false);");
        return $objResponse;
    }
    if (!trim($form['po_text'])) {
        $objResponse->alert('Невозможно отправить пустое сообщение.');
        $objResponse->script("\n            \$('savebtn').set('disabled', false);\n        ");
        return $objResponse;
    }
    if (!is_emp() && $form['from'] == 'emp') {
        $objResponse->script("\n            \$('savebtn').set('disabled', false);\n        ");
        $objResponse->alert('Невозможно отправить сообщение. Вы вышли из аккаунта работодателя.');
        return $objResponse;
    } elseif (is_emp() && $form['from'] == 'frl') {
        $objResponse->script("\n            \$('savebtn').set('disabled', false);\n        ");
        $objResponse->alert('Невозможно отправить сообщение. Вы вышли из аккаунта фрилансера.');
        return $objResponse;
    }
    //Не позволяем производить действия с заблокированным проектом
    if (projects::CheckBlocked(intval($form['prj_id']))) {
        $objResponse->script("document.location.href='/projects/index.php?pid=" . intval($form['prj_id']) . "'");
    } elseif (intval($_SESSION['uid'])) {
        $po_id = intval($form['po_id']);
        //$po_text = substr(change_q_x($form['po_text'], false), 0, 1000);
        $po_text = antispam(trim($form['po_text']));
        $po_text = preg_replace("/(\r\n|\r|\n){3,100}/i", "\r\n\r\n", $po_text);
        $po_commentid = intval($form['po_commentid']);
        $user_id = get_uid(false);
        $user = new users();
        $user_name = $user->GetName($user_id, $error);
        $pod = new projects_offers_dialogue();
        $project_dialogue = $pod->GetDialogueForOffer($po_id);
        $project = $pod->GetProjectFromDialogue($po_id);
        if (count($project_dialogue)) {
            for ($i = count($project_dialogue) - 1; $i >= 0; --$i) {
                if ($project_dialogue[$i]['user_id'] != $user_id) {
                    $to_user_name = $project_dialogue[$i]['login'];
                    break;
                }
            }
        }
        if (is_emp()) {
            $emp_read = true;
            $frl_read = false;
        } else {
            $emp_read = false;
            $frl_read = true;
        }
        if (!$po_commentid) {
            $error = $pod->AddDialogueMessage($po_id, $user_id, $po_text, $frl_read, $emp_read);
            $last_comment = $pod->GetLastDialogueMessage($user_id, $po_id);
            $objResponse->script("last_commentid={$last_comment};");
            $objResponse->script("edit_block[{$po_id}] = '&nbsp;&nbsp;<span><a href=\"javascript:void(null)\" onClick=\"answer({$po_id}, {$last_comment});markRead(\\'{$po_id}\\');\" class=\"internal\">Редактировать</a></span>';");
            //		$objResponse->script("alert(last_commentid);");
            //		$objResponse->script("alert(edit_block);");
        } else {
            $error = $pod->SaveDialogueMessage($user_id, $po_text, $po_commentid, $po_id, false);
            if ($error == 1) {
                $objResponse->alert('Вы не можете редактировать комментарий, так как на него уже ответили.');
                return $objResponse;
            }
        }
        $po_text = rtrim(ltrim($po_text, "\r\n"));
        $po_text = substr(change_q_x($po_text, false, true, '', false, false), 0, 1000);
        $po_text = stripslashes($po_text);
        if ($error == '') {
            $sPostText = $po_text;
            if ($project['kind'] != 4) {
                $sId = $po_commentid ? $po_commentid : $last_comment;
                $aComment = $pod->getDialogueMessageById($sId);
                if ($aComment['moderator_status'] === '0') {
                    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php';
                    $stop_words = new stop_words(hasPermissions('projects'));
                    $sPostText = $stop_words->replace($sPostText);
                }
            }
            if (!$po_commentid) {
                $objResponse->append('po_dialogue_talk_' . $po_id, 'innerHTML', '<div style="margin-bottom:8px;font-size:100%;"><span class="' . (is_emp() ? 'emp' : 'frl') . 'name11"><a href="/users/' . get_login($user_id) . '/" class="' . (is_emp() ? 'emp' : 'frl') . 'name11" title="' . $user_name['uname'] . ' ' . $user_name['usurname'] . '">' . $user_name['uname'] . ' ' . $user_name['usurname'] . '</a> [<a href="/users/' . $user_name['login'] . '/" class="' . (is_emp() ? 'emp' : 'frl') . 'name11" title="' . $user_name['login'] . '">' . $user_name['login'] . '</a>]</span> <span id="po_date_' . $last_comment . '">[' . strftime('%d.%m.%Y | %H:%M', time()) . ']</span><br /><div id="po_comment_' . $last_comment . '">' . reformat($sPostText, 50, 0, 0, 1) . '</div><div id="po_comment_original_' . $last_comment . '" style="display:none;">' . str_replace(' ', '&nbsp;', reformat($po_text, 1000, 0, 1)) . '</div></div>');
                //			$objResponse->call('resetfld', $po_id);
                $objResponse->script('dialogue_count[' . $po_id . '] = ' . (count($project_dialogue) + 1));
            } else {
                $objResponse->assign('po_comment_' . $po_commentid, 'innerHTML', reformat($sPostText, 50, 0, 0, 1));
                $objResponse->assign('po_comment_original_' . $po_commentid, 'innerHTML', str_replace(' ', '&nbsp;', reformat($po_text, 1000, 0, 1)));
                $objResponse->assign('po_date_' . $po_commentid, 'innerHTML', dateFormat('[d.m.Y | H:i]', date('Y-m-d H:i:s')));
            }
            $objResponse->call('answer', $po_id);
            if ($to_user_name && $project['id'] && $project['name'] && !$po_commentid) {
                /*require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/smail.php");
                		$smail = new smail();
                		if ($project['user_id'] == $user_id) {
                               $error = $smail->NewPrjMessageOnOfferFrl($user_name['login'], $project['id'], $project['name'], $to_user_name, $po_text);
                		} else {
                               $error = $smail->NewPrjMessageOnOfferEmp($user_name['login'], $project['id'], $project['name'], $to_user_name, $po_text);
                		}*/
            }
        } else {
            $objResponse->alert('Ошибка сохранения.');
        }
    } else {
        $objResponse->alert('Ошибка сохранения. Авторизируйтесь на сайте.');
    }
    return $objResponse;
}
/**
 * Установка/снятие кандидата.
 *
 * @param   integer        id предложения
 *
 * @return xajaxResponse
 */
function Candidate($oid)
{
    global $DB;
    session_start();
    $uid = $_SESSION['uid'];
    $oid = intval($oid);
    $objResponse = new xajaxResponse();
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/contest.php';
    $row = $DB->row('
		SELECT offers.*, users.login, projects.user_id AS owner_id, projects.closed 
		FROM projects_contest_offers AS offers 
		JOIN projects ON projects.id = offers.project_id 
		JOIN users ON users.uid = offers.user_id 
		WHERE offers.id = ? AND ((SELECT COUNT(*) FROM projects_contest_offers WHERE project_id = projects.id AND (position IS NOT NULL AND position > 0)) = 0)
	', $oid);
    if (!$row) {
        $objResponse->alert('Несуществующее предложение');
        return $objResponse;
    }
    if (!is_emp() || $uid != $row['owner_id']) {
        $objResponse->alert('Несуществующее предложение!');
        return $objResponse;
    }
    if ($row['closed'] == 't') {
        $objResponse->alert('Проект закрыт!');
        return $objResponse;
    }
    $contest = new contest(0, $uid, is_emp(), TRUE, hasPermissions('projects'));
    if ($error = $contest->Candidate($oid)) {
        $objResponse->alert($error);
        return $objResponse;
    }
    if ($row['selected'] == 't') {
        $objResponse->call('candidate.deleted', $row['user_id'], $row['login']);
    } else {
        $objResponse->call('candidate.added', $row['user_id'], $row['login']);
    }
    return $objResponse;
}
Exemple #8
0
 /**
  * Получение одного проекта
  * 
  * @param  array $aParams массив входящих данных
  * @return array $aResult ответ
  */
 protected function x____projects_get($aParams = array())
 {
     $this->_validDevice($aParams);
     $sId = __paramValue('int', $aParams['id'], null, true);
     if (!empty($sId)) {
         require_once ABS_PATH . '/classes/projects.php';
         $oPrj = new new_projects();
         $aProject = $oPrj->GetPrjCust($sId);
         $aAttaches = $oPrj->getAllAttach($sId);
         if (!empty($aProject)) {
             if ($aProject['is_banned'] || $aProject['is_blocked']) {
                 // работодатель или проест заблокированы
                 $this->error(EXTERNAL_ERR_PROJECT_NOT_FOUND);
             }
             $aResult = array('item' => $this->_getProjectData($aProject));
             $nUid = get_uid(false);
             $aSpecs = new_projects::getSpecs($sId);
             if (is_array($aSpecs) && $aSpecs) {
                 $aResult['item']['category_id'] = $aSpecs[0]['category_id'];
                 $aResult['item']['subcategory_id'] = $aSpecs[0]['subcategory_id'];
             }
             $aResult['item']['attaches'] = array();
             if ($aAttaches) {
                 foreach ($aAttaches as $attach) {
                     $aResult['item']['attaches'][] = array("url" => WDCPREFIX . '/' . $attach['path'], "file" => $attach['name']);
                 }
             }
             $aResult['item']['responses'] = array();
             if ($aProject['kind'] == 7) {
                 // конкурс
                 require_once ABS_PATH . '/classes/contest.php';
                 $oContest = new contest($sId, $nUid, is_emp(), $aProject['user_id'] == $nUid, false, is_pro());
                 $oContest->GetOffers();
                 if (is_array($oContest->offers) && $oContest->offers) {
                     foreach ($oContest->offers as $aOne) {
                         $aResult['item']['responses'][] = $this->_getContestOfferData($aOne);
                     }
                 }
             } else {
                 // проект
                 require_once ABS_PATH . '/classes/projects_offers.php';
                 require_once ABS_PATH . '/classes/projects_offers_dialogue.php';
                 $oPrjOffers = new projects_offers();
                 $obj_dialogue = new projects_offers_dialogue();
                 $nOffersCnt = 0;
                 if (is_emp()) {
                     // залогинен работодатель
                     $aOffers = $oPrjOffers->GetPrjOffers($nOffersCnt, $sId, 'ALL', 0, $nUid, $aProject['user_id'] == $nUid, 'date', $aProject['user_id'] == $nUid ? 'a' : 'nor');
                 } else {
                     $aOffers = $oPrjOffers->GetPrjOffers($nOffersCnt, $sId, 'ALL', 0, $nUid, false, null, 'nor');
                 }
                 // Диалоги по предложениям к данному проекту и все остальное
                 if (is_array($aOffers) && $aOffers) {
                     foreach ($aOffers as $key => $value) {
                         $aOffers[$key]['exec_id'] = $aProject['exec_id'];
                         $aOffers[$key]['emp_uid'] = $aProject['user_id'];
                         $aOffers[$key]['dialogue'] = $obj_dialogue->GetDialogueForOffer($value['id']);
                         $aResult['item']['responses'][] = $this->_getProjectOfferData($aOffers[$key]);
                     }
                 }
                 $aResult['item']['responses_count'] = $nOffersCnt;
                 $aResult['item']['is_responses_exists'] = $oPrjOffers->OfferExist($sId, $nUid) ? 1 : 2;
                 // Наличие предложения данного юзера по данному проекту
                 if ($aResult['item']['is_responses_exists'] == 1) {
                     // Предложение данного пользователя по данному проекту
                     $user_offer = $oPrjOffers->GetPrjOffer($sId, $nUid);
                     $user_offer['exec_id'] = $aProject['exec_id'];
                     $user_offer['emp_uid'] = $aProject['user_id'];
                     // Диалог по предложению данного пользователя
                     $user_offer['dialogue'] = $obj_dialogue->GetDialogueForOffer($user_offer['id']);
                     $aResult['item']['responses'][] = $this->_getProjectOfferData($user_offer);
                 }
             }
         } else {
             $this->error(EXTERNAL_ERR_PROJECT_NOT_FOUND);
         }
     } else {
         $this->error(EXTERNAL_ERR_EMPTY_PROJECT_ID);
     }
     return $aResult;
 }
Exemple #9
0
	</div>
	<?php 
if (count($_POST) == 2) {
    new contest($_POST);
    echo '<div class="green">Contest ', $_POST['name'], ' has been added</div>';
}
?>
	<div>
		<form action="/manage/contest" method="post">
			<div><input type="text" name="name" placeholder="Name" /></div>
			<div><textarea name="desc" placeholder="Description"></textarea></div>
			<div><input type="submit" value="Add"/></div>
		</form>
	</div>
	<?php 
$contest = new contest(false);
$i = 0;
$max = 10;
if (isset($uri[0]) && $uri[0] == 'all') {
    $max = 10000;
}
?>

	<div id="contests">
		<?php 
echo $contest->count();
?>
 contests found <?php 
if ($max == 10) {
    ?>
(10 newest shown - <a href="/manage/contest/all">click here to show all</a>)<?php 
ini_set('max_execution_time', 900);
require_once '../../config/connection.php';
//including classes
include 'classes/coders_basic.php';
include 'classes/coders_rating.php';
include 'classes/contests.php';
include 'classes/hackerearth_api_connect.php';
include 'classes/hackerearth_data.php';
include 'classes/hackerearth_candidate_api_connect.php';
include 'classes/admin.php';
include 'classes/api_table.php';
//including functions
include 'functions/new_rating.php';
include 'functions/probability_function.php';
//declaring contest variables
$contest = new contest();
$contest_id = $contest->get_not_evaluated_contest();
$cid = $contest->get_contest_no($contest_id);
$contest_type = $contest->get_contest_type($contest_id);
//calling the function
if ($contest_type == 1) {
    update_details($contest, $contest_id, $contest_type, $cid);
} else {
    update_details_global($contest, $contest_id, $contest_type, $cid);
}
function update_details($contest, $contest_id, $contest_type, $cid)
{
    //adding contest details
    //creating object of api
    echo "inside update details ";
    $provider = "hackerearth";
/**
 * @param $frm - данные запроса
 * @param $type - тип страницы, с которой была запрошена форма быстрого редактирования проекта
 *                 1 - лента на главной, 
 *                 2 - редактируется конкурс,
 *                 3 - страница проекта в профиле работодателя,
 *                 4 - проект в списке в профиле работодателя
 * */
function quickprjedit_save_prj($frm, $type)
{
    $objResponse = new xajaxResponse();
    if (hasPermissions('projects')) {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
        $oprj = new new_projects();
        $project = $oprj->getPrj($frm['id']);
        if ($project['id']) {
            $objResponse->script('popupQEditPrjHideErrors();');
            $key = $frm['tmpid'];
            $tmpPrj = new tmp_project($key);
            $tmpPrj->init(2);
            $errors = array();
            $frm['name'] = trim($frm['name']);
            $frm['descr'] = trim($frm['descr']);
            if ($frm['link'] == 'Адрес сайта') {
                $frm['link'] = '';
            }
            $frm['link'] == trim($frm['link']);
            if (!empty($frm['link'])) {
                if (strpos($frm['link'], 'http://') === 0) {
                    $protocol = 'http://';
                }
                if (strpos($frm['link'], 'https://') === 0) {
                    $protocol = 'https://';
                }
                if ($protocol == '') {
                    $protocol = 'http://';
                }
                $frm['link'] = $protocol . ltrim($frm['link'], $protocol);
                if (!is_url($frm['link'])) {
                    $errors[] = 'logourl';
                }
            }
            if (empty($frm['name'])) {
                $errors[] = 'name';
            }
            if (empty($frm['descr'])) {
                $errors[] = 'descr';
            }
            if ($frm['pf_city']) {
                $frm['city'] = $frm['pf_city'];
            }
            if ($project['kind'] == 7) {
                if (!preg_match("/^([0-9]{1,2})\\-([0-9]{1,2})\\-([0-9]{4})\$/", $frm['end_date'], $o1) || !checkdate($o1[2], $o1[1], $o1[3])) {
                    $errors[] = 'end_date';
                }
                if (!preg_match("/^([0-9]{1,2})\\-([0-9]{1,2})\\-([0-9]{4})\$/", $frm['win_date'], $o2) || !checkdate($o2[2], $o2[1], $o2[3])) {
                    $errors[] = 'win_date';
                }
                if (!in_array('end_date', $errors) && mktime(0, 0, 0, $o1[2], $o1[1], $o1[3]) <= mktime(0, 0, 0)) {
                    $errors[] = 'end_date_past';
                }
                if (!in_array('end_date', $errors) && mktime(0, 0, 0, $o2[2], $o2[1], $o2[3]) <= mktime(0, 0, 0, $o1[2], $o1[1], $o1[3])) {
                    $errors[] = 'win_date_past';
                }
            }
            if (!count($errors)) {
                $c = $frm['categories'];
                $sc = $frm['subcategories'];
                foreach ($frm['categories'] as $sKey => $value) {
                    if ($value == 0) {
                        continue;
                    }
                    $check[] = $value . '_' . $sc[$sKey];
                }
                $uniq = array_unique($check);
                foreach ($uniq as $val) {
                    list($cat, $subcat) = explode('_', $val);
                    $check_array[$cat][] = $subcat;
                }
                $categories = array();
                foreach ($check_array as $k => $val) {
                    if (count($val) > 1 && array_search(0, $val) !== false) {
                        $categories[] = array('category_id' => $k, 'subcategory_id' => 0);
                        unset($check_array[$k]);
                    } else {
                        foreach ($val as $m => $v) {
                            $categories[] = array('category_id' => $k, 'subcategory_id' => $v);
                        }
                    }
                }
                $tmpPrj->setProjectField('name', change_q_x($frm['name']), true);
                $tmpPrj->setProjectField('descr', change_q_x($frm['descr'], false, true, '', false, false));
                $tmpPrj->setProjectField('pro_only', $frm['pro_only'] == 1 ? 't' : 'f');
                $tmpPrj->setProjectField('verify_only', $frm['verify_only'] == 1 ? 't' : 'f');
                $tmpPrj->setProjectField('strong_top', (int) $frm['strong_top']);
                $tmpPrj->setProjectField('prefer_sbr', $frm['prefer_sbr'] == 1 ? 't' : 'f');
                $tmpPrj->setProjectField('urgent', $frm['is_urgent'] == 1 ? 't' : 'f');
                $tmpPrj->setProjectField('hide', $frm['is_hide'] == 1 ? 't' : 'f');
                switch ($frm['kind']) {
                    case 1:
                        $tmpPrj->setProjectField('country', 0);
                        $tmpPrj->setProjectField('city', 0);
                        $tmpPrj->setProjectField('kind', $frm['kind']);
                        break;
                    case 4:
                        $tmpPrj->setProjectField('country', $frm['country']);
                        $tmpPrj->setProjectField('city', $frm['city']);
                        $tmpPrj->setProjectField('kind', $frm['kind']);
                        break;
                }
                if ($project['kind'] == 7) {
                    $tmpPrj->setProjectField('end_date', $frm['end_date']);
                    $tmpPrj->setProjectField('win_date', $frm['win_date']);
                    $tmpPrj->clearWinners();
                }
                $tmpPrj->setCategories($categories);
                $tmpPrj->setProjectField('link', $frm['link']);
                $tmpPrj->setProjectField('is_color', $frm['is_color'] == 1 ? 't' : 'f');
                $tmpPrj->setProjectField('is_bold', $frm['is_bold'] == 1 ? 't' : 'f');
                $tmpPrj->setAddedTopDays($frm['top_ok'] == 1 ? $frm['top_days'] : 0);
                if (!$project['folder_id']) {
                    $tmpPrj->setProjectField('folder_id', 0);
                }
                require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php';
                $attachedfiles = new attachedfiles($frm['attachedfiles_session']);
                $attachedfiles_files = $attachedfiles->getFiles(array(1, 3, 4));
                $tmpPrj->addAttachedFiles($attachedfiles_files);
                $attachedfiles->clear();
                $tmpPrj->saveProject(get_uid(false), $ttt);
                require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/project_exrates.php';
                require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php';
                $stop_words = new stop_words(hasPermissions('projects'));
                $objResponse->script('popupQEditPrjHide();');
                switch ($type) {
                    case 1:
                    case 4:
                        // Лента проектов
                        global $session;
                        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
                        $prj_id = $project['id'];
                        $obj_project = new new_projects();
                        $tproject = $obj_project->getProjects($num, -1, 1, false, null, false, true, $prj_id);
                        $this_kind = $tproject[0]['kind'];
                        $this_uid = get_uid(false);
                        $this_pro_last = $_SESSION['pro_last'];
                        $this_is_pro = payed::CheckPro($_SESSION['login']);
                        $this_edit_mode = hasPermissions('projects');
                        if ($this_uid) {
                            $this_user_role = $_SESSION['role'];
                        }
                        $this_project = $tproject[0];
                        $row = $this_project;
                        if ($this_edit_mode || $this_project['kind'] == 2 || $this_project['user_id'] == $this_uid || $this_project['offer_id'] || $this_pro_last) {
                            $this_show_data = 1;
                            $row['show_data'] = 1;
                        } else {
                            $this_show_data = 0;
                            $row['show_data'] = 0;
                        }
                        $descr = $row['descr'];
                        $descr = preg_replace('/^ /', "", $descr);
                        $descr = preg_replace("/(\n) /", "\$1", $descr);
                        $descr = reformat(strip_tags(LenghtFormatEx($descr, 180), '<br />'), 50, 1, 0, 1);
                        $descr = preg_replace("//", '&nbsp;', $descr);
                        $row['descr'] = $descr;
                        $row['t_is_payed'] = $this_project['payed'] && $this_project['kind'] != 2 && $this_project['kind'] != 7;
                        $row['t_is_contest'] = $this_project['kind'] == 2 || $this_project['kind'] == 7;
                        $row['t_pro_only'] = $this_project['pro_only'] == 't';
                        $row['t_verify_only'] = $this_project['verify_only'] == 't';
                        $row['t_hide'] = $this_project['hide'] == 't';
                        $row['t_urgent'] = $this_project['urgent'] == 't';
                        $row['t_prefer_sbr'] = $this_project['prefer_sbr'] == 't';
                        $row['priceby'] = $this_project['priceby'];
                        $row['t_is_adm'] = hasPermissions('projects');
                        $row['t_is_ontop'] = strtotime($this_project['top_to']) >= time();
                        $row['unread'] = (int) $this_project['unread_p_msgs'] + (int) $this_project['unread_c_msgs'] + (int) $this_project['unread_c_prjs'];
                        $row['t_is_proonly'] = $this_project['pro_only'] == 't' && !$_SESSION['pro_last'] && !$this_edit_mode && $this_uid != $this_project['user_id'];
                        $attaches = projects::GetAllAttach($this_project['id']);
                        $attaches = !$attaches ? array() : $attaches;
                        foreach ($attaches as $k => $a) {
                            $a['virus'] = is_null($a['virus']) ? $a['virus'] : bindec($a['virus']);
                            $attaches[$k] = $a;
                        }
                        $row['attaches'] = $this_project['attaches'] = $attaches;
                        $is_ajax = true;
                        $can_change_prj = hasPermissions('projects');
                        $row['friendly_url'] = getFriendlyURL('project', $row['id']);
                        ob_start();
                        if ($type == 1) {
                            $project = projects::initData($row);
                            require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.lenta-item.php';
                        } else {
                            require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php';
                            $user = new employer();
                            $user->GetUserByUID($this_project['user_id']);
                            require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.employer-project-item.php';
                        }
                        $html_data = ob_get_contents();
                        ob_end_clean();
                        $objResponse->assign("project-item{$prj_id}", 'innerHTML', $html_data);
                        if ($row['is_color'] == 't') {
                            $objResponse->script("\$('project-item{$prj_id}').addClass('b-post_bg_fffded')");
                        } else {
                            $objResponse->script("\$('project-item{$prj_id}').removeClass('b-post_bg_fffded')");
                        }
                        //$objResponse->script('alert("Лента");');
                        //$objResponse->script('window.location.reload();');
                        break;
                    case 2:
                        // Конкурс
                        //$objResponse->script('alert("Конкурс");');
                        $project_exRates = project_exrates::GetAll();
                        $translate_exRates = array(0 => 2, 1 => 3, 2 => 4, 3 => 1);
                        global $session;
                        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/contest.php';
                        $prj_id = $project['id'];
                        $obj_project = new projects();
                        $project = $obj_project->GetPrjCust($prj_id);
                        if (hasPermissions('projects')) {
                            $project_history = $obj_project->GetPrjHistory($prj_id);
                        }
                        $project_attach = $obj_project->GetAllAttach($prj_id);
                        $contest = new contest($project['id'], $uid, is_emp(), $project['user_id'] == $uid, hasPermissions('projects'), is_pro());
                        $contest->GetOffers((string) $_GET['filter']);
                        $project['contest_end'] = mktime() > strtotime($project['end_date']);
                        $project['contest_win'] = mktime() > strtotime($project['win_date']);
                        if (trim($project['contacts']) != '') {
                            $contacts_employer = unserialize($project['contacts']);
                            $empty_contacts_employer = 0;
                            foreach ($contacts_employer as $name => $contact) {
                                if (trim($contact['value']) == '') {
                                    $empty_contacts_employer++;
                                }
                            }
                            $is_contacts_employer_empty = count($contacts_employer) == $empty_contacts_employer;
                        }
                        ob_start();
                        require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/contest_item.php';
                        $html_data = ob_get_contents();
                        ob_end_clean();
                        $objResponse->assign("contest_info_{$prj_id}", 'innerHTML', $html_data);
                        break;
                    case 3:
                        // Проект
                        $project_exRates = project_exrates::GetAll();
                        $translate_exRates = array(0 => 2, 1 => 3, 2 => 4, 3 => 1);
                        $prj_id = $project['id'];
                        $obj_project = new projects();
                        $project = $obj_project->GetPrjCust($prj_id);
                        if (trim($project['contacts']) != '') {
                            $contacts_employer = unserialize($project['contacts']);
                            $empty_contacts_employer = 0;
                            foreach ($contacts_employer as $name => $contact) {
                                if (trim($contact['value']) == '') {
                                    $empty_contacts_employer++;
                                }
                            }
                            $is_contacts_employer_empty = count($contacts_employer) == $empty_contacts_employer;
                        }
                        $project_attach = $obj_project->GetAllAttach($prj_id);
                        ob_start();
                        require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.prj-main-info.php';
                        $html_data = ob_get_contents();
                        ob_end_clean();
                        $objResponse->assign("project_info_{$project['id']}", 'innerHTML', $html_data);
                        break;
                    default:
                        $objResponse->script('window.location.reload();');
                        break;
                }
            } else {
                $tab1 = 0;
                $tab2 = 0;
                foreach ($errors as $error) {
                    switch ($error) {
                        case 'end_date':
                            $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal1").set("html", "Неправильная дата");');
                            $objResponse->script('popupQEditPrjShowError("cal1");');
                            break;
                        case 'win_date':
                            $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal2").set("html", "Неправильная дата");');
                            $objResponse->script('popupQEditPrjShowError("cal2");');
                            break;
                        case 'end_date_past':
                            $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal1").set("html", "Дата окончания конкурса не может находиться  в прошлом");');
                            $objResponse->script('popupQEditPrjShowError("cal1");');
                            break;
                        case 'win_date_past':
                            $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal2").set("html", "Дата определения победителя должна быть больше даты окончания конкурса");');
                            $objResponse->script('popupQEditPrjShowError("cal2");');
                            break;
                        case 'logourl':
                            $objResponse->script('$("popup_qedit_prj_fld_err_pay").setStyle("display","block");');
                            $objResponse->script('$("popup_qedit_prj_fld_err_pay_txt").set("html", "Ссылка для логотипа указана не верно");');
                            break;
                        default:
                            $objResponse->script('popupQEditPrjShowError("' . $error . '");');
                            break;
                    }
                    if (in_array($error, array('name', 'descr', 'location', 'end_date', 'win_date', 'end_date_past', 'win_date_past'))) {
                        ++$tab1;
                    } elseif (in_array($error, array('logourl'))) {
                        ++$tab2;
                    }
                }
                if ($tab1) {
                    $objResponse->script('popupQEditPrjMenu(1)');
                } elseif ($tab2) {
                    $objResponse->script('popupQEditPrjMenu(2)');
                }
            }
        }
        $objResponse->script('popupQEditIsProcess = false;');
    }
    return $objResponse;
}
<?php

//including configuration
require_once '../../config/connection.php';
//including classes
include 'classes/coders_basic.php';
include 'classes/coders_rating.php';
include 'classes/contests.php';
include 'classes/hackerearth_api_connect.php';
include 'classes/hackerearth_data.php';
include 'classes/admin.php';
include 'classes/api_table.php';
//including functions
include 'functions/new_rating.php';
include 'functions/probability_function.php';
//declaring contest variables
$contest = new contest();
$contest_id = $_POST['contest_id'];
$contest_name = $_POST['contest_name'];
$contest_type = $_POST['contest_type'];
$contest_link = $_POST['contest_link'];
$contest_date = $_POST['contest_date'];
//add $_POST VALUES HERE AND CONTEST WILL BE UPDATED
$contest->add_contest($contest_id, $contest_name, $contest_type, $contest_date, $contest_link);
//calling the function
header('Location:../pages/updateDatabase.php');
Exemple #13
0
                }
                ?>
><strong><a href="javascript:void(0)" onClick="allCommentsTree(); return false;" id="allct">Свернуть все ветви комментариев</a> (<span id="co-all"><?php 
                echo (int) $all_msg_count;
                ?>
</span>)</strong></div>
<?php 
            }
            ?>
   
	<ul class="coments-list">
	
	<?php 
            foreach ($contest->offers as $offer) {
                if ($offer['user_id'] == get_uid(false) || $offer['user_id'] == $project["user_id"]) {
                    contest::markReadComments(get_uid(false));
                }
                if ($_GET['filter'] == 'candidates' && $offer['selected'] == 'f') {
                    continue;
                }
                $a_is_banned = ($offer['is_banned'] || $offer['usr_banned']) && hasPermissions('projects');
                if ($offer['user_id'] != $uid && $offer['is_deleted'] == 't' && !hasPermissions('projects')) {
                    continue;
                }
                ?>
	<li class="thread thread-offer <?php 
                echo $offer['is_deleted'] == 't' ? 'comment-deleted' : '';
                ?>
" id="offer-<?php 
                echo $offer['id'];
                ?>
<?php

//including configuration
require_once 'core/config.php';
//including classes
include 'classes/coders_basic.php';
include 'classes/coders_rating.php';
include 'classes/contests.php';
include 'classes/hackerearth_api_connect.php';
include 'classes/hackerearth_data.php';
include 'classes/admin.php';
include 'classes/api_table.php';
//including functions
include 'functions/new_rating.php';
include 'functions/probability_function.php';
//declaring contest variables
$contest = new contest();
$contest->is_table_present();
$coders = new coders();
$coders->is_table_present();
$rating = new rating();
$rating->is_table_present();
$admin = new admin();
$admin->is_table_present();
$api_table = new api_table();
$api_table->is_table_present();
Exemple #15
0
         if (trim($contact['value']) == '') {
             $empty_contacts_employer++;
         }
     }
     $is_contacts_employer_empty = count($contacts_employer) == $empty_contacts_employer;
 }
 if ($project['sbr_frl_id'] && $project['sbr_status'] >= sbr::STATUS_CHANGED) {
     $project['exec_id'] = $project['sbr_frl_id'];
 }
 if (hasPermissions('projects')) {
     $project_history = $obj_project->GetPrjHistory($prj_id);
 }
 // Новые конкурсы
 if ($project['kind'] == 7) {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/contest.php';
     $contest = new contest($project['id'], $uid, is_emp(), $project['user_id'] == $uid, hasPermissions('projects'), is_pro());
     $contest->GetOffers((string) $_GET['filter']);
     $project['contest_end'] = mktime() > strtotime($project['end_date']);
     $project['contest_win'] = mktime() > strtotime($project['win_date']);
     if ($_GET['offer-edit']) {
         $edit = $contest->GetOffer($_GET['offer-edit'], true);
     }
 }
 if ($project['pro_only'] == 't' && !$is_pro && !is_emp() && !hasPermissions('projects')) {
     if ($project['kind'] == 7) {
         if (contest::IsContestOfferExists($project['id'], get_uid(false))) {
             $is_pro = get_uid(false);
         }
     } else {
         if (projects_offers::IsPrjOfferExists($project['id'], get_uid(false))) {
             $is_verify = 1;
Exemple #16
0
    /**
     * Напоминание об окончании конкурса.
     *
     * @return string возможная ошибка
     */
    public function ContestEndReminder()
    {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/contest.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php';
        $users = contest::WInterval('1 day', 'end_date');
        if (!$this->Connect()) {
            return 'Невозможно соеденится с SMTP сервером';
        }
        foreach ($users as $prj_id => $u) {
            $project_name = htmlspecialchars($u['project_name'], ENT_QUOTES, 'CP1251', false);
            // Заказчик
            $user = new employer();
            $user->GetUserByUID($u['employer']);
            if ($user->email && substr($user->subscr, 8, 1) == '1') {
                $this->message = $this->GetHtml($user->uname, "\nСообщаем вам, что остается один день до окончания конкурса «<a href=\"{$GLOBALS['host']}" . getFriendlyURL('project', $prj_id) . $this->_addUrlParams('e') . '">' . $project_name . '</a>».
', array('header' => 'simple', 'footer' => 'sub_emp_projects'), array('login' => $user->login));
                $this->recipient = "{$user->uname} {$user->usurname} [{$user->login}] <" . $user->email . '>';
                $this->subject = 'Остался день до окончания конкурса «' . htmlspecialchars_decode($u['project_name'], ENT_QUOTES) . '»';
                $this->SmtpMail('text/html');
            }
            // фрилансеры
            foreach ($u['freelancer'] as $user) {
                if (!$user['email'] || substr($user['subscr'], 8, 1) != '1' || $user['is_banned'] == '1') {
                    continue;
                }
                $this->message = $this->GetHtml($user['uname'], "\nСообщаем вам, что остается один день до окончания конкурса «<a href=\"{$GLOBALS['host']}" . getFriendlyURL('project', $prj_id) . $this->_addUrlParams('f') . '">' . $project_name . "</a>».\n<br />\nВы можете перейти к своей <a href=\"{$GLOBALS['host']}" . getFriendlyURL('project', $prj_id) . "?offer={$user['offer_id']}{$this->_addUrlParams('f', '&')}#offer-{$user['offer_id']}\">работе</a>.\n<br />\n", array('header' => 'simple', 'footer' => 'default'), array('login' => $user['login']));
                $this->recipient = "{$user['uname']} {$user['usurname']} [{$user['login']}] <{$user['email']}>";
                $this->subject = 'Остался день до окончания конкурса «' . htmlspecialchars_decode($u['project_name'], ENT_QUOTES) . '»';
                $this->SmtpMail('text/html');
            }
        }
        return 0;
    }
Exemple #17
0
<script src="http://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<?php 
$state = null;
$country = country::voteable();
$imgs = [];
while ($country->found()) {
    $state = $country->state;
    $img = '/style/images/bg' . $country->id . '.jpg';
    if (file_exists(root . $img)) {
        $imgs[] = "'" . $img . "'";
    }
}
if (!isset($imgs[0])) {
    $imgs[0] = '/style/images/bg0.jpg';
}
$contest = contest::active();
$c = 0;
$color = ['whiterow', 'greyrow'];
?>
	<script type="text/javascript">

	  $(window).load(function() {          
	  var i = 1;
	  var images = [<?php 
echo implode(',', $imgs);
?>
];
	  var image = $('header');

	                //Initial Background image setup
	  //image.css('background-image', "url(<?php 
Exemple #18
0
 /**
  * Отсылает сообщения победителям конкурса
  *
  * @param string|array $ids ид предложений пользователей
  * @param resource $connect
  * @return  integer количество отправленных уведомлений.
  */
 function ContestWinners($ids, $connect = NULL)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/contest.php';
     if (!($data = contest::getWinnerOffers($ids, $connect))) {
         return NULL;
     }
     foreach ($data as $proj) {
         if (!$proj['email'] || substr($proj['subscr'], 8, 1) != '1' || $proj['is_banned'] == '1') {
             continue;
         }
         $str = array(1 => 'первое', 2 => 'второе', 3 => 'третье');
         $this->recipient = "{$proj['uname']} {$proj['usurname']} [{$proj['login']}] <{$proj['email']}>";
         $userlink = $GLOBALS["host"] . "/users/" . $proj['emp_login'];
         $this->subject = 'Вас объявили одним из победителей конкурса «' . htmlspecialchars_decode($proj['project_name'], ENT_QUOTES) . '»';
         $proj['project_name'] = htmlspecialchars($proj['project_name'], ENT_QUOTES, 'CP1251', false);
         $this->message = $this->GetHtml($proj['uname'], "Поздравляем вас!<br/><br/>\n                Заказчик <a href=\"{$userlink}\">{$proj['emp_name']}</a> <a href=\"{$userlink}\">{$proj['emp_uname']}</a> [<a href=\"{$userlink}\">{$proj['emp_login']}</a>] объявил(a) вас одним из победителей в&nbsp;конкурсе «<a href=\"{$GLOBALS['host']}" . getFriendlyURL("project", $proj['project_id']) . $this->_addUrlParams('f') . "\">" . $proj['project_name'] . "</a>». \n                Вы заняли " . ($str[$proj['position']] ? $str[$proj['position']] : $position) . " место. Поздравляем!\n                <br /><br/>\n                Вы можете перейти к своей <a href=\"{$GLOBALS['host']}" . getFriendlyURL("project", $proj['project_id']) . "?offer={$proj['id']}{$this->_addUrlParams('f', '&')}#offer-{$proj['id']}\">работе</a>.\n                <br />\n                ", array('header' => 'default', 'footer' => 'frl_subscr_projects'), array('login' => $proj['login']));
         $this->SmtpMail('text/html');
     }
     return $this->sended;
 }
/**
 * Отдает HTML для комментариев к работе в конкурсе
 * 
 * @param  object $objResponse xajaxResponse
 * @param  string $rec_id идентификатор записи
 * @param  string $rec_type тип записи
 * @param  array $aParams массив дополнительных параметров
 * @return string
 */
function _admEditContestComParseForm(&$objResponse, $rec_id = '', $rec_type = '', $aParams = array())
{
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/contest.php';
    $msg = contest::GetComment($rec_id);
    ob_start();
    include_once $_SERVER['DOCUMENT_ROOT'] . '/user/adm_edit_tpl/contest_commment.php';
    $sHtml = ob_get_contents();
    ob_end_clean();
    // текст
    $sOnReady = "if(\$('adm_edit_msg')) \$('adm_edit_msg').set('value', (\$('adm_edit_msg_source')? \$('adm_edit_msg_source').get('value') : null));";
    $objResponse->assign('h4_adm_edit', 'innerHTML', 'Редактировать комментарий');
    $objResponse->assign('div_adm_edit', 'innerHTML', $sHtml);
    $objResponse->script($sOnReady);
    $objResponse->script("\$('div_adm_reason').setStyle('display', '');");
    $objResponse->script('adm_edit_content.edit();');
    $objResponse->script('xajax_getAdmEditReasons(' . admin_log::ACT_ID_EDIT_CONTEST_COM . ');');
}
Exemple #20
0
<?php

/**
 * @application Automatical Judging System
 * @author deltamaster
 * @copyright Softrank Research Center
 * @version 2.0.0.0
 */
$contest = new contest();
$contestname = $contest->config['contestname'];
$starttime = ProcessTime($contest->config['starttime']);
$endtime = ProcessTime($contest->config['endtime']);
$started = $contest->started();
$ended = $contest->ended();
$timepassed = $contest->timepassed();
$totaltime = $contest->totaltime();
$introduction = $contest->config['introduction'];
$introduction_html = translate($contest->config['introduction']);