本文整理汇总了PHP中projects::isExec方法的典型用法代码示例。如果您正苦于以下问题:PHP projects::isExec方法的具体用法?PHP projects::isExec怎么用?PHP projects::isExec使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类projects
的用法示例。
在下文中一共展示了projects::isExec方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: isAllowed
/**
* Проверка возможности отправить сообщение ползователю.
*
* @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;
}