Exemplo n.º 1
0
/**
 * Удаляет рекомендацию.
 *
 * @param type $stage_id
 * @param type $feedback_id
 * @param type $deleteOpinion удалить мнение
 * @param type $reloadPage    перезагрузить страницу
 *
 * @return \xajaxResponse
 */
function DeleteFeedback($stage_id, $feedback_id, $reloadPage = false)
{
    session_start();
    $objResponse = new xajaxResponse();
    $stage_id = intval($stage_id);
    $feedback_id = intval($feedback_id);
    $uid = get_uid(false);
    if (!hasPermissions('sbr')) {
        return;
    }
    $feedback = sbr_meta::getFeedback($feedback_id);
    if (!$feedback) {
        return;
    }
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
    $user = new users();
    $user->GetUserByUID($uid);
    if (!$user->uid) {
        $err = 'Ошибка';
    }
    $sbr = sbr_meta::getInstance(sbr_meta::ADMIN_ACCESS, $user, is_emp($user->role));
    if (!$sbr) {
        return;
    }
    $stage = $sbr->getStage($stage_id);
    if (!$stage) {
        return;
    }
    //$res = sbr_meta::deleteFeedback($feedback_id);
    $res = sbr_meta::setDeletedFeedback($feedback_id);
    if (!$res) {
        return;
    }
    $ot = $feedback['rating'] == 0 ? 'neitral' : ($feedback['rating'] == 1 ? 'plus' : 'minus');
    $objResponse->call('opinionChConuters', 'ops-norisk' . $ot);
    $objResponse->script("\$('cont_{$feedback_id}').getParent('div.ops-one').dispose();");
    $objResponse->script("if(\$\$('.page-ops div.ops-one').length == 0) \$('no_messages').show();");
    if ($reloadPage) {
        $objResponse->script('window.location.reload()');
    }
    return $objResponse;
}
Exemplo n.º 2
0
 /**
  * Взять информацию по отзыву
  *
  * @param integer $feedback_id   ид. отзыва
  * @return array
  */
 function getFeedback($feedback_id)
 {
     return parent::getFeedback($feedback_id);
 }
Exemplo n.º 3
0
 /**
  * Добавление комментария к отзыву
  *
  * @param  string  $comment     текст комментария
  * @param  integer $user_id     id пользователя, который осавил комментарий
  * @param  integer $opinion_id  id комментария
  *
  * @return string               текст ошибки в случае неуспеха
  */
 function newCommentFeedback($comment, $user_id, $feedback_id)
 {
     /*if (self::isComOpinion($opinion_id) > 0)
       return false;*/
     global $DB;
     $data = compact('feedback_id', 'user_id', 'comment');
     //#0024860
     $row = $DB->row("SELECT s.frl_id, s.emp_id \n                         FROM sbr_stages AS ss \n                         LEFT JOIN sbr AS s ON ss.sbr_id = s.id\n                         WHERE ss.emp_feedback_id = ? OR ss.frl_feedback_id = ?;", $data['feedback_id'], $data['feedback_id']);
     if ($user_id != $row['frl_id'] && $user_id != $row['emp_id']) {
         return false;
     }
     $DB->insert('sbr_feedbacks_comments', $data);
     if (!$DB->error) {
         $feedback = sbr_meta::getFeedback($feedback_id, true);
         $fromuser_id = $feedback['fromuser_id'];
         //$fromuser_id = $DB->val( 'SELECT fromuser_id FROM opinions WHERE id = ?', $opinion_id );
         require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/smail.php";
         $smail = new smail();
         $smail->SendCommentFeedback($fromuser_id, $user_id);
     }
     return $DB->error;
 }
