/** * Удаляет рекомендацию. * * @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; }
/** * Взять информацию по отзыву * * @param integer $feedback_id ид. отзыва * @return array */ function getFeedback($feedback_id) { return parent::getFeedback($feedback_id); }
/** * Добавление комментария к отзыву * * @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; }
/** * Уведомление одному из участников СБР о том что другой оставил ему отзыв. * @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'); }
/** * удаляет комментарий к мнению, отзыву. * * @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; }