当前位置: 首页>>代码示例>>PHP>>正文


PHP projects::getProjectWithFeedback方法代码示例

本文整理汇总了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;
}
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:93,代码来源:projects_status.server.php


注:本文中的projects::getProjectWithFeedback方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。