%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/bitrix/modules/controller/classes/mysql/
Upload File :
Create Path :
Current File : //home/bitrix/www/bitrix/modules/controller/classes/mysql/controllermember.php

<?php
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/controller/classes/general/controllermember.php");

class CControllerMember extends CAllControllerMember
{
	public static function _CheckCommandId($member_guid, $command_id)
	{
		global $DB;

		$strSql = "
			SELECT C.ID, C.COMMAND, M.SECRET_ID, C.ADD_PARAMS
			FROM
				b_controller_command C
				INNER JOIN b_controller_member M ON C.MEMBER_ID = M.MEMBER_ID
			WHERE
				C.MEMBER_ID = '".$DB->ForSQL($member_guid, 32)."'
				AND C.COMMAND_ID = '".$DB->ForSQL($command_id, 32)."'
				AND C.DATE_EXEC IS NULL
				AND C.DATE_INSERT > DATE_ADD(now(), INTERVAL -1 MINUTE)
		";

		$dbr = $DB->Query($strSql);
		$ar = $dbr->Fetch();
		if (!$ar)
			return false;

		$strSql = "UPDATE b_controller_command SET DATE_EXEC=".$DB->CurrentTimeFunction()." WHERE ID=".$ar["ID"];
		$DB->Query($strSql);

		return $ar;
	}

	public static function UnregisterExpiredAgent($id = false)
	{
		global $DB;
		$handledMembers = array();

		if ($id > 0)
			$strAddWhere = 'AND M.ID = '.intval($id);
		else
			$strAddWhere = '';

		$strSql = "
			SELECT M.ID
			FROM b_controller_member M
			INNER JOIN b_controller_group G ON M.CONTROLLER_GROUP_ID = G.ID
			WHERE
				G.TRIAL_PERIOD > 0
				AND TO_DAYS(now()) - TO_DAYS(M.IN_GROUP_FROM) >= G.TRIAL_PERIOD
				AND SITE_ACTIVE = 'Y'
				AND DISCONNECTED = 'N'
				".$strAddWhere."
		";

		$dbr = $DB->Query($strSql);
		while ($ar = $dbr->Fetch())
		{
			if ($id > 0)
			{
				CControllerMember::CloseMember($id, true);
				return true;
			}
			elseif (!isset($handledMembers[$ar["ID"]]))
			{
				$handledMembers[$ar["ID"]] = $ar["ID"];
				CControllerTask::Add(array(
					"TASK_ID" => "CLOSE_MEMBER",
					"CONTROLLER_MEMBER_ID" => $ar["ID"],
					"INIT_EXECUTE_PARAMS" => true,
				));
			}
		}

		$strSql = "
			SELECT M.ID
			FROM b_controller_member M
			WHERE
				(DATE_ACTIVE_FROM IS NULL OR DATE_ACTIVE_FROM <= ".$DB->CurrentTimeFunction().")
				AND (DATE_ACTIVE_TO IS NULL OR DATE_ACTIVE_TO >= ".$DB->CurrentTimeFunction().")
				AND ACTIVE = 'Y'
				AND SITE_ACTIVE <> 'Y'
				AND DISCONNECTED = 'N'
				".$strAddWhere."
		";

		$dbr = $DB->Query($strSql);
		while ($ar = $dbr->Fetch())
		{
			if ($id > 0)
			{
				CControllerMember::CloseMember($id, false);
				return true;
			}
			elseif (!isset($handledMembers[$ar["ID"]]))
			{
				$handledMembers[$ar["ID"]] = $ar["ID"];
				CControllerTask::Add(array(
					"TASK_ID" => "CLOSE_MEMBER",
					"CONTROLLER_MEMBER_ID" => $ar["ID"],
					"INIT_EXECUTE_PARAMS" => false,
				));
			}
		}

		$strSql = "
			SELECT M.ID
			FROM b_controller_member M
			WHERE
				(
					DATE_ACTIVE_FROM > ".$DB->CurrentTimeFunction()."
					OR DATE_ACTIVE_TO < ".$DB->CurrentTimeFunction()."
					OR ACTIVE = 'N'
				)
				AND SITE_ACTIVE = 'Y'
				AND DISCONNECTED = 'N'
				".$strAddWhere."
		";

		$dbr = $DB->Query($strSql);
		while ($ar = $dbr->Fetch())
		{
			if ($id > 0)
			{
				CControllerMember::CloseMember($id, true);
				return true;
			}
			elseif (!isset($handledMembers[$ar["ID"]]))
			{
				$handledMembers[$ar["ID"]] = $ar["ID"];
				CControllerTask::Add(array(
					"TASK_ID" => "CLOSE_MEMBER",
					"CONTROLLER_MEMBER_ID" => $ar["ID"],
					"INIT_EXECUTE_PARAMS" => true,
				));
			}
		}

		if ($id > 0)
			return true;

		return "CControllerMember::UnregisterExpiredAgent();";
	}
}

Zerion Mini Shell 1.0