本文整理匯總了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;
}