Exemplo n.º 4
0
 /**
  * Уведомление одному из участников СБР о том что другой оставил ему отзыв.
  * @param array $events   информация по событиям (если событий нескольлко, то содержит несколько элементов).
  */
 function SbrFeedback($events)
 {
     $ev0 = $events[0];
     $url = $GLOBALS['host'] . '/' . sbr::NEW_TEMPLATE_SBR . '/';
     // Если оставляет мнение исполнитель, этап считается завершенным отправляем уведомление
     if ($ev0['abbr'] == 'FRL_FEEDBACK') {
         $this->SbrStageCompleted($events);
     }
     $this->subject = "Вам оставили отзыв по Безопасной Сделке (проект «{$ev0['sbr_name']}»)";
     $stage_name = sbr_meta::getNameForMail($ev0);
     if ($ev0['own_role'] == sbr::EVROLE_FRL && $ev0['frl_feedback_id']) {
         $r = 'e_';
         $userlink = $GLOBALS["host"] . "/users/" . $ev0['f_login'];
         $feedback = sbr_meta::getFeedback($ev0['frl_feedback_id']);
         $uniq_id = $feedback['id'] * 2 + 1;
         $link_feedback = "{$GLOBALS["host"]}/users/{$ev0['e_login']}/opinions/#p_{$uniq_id}";
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr.php';
         $sbr = sbr_meta::getInstanceLocal($ev0['e_uid']);
         $stage = $sbr->initFromStage($ev0['stage_id']);
         if ($stage->status == sbr_stages::STATUS_ARBITRAGED) {
             $msg = "Информируем вас о том, что Исполнитель <a href='{$userlink}'>{$ev0['f_uname']} {$ev0['f_usurname']}</a> [<a href='{$userlink}'>{$ev0['f_login']}</a>] оставил вам <a href='{$link_feedback}'>отзыв</a> по Сделке «<a href='{$url}?site=Stage&id={$ev0['stage_id']}{$this->_addUrlParams($r == 'e_' ? 'e' : 'f', '&')}'>{$stage_name}</a>»:<br/></br>";
         } else {
             $msg = "Исполнитель <a href='{$userlink}'>{$ev0['f_uname']} {$ev0['f_usurname']}</a> [<a href='{$userlink}'>{$ev0['f_login']}</a>] завершил Сделку «<a href='{$url}?site=Stage&id={$ev0['stage_id']}{$this->_addUrlParams($r == 'e_' ? 'e' : 'f', '&')}'>{$stage_name}</a>» со своей стороны и оставил вам <a href='{$link_feedback}'>отзыв</a>:<br/></br>";
         }
     } else {
         if ($ev0['emp_feedback_id']) {
             $r = 'f_';
             $userlink = $GLOBALS["host"] . "/users/" . $ev0['e_login'];
             $feedback = sbr_meta::getFeedback($ev0['emp_feedback_id']);
             $uniq_id = $feedback['id'] * 2 + 1;
             $link_feedback = "{$GLOBALS["host"]}/users/{$ev0['f_login']}/opinions/#p_{$uniq_id}";
             $msg = "Заказчик <a href='{$userlink}'>{$ev0['e_uname']} {$ev0['e_usurname']}</a> [<a href='{$userlink}'>{$ev0['e_login']}</a>] завершил Сделку «<a href='{$url}?site=Stage&id={$ev0['stage_id']}{$this->_addUrlParams($r == 'e_' ? 'e' : 'f', '&')}'>{$stage_name}</a>» со своей стороны и оставил вам <a href='{$link_feedback}'>отзыв</a>:<br/><br/>";
             //$msg = "Сообщаем вам о том, что работодатель <a href=\"{$userlink}\">{$ev0['e_uname']}</a> <a href=\"{$userlink}\">{$ev0['e_usurname']}</a> [<a href=\"{$userlink}\">{$ev0['e_login']}</a>]";
         }
     }
     $sbr_link = "задаче «<a href='{$url}?site=Stage&id={$ev0['own_id']}{$this->_addUrlParams($r == 'e_' ? 'e' : 'f', '&')}'>{$stage_name}</a>» (проект «<a href='{$url}?id={$ev0['sbr_id']}{$this->_addUrlParams($r == 'e_' ? 'e' : 'f', '&')}'>{$ev0['sbr_name']}</a>»)";
     if (!$feedback) {
         return;
     }
     $opi_path = $GLOBALS['host'] . '/users/' . $ev0[$r . 'login'] . '/opinions/?from=norisk';
     $msg .= "«{$feedback['descr']}».";
     //$msg .= " оставил(-a) вам рекомендацию по «Сделке без риска» в {$sbr_link}:<br/><br/>---<br/>«{$feedback['descr']}»<br/>---<br/>";
     //$msg .= "<br/>Вы можете просмотреть рекомендацию на вкладке <a href='{$opi_path}{$this->_addUrlParams($r == 'e_' ? 'e' : 'f', '&')}'>«Отзывы»</a> в вашем аккаунте.";
     //if($ev0['emp_feedback_id']) {
     //    $msg .= "<br/><br/>Напоминаем, что вы можете воспользоваться услугой «Рекомендация» - <a href='{$GLOBALS['host']}/service/{$this->_addUrlParams($r == 'e_' ? 'e' : 'f')}'>приобрести рекомендации</a> от работодателей по сервису «Сделка без риска».";
     //}
     $this->message = $this->splitMessage($this->GetHtml($ev0[$r . 'uname'], $msg, array('header' => 'simple', 'footer' => 'norisk_robot')));
     $this->recipient = $ev0[$r . 'uname'] . " " . $ev0[$r . 'usurname'] . " [" . $ev0[$r . 'login'] . "] <" . $ev0[$r . 'email'] . ">";
     $this->SmtpMail('text/html');
 }
Exemplo n.º 5
0
/**
 * удаляет комментарий к мнению, отзыву.
 *
 * @param type $op_id
 * @param type $comm_id
 * @param type $from
 * @param type $isFeedback если true - это отзыв
 *
 * @return \xajaxResponse
 */
function DeleteOpinionComm($op_id, $comm_id, $from = 'frl', $isFeedback = false)
{
    @session_start();
    $objResponse = new xajaxResponse();
    if ($isFeedback) {
        $msg = sbr_meta::getFeedback($op_id, true);
    } else {
        $msg = opinions::GetMessageById($op_id);
    }
    if (get_uid(0) == $msg['touser_id'] || hasPermissions('users')) {
        $error = opinions::deleteComment($comm_id, get_uid(false), hasPermissions('users'), $isFeedback);
    } else {
        $error = 'Вы не можете удалить комментарий.';
    }
    $prefix = $isFeedback ? 'feedback_' : '';
    if (!$error) {
        $objResponse->script("\$('{$prefix}opinion_btn_add_comment_{$op_id}').setStyle('display', ''); \n                              \$('{$prefix}opinion_btn_add_comment_{$op_id}').setProperty('disabled', '');\n                              \$('{$prefix}opinion_btn_edit_comment_{$op_id}').setProperty('disabled', '');\n                              \$('{$prefix}comment_content_{$op_id}').dispose();");
    } else {
        $objResponse->script("alert('{$error}')");
    }
    return $objResponse;
}