本文整理汇总了PHP中projects::getProjectWithFeedback方法的典型用法代码示例。如果您正苦于以下问题:PHP projects::getProjectWithFeedback方法的具体用法?PHP projects::getProjectWithFeedback怎么用?PHP projects::getProjectWithFeedback使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类projects
的用法示例。
在下文中一共展示了projects::getProjectWithFeedback方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: changeProjectStatus
/**
* Смена статуса проекта.
*
* @param array $params
*
* @return \xajaxResponse
*/
function changeProjectStatus($params)
{
$objResponse =& new xajaxResponse();
$uid = get_uid(false);
$project_id = intval(@$params['project_id']);
$status = @$params['status'];
$feedback = @$params['feedback'];
$rating = @$params['rating'];
$hash = @$params['hash'];
unset($params['hash'], $params['u_token_key'], $params['feedback'], $params['rating']);
$current_hash = projects_helper::getStatusHash($params);
if (!($uid > 0) || $hash !== $current_hash) {
return $objResponse;
}
// Проект.
$obj_project = new projects();
//$project = $obj_project->GetPrjCust($project_id);
//Сделал отдельный метод получающий только то что нам нужно
//лучше так делать а то далеко не всегда существующие методы оптимальны
//в них выбирается много лишнего
$project = $obj_project->getProjectWithFeedback($project_id);
if (!$project || !in_array($project['kind'], array(1, 5, 9))) {
return $objResponse;
}
$is_project_owner = $project['user_id'] == $uid;
$is_exec = $project['exec_id'] == $uid;
if (!($is_project_owner || $is_exec)) {
return $objResponse;
}
//Сохраним текущий статус
$old_status = $project['status'];
$is_emp = is_emp();
$attr = array('is_emp' => $is_emp, 'project' => $project);
$offer = array();
if ($project['exec_id']) {
$obj_offer = new projects_offers();
$offer = $obj_offer->GetPrjOffer($project['id'], $project['exec_id']);
if (!$offer) {
return $objResponse;
}
$attr['offer'] = $offer;
}
$projectsStatus = new projects_status();
$projectsStatus->attributes($attr);
$projectsStatus->changeStatus($status);
$project = $projectsStatus->getProject();
$offer = $projectsStatus->getOffer();
if ($project['status'] > projects_status::STATUS_ACCEPT && !empty($feedback)) {
//Время вышло
if (!projects_feedback::isAllowFeedback($project['close_date'])) {
return $objResponse;
}
//Если отзыв от работодателя и положительный то в зависимости от статуса ПРО фрилансера отзыв скрывается либо публикуется
//Если отзыв от фрилансера то всегда публикуется
$is_show = $is_emp && $rating > 0 ? $offer['is_pro'] == 't' : true;
$obj_feedback = new projects_feedback();
$is_valid = $obj_feedback->attributes(array('feedback' => $feedback, 'rating' => $rating, 'is_emp' => $is_emp, 'user_id' => $uid, 'show' => $is_show, 'touser_id' => $is_emp ? $project['exec_id'] : $project['user_id']));
if (!$is_valid || !$obj_feedback->addFeedback($project_id)) {
return $objResponse;
}
$prefix = $is_emp ? 'emp' : 'frl';
$attributes = $obj_feedback->attributes();
$project[$prefix . '_feedback'] = $attributes['feedback'];
$project[$prefix . '_rating'] = $attributes['rating'];
}
if ($project['status'] > projects_status::STATUS_ACCEPT) {
// Отправляем письма об отзывах
$mes = new projects_smail();
if ($old_status != $project['status']) {
//была смена статуса на закрытие
$mes->onFinish($project, $is_emp);
} else {
$mes->onFeedback($project, $is_emp);
}
}
if ($project['status'] == projects_status::STATUS_EMPCLOSE) {
//$objResponse->remove('project_public_agane')->remove('project_edit');
$objResponse->script("\$\$('.__project_close_hide').destroy();");
}
$sHtml = projects_helper::renderStatus($project, $offer);
$objResponse->assign('project_status_' . $project_id, 'innerHTML', $sHtml);
if ($project['kind'] == 9 && $offer['status'] == projects_status::STATUS_DECLINE) {
$objResponse->script('window.location.reload()');
}
return $objResponse;
}