/** @return \CDBResult */
 public function getData()
 {
     $formId = $this->getFieldValue('FORM', null);
     $propertyNameId = $this->getFieldValue('PROPERTY_NAME', null);
     $propertyEmailId = $this->getFieldValue('PROPERTY_EMAIL', null);
     $formResultsDb = new \CDBResult();
     if ($formId && $propertyEmailId) {
         $dataResult = array();
         $filter = array();
         $formResultDb = \CFormResult::GetList($formId, $by = "s_timestamp", $order = "asc", $filter, $filtered, "N");
         while ($formResult = $formResultDb->Fetch()) {
             $answerList = \CFormResult::GetDataByID($formResult['ID'], array(), $formResult, $answerList2);
             $data = array();
             foreach ($answerList as $fieldCode => $arFieldsAnswer) {
                 if ($arFieldsAnswer[0]['TITLE_TYPE'] == 'text') {
                     if ($arFieldsAnswer[0]['FIELD_ID'] == $propertyNameId) {
                         $data['NAME'] = $arFieldsAnswer[0]['USER_TEXT'];
                     }
                     if ($arFieldsAnswer[0]['FIELD_ID'] == $propertyEmailId) {
                         $data['EMAIL'] = $arFieldsAnswer[0]['USER_TEXT'];
                     }
                 }
             }
             if (!empty($data['EMAIL'])) {
                 if (intval($formResult['USER_ID']) > 0) {
                     $data['USER_ID'] = intval($formResult['USER_ID']);
                 }
                 $dataResult[] = $data;
             }
         }
         $formResultsDb->InitFromArray($dataResult);
     }
     return $formResultsDb;
 }
 /** @return \CDBResult */
 public function getData()
 {
     $iblockId = $this->getFieldValue('IBLOCK', null);
     $propertyNameId = $this->getFieldValue('PROPERTY_NAME', null);
     $propertyEmailId = $this->getFieldValue('PROPERTY_EMAIL', null);
     if ($iblockId && $propertyEmailId) {
         // if property is property with code like '123'
         $propertyNameValue = null;
         $propertyEmailValue = null;
         if (is_numeric($propertyEmailId)) {
             $propertyEmailId = "PROPERTY_" . $propertyEmailId;
             $propertyEmailValue = $propertyEmailId . "_VALUE";
         }
         $selectFields = array($propertyEmailValue);
         if ($propertyNameId) {
             if (is_numeric($propertyNameId)) {
                 $propertyNameId = "PROPERTY_" . $propertyNameId;
                 $propertyNameValue = $propertyNameId . "_VALUE";
             }
             $selectFields[] = $propertyNameValue;
         }
         $filter = array('IBLOCK_ID' => $iblockId, '!' . $propertyEmailId => false);
         $iblockElementListDb = \CIBlockElement::getList(array('id' => 'asc'), $filter, false, false, $selectFields);
         // replace property names from PROPERTY_123_VALUE to EMAIL, NAME
         $iblockElementDb = new CDBResultSenderConnector($iblockElementListDb);
         $iblockElementDb->senderConnectorFieldEmail = $propertyEmailValue;
         $iblockElementDb->senderConnectorFieldName = $propertyNameValue;
     } else {
         $iblockElementDb = new \CDBResult();
         $iblockElementDb->InitFromArray(array());
     }
     return $iblockElementDb;
 }
Beispiel #3
0
	public static function GetAdvGuestHost($ADV_ID, $GUEST_ID, $IP_NUMBER, $BACK="")
	{
		$err_mess = "File: ".__FILE__."<br>Line: ";
		$DB = CDatabase::GetModuleConnection('statistic');
		$ADV_ID = intval($ADV_ID);
		$GID = intval($GUEST_ID);

		$strSql = "
			SELECT
				count(1) ADV_HOSTS,
				".$DB->DateToCharFunction("max(DATE_HOST_HIT)","SHORT")." MAX_DATE_HOST_HIT
			FROM	b_stat_adv_guest
			WHERE	ADV_ID=$ADV_ID and IP_NUMBER='".$DB->ForSQL($IP_NUMBER)."'
			$BACK
		";
		$rsResult=$DB->Query($strSql, false, $err_mess.__LINE__);
		if(!($arHost = $rsResult->Fetch()))
			$arHost = array("ADV_HOSTS"=>0,"MAX_DATE_HOST_HIT"=>false);

		$strSql = "
			SELECT
				count(1) ADV_GUESTS,
				".$DB->DateToCharFunction("max(DATE_GUEST_HIT)","SHORT")." MAX_DATE_GUEST_HIT
			FROM	b_stat_adv_guest
			WHERE	ADV_ID=$ADV_ID and GUEST_ID=$GID
			$BACK
		";
		$rsResult=$DB->Query($strSql, false, $err_mess.__LINE__);
		if(!($arGuest = $rsResult->Fetch()))
			$arGuest = array("ADV_GUESTS"=>0,"MAX_DATE_GUEST_HIT"=>false);

		$rsResult = new CDBResult;
		$rsResult->InitFromArray(array(array_merge($arGuest,$arHost)));
		return $rsResult;
	}
Beispiel #4
0
	public static function GetLastByID($ID)
	{
		$DB = CDatabase::GetModuleConnection('statistic');
		$ID = intval($ID);
		if($ID>0)
		{
			$strSql = "
				SELECT
					G.ID,
					G.FAVORITES,
					G.LAST_USER_ID,
					A.ID as LAST_ADV_ID,
					if(to_days(curdate())=to_days(G.LAST_DATE), 'Y', 'N') LAST
				FROM b_stat_guest G
				LEFT JOIN b_stat_adv A ON A.ID = G.LAST_ADV_ID
				WHERE G.ID='$ID'
				";
			$res = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
		}
		else
		{
			$res = new CDBResult;
			$res->InitFromArray(array());
		}
		return $res;
	}
 /** @return \CDBResult */
 public function getData()
 {
     $groupId = $this->getFieldValue('GROUP_ID', null);
     $dateRegister = $this->getFieldValue('DATE_REGISTER', null);
     $active = $this->getFieldValue('ACTIVE', null);
     $filter = array();
     if ($groupId) {
         $filter['GROUP_ID'] = $groupId;
     }
     if (strlen($dateRegister) > 0) {
         if (\Bitrix\Main\Type\Date::isCorrect($dateRegister)) {
             $dateRegister = new \Bitrix\Main\Type\Date($dateRegister);
             $filter['><USER.DATE_REGISTER'] = array($dateRegister->toString(), $dateRegister->add('1 DAY')->toString());
         } else {
             $result = new \CDBResult();
             $result->InitFromArray(array());
             return $result;
         }
     }
     if ($active == 'Y') {
         $filter['USER.ACTIVE'] = $active;
     } elseif ($active == 'N') {
         $filter['USER.ACTIVE'] = $active;
     }
     $userDb = \Bitrix\Main\UserGroupTable::getList(array('select' => array('NAME' => 'USER.NAME', 'EMAIL' => 'USER.EMAIL', 'USER_ID'), 'filter' => $filter, 'group' => array('NAME', 'EMAIL', 'USER_ID'), 'order' => array('USER_ID' => 'ASC')));
     return new \CDBResult($userDb);
 }
Beispiel #6
0
	public static function GetDropDown($type="C", $siteID=false, $sla_id=false)
	{
		$err_mess = (CAllTicketDictionary::err_mess())."<br>Function: GetDropDown<br>Line: ";
		global $DB;
		if ($siteID==false || $siteID=="all")
		{
			$siteID = "";
		}
		$arFilter = array("TYPE" => $type, "SITE" => $siteID);
		$v2 = $v3 = null;
		$rs = CTicketDictionary::GetList(($v1="s_dropdown"), $v2, $arFilter, $v3);
		
		$oldFunctionality = COption::GetOptionString( "support", "SUPPORT_OLD_FUNCTIONALITY", "Y" );
		if( intval( $sla_id ) <= 0 || $oldFunctionality != "Y" || ( $type != "C" && $type!="K" && $type!="M" ) ) return $rs;
		
		switch($type)
		{
			case "C": $strSql = "SELECT CATEGORY_ID as DID FROM b_ticket_sla_2_category WHERE SLA_ID=" . intval( $sla_id ); break;
			case "K": $strSql = "SELECT CRITICALITY_ID as DID FROM b_ticket_sla_2_criticality WHERE SLA_ID=" . intval( $sla_id ); break;
			case "M": $strSql = "SELECT MARK_ID as DID FROM b_ticket_sla_2_mark WHERE SLA_ID=" . intval( $sla_id ); break;
		}
		$r = $DB->Query( $strSql, false, $err_mess . __LINE__ );
		while( $a = $r->Fetch() ) $arDID[] = $a["DID"];
		$arRecords = array();
		while( $ar = $rs->Fetch() ) if( is_array( $arDID ) && ( in_array( $ar["ID"], $arDID ) || in_array( 0,$arDID ) ) ) $arRecords[] = $ar;
		
		$rs = new CDBResult;
		$rs->InitFromArray($arRecords);
		
		return $rs;
	}
 public static function GetList($arOrder = array('CREATED_DATE' => 'DESC'), $arFilter = array(), $arSelect = array(), $nPageTop = false)
 {
     // Fix for #27449
     if (!CModule::IncludeModule('calendar')) {
         $obRes = new CDBResult();
         $obRes->InitFromArray(array());
         return $obRes;
     }
     global $USER;
     $ENTITY_ID = 'CALENDAR_EVENT';
     $arElement = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields($ENTITY_ID, 0, LANGUAGE_ID);
     if ($arElement == false || !isset($arElement['UF_CRM_CAL_EVENT'])) {
         $arFields = array();
         $arFields['ENTITY_ID'] = $ENTITY_ID;
         $arFields['FIELD_NAME'] = 'UF_CRM_CAL_EVENT';
         $arFields['USER_TYPE_ID'] = 'crm';
         $arFields['EDIT_FORM_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['LIST_COLUMN_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['LIST_FILTER_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['SETTINGS']['LEAD'] = 'Y';
         $arFields['SETTINGS']['CONTACT'] = 'Y';
         $arFields['SETTINGS']['COMPANY'] = 'Y';
         $arFields['SETTINGS']['DEAL'] = 'Y';
         $arFields['MULTIPLE'] = 'Y';
         $CAllUserTypeEntity = new CUserTypeEntity();
         $CAllUserTypeEntity->Add($arFields);
     }
     if (isset($arFilter['ENTITY_TYPE']) && isset($arFilter['ENTITY_ID'])) {
         $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']);
         $arFilter['UF_CRM_CAL_EVENT'] = $arFilter['ENTITY_TYPE'] . '_' . $arFilter['ENTITY_ID'];
         unset($arFilter['ENTITY_TYPE'], $arFilter['ENTITY_ID']);
     } else {
         if (!empty($arFilter['ENTITY_TYPE'])) {
             $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']);
             $arFilter['%UF_CRM_CAL_EVENT'] = $arFilter['ENTITY_TYPE'] . '_';
             unset($arFilter['ENTITY_TYPE']);
         } else {
             $arFilter['!=UF_CRM_CAL_EVENT'] = '';
         }
     }
     $arFilter['CAL_TYPE'] = 'user';
     $arFilter['DELETED'] = 'N';
     if (isset($arFilter['OWNER_ID']) && is_array($arFilter['OWNER_ID'])) {
         $arFilter['OWNER_ID'] = current($arFilter['OWNER_ID']);
     }
     $arCal = CCalendarEvent::GetList(array('arFilter' => $arFilter, 'parseRecursion' => false, 'userId' => $USER->GetID(), 'fetchAttendees' => false, 'fetchMeetings' => true));
     $obRes = new CDBResult();
     $obRes->InitFromArray($arCal);
     return $obRes;
 }
Beispiel #8
0
 /**
  * @param $by
  * @param $order
  * @param $arFilter
  *
  * @return CDBResult
  *
  * пока не знаю для чего эта функция, но может пригодиться
  */
 function GetList($by, $order, $arFilter)
 {
     global $DB;
     $query = $DB->Query('SELECT "NAME, CHANGED" FROM p_parser_res_list');
     while ($res = $query->Fetch()) {
         $elem['ID'] = $res['ID'];
         $elem['NAME'] = $res['NAME'];
         $elem['ACTIVE'] = $res['ACTIVE'];
         $elem['DATE_ACTIVE_FROM'] = $res['DATE_ACTIVE_FROM'];
         $elem['DATE_ACTIVE_TO'] = $res['DATE_ACTIVE_TO'];
         $arResult[] = $elem;
     }
     $result = new CDBResult();
     $result->InitFromArray($arResult);
     return $result;
 }
Beispiel #9
0
 public static function GetByID($ID, $bFull = false)
 {
     global $DB;
     if ($res = self::_GetWhere($ID)) {
         $res = $DB->Query('SELECT * FROM b_intranet_sharepoint WHERE ' . $res);
         if ($bFull) {
             if ($arRes = $res->Fetch()) {
                 $res = $DB->Query('SELECT * FROM b_intranet_sharepoint_field WHERE IBLOCK_ID=\'' . $arRes['IBLOCK_ID'] . '\'');
                 $arRes['FIELDS'] = array();
                 while ($arField = $res->Fetch()) {
                     $arRes['FIELDS'][] = $arField;
                 }
                 $res = new CDBResult();
                 $res->InitFromArray(array($arRes));
             }
         }
     } else {
         $res = new CDBResult();
     }
     return $res;
 }
 public static function GetList($arFilter = array(), $arGroupBy = false, $arSelectFields = array())
 {
     $params = array();
     if (is_array($arFilter) && !empty($arFilter)) {
         if (isset($arFilter["DELIVERY_ID"]) || $arFilter["DELIVERY_PROFILE_ID"]) {
             $ids = self::convertDeliveryIds(isset($arFilter["DELIVERY_ID"]) ? $arFilter["DELIVERY_ID"] : array(), isset($arFilter["DELIVERY_PROFILE_ID"]) ? $arFilter["DELIVERY_PROFILE_ID"] : array());
             if (!empty($ids)) {
                 $arFilter["=DELIVERY_ID"] = $ids;
             }
             unset($arFilter["DELIVERY_ID"]);
             unset($arFilter["DELIVERY_PROFILE_ID"]);
         }
         if (isset($arFilter["PAYSYSTEM_ID"])) {
             $arFilter["=PAYSYSTEM_ID"] = $arFilter["PAYSYSTEM_ID"];
             unset($arFilter["PAYSYSTEM_ID"]);
         }
         $params['filter'] = $arFilter;
     }
     //todo:
     if (is_array($arGroupBy) && !empty($arGroupBy)) {
         $params['group'] = array_intersect($arGroupBy, array("DELIVERY_ID", "PAYSYSTEM_ID"));
     }
     $params["select"] = array("DELIVERY_ID", "PAYSYSTEM_ID", "DELIVERY_SERVICE_CODE" => "DELIVERY_SERVICE.CODE");
     $params["runtime"] = array(new \Bitrix\Main\Entity\ReferenceField('DELIVERY_SERVICE', 'Bitrix\\Sale\\Delivery\\Services\\Table', array('=this.DELIVERY_ID' => 'ref.ID')));
     $records = array();
     $res = DeliveryPaySystemTable::getList($params);
     while ($record = $res->fetch()) {
         $delivery = CSaleDeliveryHelper::getDeliverySIDAndProfile($record["DELIVERY_SERVICE_CODE"]);
         $record["DELIVERY_ID"] = $delivery["SID"];
         $record["DELIVERY_PROFILE_ID"] = isset($delivery["PROFILE"]) ? $delivery["PROFILE"] : null;
         unset($record["DELIVERY_SERVICE_CODE"]);
         $records[] = $record;
     }
     $result = new \CDBResult();
     $result->InitFromArray($records);
     return $result;
 }
Beispiel #11
0
 protected function getMixedList($arOrder = array("SORT" => "ASC"), $arFilter = array(), $bIncCnt = false, $arSelectedFields = false)
 {
     $arResult = array();
     $notFound = false;
     if (is_array($arFilter["S_ID"]) && sizeof($arFilter["S_ID"]) == 1) {
         $notFound = $arFilter['S_ID'][0] == 0;
     }
     if (!$notFound && !$this->isFiltering()) {
         $arSectionFilter = array("IBLOCK_ID" => $arFilter["IBLOCK_ID"], "=ID" => $arFilter["S_ID"], "?NAME" => $arFilter["NAME"], ">=TIMESTAMP_X" => $arFilter["DATE_MODIFY_FROM"], "<=TIMESTAMP_X" => $arFilter["DATE_MODIFY_TO"], "CODE" => $arFilter["CODE"], "ACTIVE" => $arFilter["ACTIVE"]);
         if (isset($arFilter["CHECK_PERMISSIONS"])) {
             $arSectionFilter['CHECK_PERMISSIONS'] = $arFilter["CHECK_PERMISSIONS"];
             $arSectionFilter['MIN_PERMISSION'] = isset($arFilter['MIN_PERMISSION']) ? $arFilter['MIN_PERMISSION'] : 'R';
         }
         if (array_key_exists("SECTION_ID", $arFilter)) {
             if (!array_key_exists("INCLUDE_SUBSECTIONS", $arFilter)) {
                 $arSectionFilter['SECTION_ID'] = $arFilter['SECTION_ID'];
             } elseif (!$this->isAdvancedSearchAvailable() && ($margin = $this->getSectionMargin($arFilter['SECTION_ID']))) {
                 $arSectionFilter['>LEFT_MARGIN'] = $margin['LEFT_MARGIN'];
                 $arSectionFilter['<RIGHT_MARGIN'] = $margin['RIGHT_MARGIN'];
                 $arSectionFilter['>DEPTH_LEVEL'] = $margin['DEPTH_LEVEL'];
             }
         }
         $obSection = new \CIBlockSection();
         $rsSection = $obSection->GetList($arOrder, $arSectionFilter, $bIncCnt);
         while ($arSection = $rsSection->Fetch()) {
             $arSection["TYPE"] = "S";
             $arResult[] = $arSection;
         }
     }
     $notFound = false;
     if (is_array($arFilter["ID"]) && sizeof($arFilter["ID"]) == 1) {
         $notFound = $arFilter['ID'][0] == 0;
     }
     if (!$notFound) {
         $arElementFilter = array("IBLOCK_ID" => $arFilter["IBLOCK_ID"], "?NAME" => $arFilter["NAME"], "SECTION_ID" => $arFilter["SECTION_ID"], "=ID" => $arFilter["ID"], ">=TIMESTAMP_X" => $arFilter["DATE_MODIFY_FROM"], "<=TIMESTAMP_X" => $arFilter["DATE_MODIFY_TO"], "CODE" => $arFilter["CODE"], "ACTIVE" => $arFilter["ACTIVE"], "WF_STATUS" => $arFilter["WF_STATUS"], 'INCLUDE_SUBSECTIONS' => $arFilter["INCLUDE_SUBSECTIONS"]);
         if (isset($arFilter["CHECK_PERMISSIONS"])) {
             $arElementFilter['CHECK_PERMISSIONS'] = $arFilter["CHECK_PERMISSIONS"];
             $arElementFilter['MIN_PERMISSION'] = isset($arFilter['MIN_PERMISSION']) ? $arFilter['MIN_PERMISSION'] : 'R';
         }
         foreach ($arFilter as $key => $value) {
             $op = \CIBlock::MkOperationFilter($key);
             $newkey = strtoupper($op["FIELD"]);
             if (substr($newkey, 0, 9) == "PROPERTY_" || substr($newkey, 0, 8) == "CATALOG_") {
                 $arElementFilter[$key] = $value;
             }
         }
         if (strlen($arFilter["SECTION_ID"]) <= 0) {
             unset($arElementFilter["SECTION_ID"]);
         }
         if (!is_array($arSelectedFields)) {
             $arSelectedFields = array("ID", "IBLOCK_ID", "IBLOCK_SECTION_ID", "ACTIVE", "SORT", "NAME", "PREVIEW_PICTURE", "PREVIEW_TEXT", "PREVIEW_TEXT_TYPE", "DETAIL_PICTURE", "DETAIL_TEXT", "DETAIL_TEXT_TYPE", "SHOW_COUNTER", "SHOW_COUNTER_START", "CODE", "EXTERNAL_ID");
         }
         if (isset($arFilter["CHECK_BP_PERMISSIONS"])) {
             $arElementFilter["CHECK_BP_PERMISSIONS"] = $arFilter["CHECK_BP_PERMISSIONS"];
         }
         $obElement = new \CIBlockElement();
         $rsElement = $obElement->GetList($arOrder, $arElementFilter, false, false, $arSelectedFields);
         while ($arElement = $rsElement->Fetch()) {
             $arElement["TYPE"] = "E";
             $arResult[] = $arElement;
         }
     }
     $rsResult = new \CDBResult();
     $rsResult->InitFromArray($arResult);
     if ($this->isAdminSection()) {
         $rsResult = new \CAdminResult($rsResult, $this->getTableId());
         $rsResult->NavStart();
     } else {
         $rsResult->NavStart($this->getGridOptions()->GetNavParams());
     }
     return $rsResult;
 }
Beispiel #12
0
 function GetList($arOrder = array("SORT" => "ASC"), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
 {
     global $USER;
     $arFilter["SHOW_NEW"] = "Y";
     $arFilter["ACTIVE"] = "Y";
     if (count($arSelectFields) > 0) {
         if (!in_array("ID", $arSelectFields)) {
             $arSelectFields[] = "ID";
         }
         if (!in_array("IBLOCK_ID", $arSelectFields)) {
             $arSelectFields[] = "IBLOCK_ID";
         }
         if (!in_array("CREATED_BY", $arSelectFields)) {
             $arSelectFields[] = "CREATED_BY";
         }
     }
     $arResultList = array();
     $arIDMap = array();
     $dbTasksList = CIBlockElement::GetList($arOrder, $arFilter, $arGroupBy, $arNavStartParams, $arSelectFields);
     while ($obTask = $dbTasksList->GetNextElement()) {
         $arResult = array();
         $arFields = $obTask->GetFields();
         foreach ($arFields as $fieldKey => $fieldValue) {
             if (substr($fieldKey, 0, 1) != "~") {
                 continue;
             }
             $fieldKey = substr($fieldKey, 1);
             $arResult[$fieldKey] = $fieldValue;
             $arResult[$fieldKey . "_PRINTABLE"] = $fieldValue;
             if (in_array($fieldKey, array("MODIFIED_BY", "CREATED_BY"))) {
                 $arResult[$fieldKey] = "user_" . $fieldValue;
                 $arResult[$fieldKey . "_PRINTABLE"] = self::PrepareUserForPrint($fieldValue);
             }
         }
         $arProperties = $obTask->GetProperties();
         foreach ($arProperties as $propertyKey => $propertyValue) {
             $arResult["PROPERTY_" . $propertyKey] = $propertyValue["~VALUE"];
             $arResult["PROPERTY_" . $propertyKey . "_PRINTABLE"] = $propertyValue["~VALUE"];
             if (strlen($propertyValue["USER_TYPE"]) > 0) {
                 if ($propertyValue["USER_TYPE"] == "UserID") {
                     if (is_array($propertyValue["VALUE"])) {
                         $arResult["PROPERTY_" . $propertyKey] = array();
                         foreach ($propertyValue["VALUE"] as $v) {
                             $v = intval($v);
                             if ($v > 0) {
                                 $arResult["PROPERTY_" . $propertyKey][] = "user_" . $v;
                             }
                         }
                     } else {
                         $arResult["PROPERTY_" . $propertyKey] = "";
                         if (intval($propertyValue["VALUE"]) > 0) {
                             $arResult["PROPERTY_" . $propertyKey] = "user_" . intval($propertyValue["VALUE"]);
                         }
                     }
                     $arResult["PROPERTY_" . $propertyKey . "_PRINTABLE"] = self::PrepareUserForPrint($propertyValue["VALUE"]);
                 }
             } elseif ($propertyValue["PROPERTY_TYPE"] == "G") {
                 $arResult["PROPERTY_" . $propertyKey . "_PRINTABLE"] = array();
                 $vx = self::PrepareSectionForPrint($propertyValue["VALUE"], $propertyValue["LINK_IBLOCK_ID"]);
                 foreach ($vx as $vx1 => $vx2) {
                     $arResult["PROPERTY_" . $propertyKey . "_PRINTABLE"][$vx1] = $vx2["NAME"];
                 }
             } elseif ($propertyValue["PROPERTY_TYPE"] == "L") {
                 $arResult["PROPERTY_" . $propertyKey] = array();
                 $arPropertyValue = $propertyValue["VALUE"];
                 $arPropertyKey = $propertyValue["VALUE_ENUM_ID"];
                 if (!is_array($arPropertyValue)) {
                     $arPropertyValue = array($arPropertyValue);
                     $arPropertyKey = array($arPropertyKey);
                 }
                 for ($i = 0, $cnt = count($arPropertyValue); $i < $cnt; $i++) {
                     $arResult["PROPERTY_" . $propertyKey][$arPropertyKey[$i]] = $arPropertyValue[$i];
                 }
                 $arResult["PROPERTY_" . $propertyKey . "_PRINTABLE"] = $arResult["PROPERTY_" . $propertyKey];
             }
         }
         if (array_key_exists($arFields["ID"], $arIDMap)) {
             foreach ($arResultList[$arIDMap[$arFields["ID"]]] as $key => &$value) {
                 if ($value != $arResult[$key]) {
                     if (!is_array($value)) {
                         $value = array($value);
                     }
                     $value[] = $arResult[$key];
                 }
             }
         } else {
             $index = count($arResultList);
             $arResultList[$index] = $arResult;
             $arIDMap[$arFields["ID"]] = $index;
         }
     }
     $dbTasksList1 = new CDBResult();
     $dbTasksList1->InitFromArray($arResultList);
     return array($dbTasksList1, $dbTasksList);
 }
Beispiel #13
0
 function GetByID($FILE_ID)
 {
     global $DB;
     $FILE_ID = intval($FILE_ID);
     if (CACHED_b_file === false) {
         $strSql = "SELECT f.*," . $DB->DateToCharFunction("f.TIMESTAMP_X") . " as TIMESTAMP_X FROM b_file f WHERE f.ID=" . $FILE_ID;
         $z = $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br>LINE: " . __LINE__);
     } else {
         $arFiles = CFile::GetFromCache($FILE_ID);
         $z = new CDBResult();
         $z->InitFromArray(array_key_exists($FILE_ID, $arFiles) ? array($arFiles[$FILE_ID]) : array());
     }
     return $z;
 }
Beispiel #14
0
// advancing sorting is necessary if old history results are mixed with new order changes
if ($bUseOldHistory)
{
	$arData = array();
	foreach ($arHistoryData as $index => $arHistoryRecord)
		$arData[$index]  = $arHistoryRecord[$by];

	$arIds = array();
	foreach ($arHistoryData as $index => $arHistoryRecord)
		$arIds[$index]  = $arHistoryRecord["ID"];

	array_multisort($arData, constant("SORT_".ToUpper($order)), $arIds, constant("SORT_".ToUpper($order)), $arHistoryData);
}

$dbRes = new CDBResult;
$dbRes->InitFromArray($arHistoryData);

$dbRecords = new CAdminResult($dbRes, $sTableID_tab5);
$dbRecords->NavStart();
$lAdmin_tab5->NavText($dbRecords->GetNavPrint(GetMessage('SOD_HIST_LIST')));

$histdHeader = array(
	array("id"=>"DATE_CREATE", "content"=>GetMessage("SOD_HIST_H_DATE"), "sort"=>"DATE_CREATE", "default"=>true),
	array("id"=>"USER_ID", "content"=>GetMessage("SOD_HIST_H_USER"), "sort"=>"USER_ID", "default"=>true),
	array("id"=>"TYPE", "content"=>GetMessage("SOD_HIST_TYPE"), "sort"=>"TYPE", "default"=>true),
	array("id"=>"DATA", "content"=>GetMessage("SOD_HIST_DATA"), "sort"=>"", "default"=>true),
);

$lAdmin_tab5->AddHeaders($histdHeader);

$arOperations = array();
Beispiel #15
0
	function GetList($aSort=array(), $aFilter=array())
	{
		global $DB, $CACHE_MANAGER;

		if(CACHED_b_user_field_enum !== false)
		{
			$cacheId = "b_user_field_enum".md5(serialize($aSort).".".serialize($aFilter));
			if($CACHE_MANAGER->Read(CACHED_b_user_field_enum, $cacheId, "b_user_field_enum"))
			{
				$arResult = $CACHE_MANAGER->Get($cacheId);
				$res = new CDBResult;
				$res->InitFromArray($arResult);
				return $res;
			}
		}
		else
		{
			$cacheId = '';
		}

		$bJoinUFTable = false;
		$arFilter = array();
		foreach($aFilter as $key=>$val)
		{
			if(is_array($val))
			{
				if(count($val) <= 0)
					continue;
				$val = array_map(array($DB, "ForSQL"), $val);
				$val = "('".implode("', '", $val)."')";
			}
			else
			{
				if(strlen($val) <= 0)
					continue;
				$val = "('".$DB->ForSql($val)."')";
			}

			$key = strtoupper($key);
			switch($key)
			{
			case "ID":
			case "USER_FIELD_ID":
			case "VALUE":
			case "DEF":
			case "SORT":
			case "XML_ID":
				$arFilter[] = "UFE.".$key." in ".$val;
				break;
			case "USER_FIELD_NAME":
				$bJoinUFTable = true;
				$arFilter[] = "UF.FIELD_NAME in ".$val;
				break;
			}
		}

		$arOrder = array();
		foreach($aSort as $key=>$val)
		{
			$key = strtoupper($key);
			$ord = (strtoupper($val) <> "ASC"? "DESC": "ASC");
			switch($key)
			{
				case "ID":
				case "USER_FIELD_ID":
				case "VALUE":
				case "DEF":
				case "SORT":
				case "XML_ID":
					$arOrder[] = "UFE.".$key." ".$ord;
					break;
			}
		}
		if(count($arOrder) == 0)
		{
			$arOrder[] = "UFE.SORT asc";
			$arOrder[] = "UFE.ID asc";
		}
		DelDuplicateSort($arOrder);
		$sOrder = "\nORDER BY ".implode(", ", $arOrder);

		if(count($arFilter) == 0)
			$sFilter = "";
		else
			$sFilter = "\nWHERE ".implode("\nAND ", $arFilter);

		$strSql = "
			SELECT
				UFE.ID
				,UFE.USER_FIELD_ID
				,UFE.VALUE
				,UFE.DEF
				,UFE.SORT
				,UFE.XML_ID
			FROM
				b_user_field_enum UFE
				".($bJoinUFTable? "INNER JOIN b_user_field UF ON UF.ID = UFE.USER_FIELD_ID": "")."
			".$sFilter.$sOrder;

		if($cacheId == '')
		{
			$res = $DB->Query($strSql, false, "FILE: ".__FILE__."<br> LINE: ".__LINE__);
		}
		else
		{
			$arResult = array();
			$res = $DB->Query($strSql, false, "FILE: ".__FILE__."<br> LINE: ".__LINE__);
			while($ar = $res->Fetch())
				$arResult[]=$ar;

			$CACHE_MANAGER->Set($cacheId, $arResult);

			$res = new CDBResult;
			$res->InitFromArray($arResult);
		}

		return  $res;
	}
Beispiel #16
0
        case "weekday":
            $start = 0;
            $end = 6;
            break;
        case "month":
            $start = 1;
            $end = 12;
            break;
    }
    $graph_type_upper = ToUpper($graph_type);
    $ra = array();
    for ($i = $start; $i <= $end; $i++) {
        $ra[] = array("ID" => $i, "HITS" => $ar[$graph_type_upper . "_HIT_" . $i], "C_HOSTS" => $ar[$graph_type_upper . "_HOST_" . $i], "SESSIONS" => $ar[$graph_type_upper . "_SESSION_" . $i], "C_EVENTS" => $ar[$graph_type_upper . "_EVENT_" . $i], "GUESTS" => $ar[$graph_type_upper . "_GUEST_" . $i], "NEW_GUESTS" => $ar[$graph_type_upper . "_NEW_GUEST_" . $i]);
    }
    $rsData = new CDBResult();
    $rsData->InitFromArray($ra);
}
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint($arrParams[$graph_type][0]));
$arHeaders = array();
switch ($graph_type) {
    case "date":
        $arHeaders[] = array("id" => "ID", "content" => "ID", "sort" => "s_id", "align" => "right", "default" => true);
        $arHeaders[] = array("id" => "DATE_STAT", "content" => GetMessage("STAT_DATE"), "sort" => "s_date", "default" => true);
        $arHeaders[] = array("id" => "WDAY", "content" => GetMessage("STAT_WEEKDAY"), "sort" => false, "default" => true);
        break;
    case "weekday":
        $arHeaders[] = array("id" => "ID", "content" => GetMessage("STAT_WEEKDAY"), "sort" => false, "default" => true);
        break;
    case "hour":
Beispiel #17
0
	/**
	 * <p>Возвращает список <a href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#session">сессий</a> <a href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#guest">посетителей</a>, проявивших активность (совершивших <a href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#hit">хит</a>) на сайте за определённый интервал времени.</p>
	 *
	 *
	 *
	 *
	 * @param function $GetList  Ссылка на переменную, которая после выполнения функции будет
	 * содержать количество <a
	 * href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#online">посетителей в online</a>.
	 *
	 *
	 *
	 * @param (&$guest_coun $t  Ссылка на переменную, которая после выполнения функции будет
	 * содержать количество сессий посетителей в online.
	 *
	 *
	 *
	 * @param &$session_coun $t  
	 *
	 *
	 *
	 * @param $arOrde $r = Array() 
	 *
	 *
	 *
	 * @param $arFilte $r = Array()) 
	 *
	 *
	 *
	 * @return CDBResult 
	 *
	 *
	 * <h4>Example</h4> 
	 * <pre>
	 * &lt;?
	 * // получим список записей
	 * $rs = <b>CUserOnline::GetList</b>($guest_counter, $session_counter);
	 * 
	 * echo "Количество посетителей в онлайн: ".$guest_counter;
	 * echo "Количество сессий в онлайн: ".$session_counter;
	 * 
	 * // выведем все записи
	 * while ($ar = $rs-&gt;Fetch())
	 * {
	 *     echo "&lt;pre&gt;"; print_r($ar); echo "&lt;/pre&gt;";    
	 * }
	 * ?&gt;
	 * </pre>
	 *
	 *
	 *
	 * <h4>See Also</h4> 
	 * <ul> <li> <a href="http://www.1c-bitrix.ru/user_help/statistic/users_online.php">Отчет "Кто на сайте"</a>
	 * </li> </ul><a name="examples"></a>
	 *
	 *
	 * @static
	 * @link http://dev.1c-bitrix.ru/api_help/statistic/classes/cuseronline/getlist.php
	 * @author Bitrix
	 */
	public static function GetList(&$guest_count, &$session_count, $arOrder=Array(), $arFilter=Array())
	{
		$DB = CDatabase::GetModuleConnection('statistic');
		$err_mess = "File: ".__FILE__."<br>Line: ";
		$interval = intval(COption::GetOptionString("statistic", "ONLINE_INTERVAL"));

		$arSqlSearch = Array();
		$strSqlSearch = "";
		if (is_array($arFilter))
		{
			foreach ($arFilter as $key => $val)
			{
				if(is_array($val))
				{
					if(count($val) <= 0)
						continue;
				}
				else
				{
					if( (strlen($val) <= 0) || ($val === "NOT_REF") )
						continue;
				}
				$match_value_set = array_key_exists($key."_EXACT_MATCH", $arFilter);
				$key = strtoupper($key);
				switch($key)
				{
					case "INTERVAL":
						$interval = intval($val);
						break;
					case "ID":
					case "GUEST_ID":
					case "ADV_ID":
					case "STOP_LIST_ID":
					case "USER_ID":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
						$arSqlSearch[] = GetFilterQuery("S.".$key,$val,$match);
						break;
					case "COUNTRY_ID":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
						$arSqlSearch[] = GetFilterQuery("S.COUNTRY_ID",$val,$match);
						break;
					case "IP":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
						$arSqlSearch[] = GetFilterQuery("S.IP_LAST",$val,$match,array("."));
						break;
					case "REGISTERED":
						$arSqlSearch[] = ($val=="Y") ? "S.USER_ID>0" : "(S.USER_ID<=0 or S.USER_ID is null)";
						break;
					case "HITS1":
						$arSqlSearch[] = "S.HITS>='".intval($val)."'";
						break;
					case "HITS2":
						$arSqlSearch[] = "S.HITS<='".intval($val)."'";
						break;
					case "ADV":
						if ($val=="Y")
							$arSqlSearch[] = "(S.ADV_ID>0 and S.ADV_ID is not null)";
						elseif ($val=="N")
							$arSqlSearch[] = "(S.ADV_ID<=0 or S.ADV_ID is null)";
						break;
					case "REFERER1":
					case "REFERER2":
					case "REFERER3":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
						$arSqlSearch[] = GetFilterQuery("S.".$key, $val, $match);
						break;
					case "STOP":
						$arSqlSearch[] = ($val=="Y") ? "S.STOP_LIST_ID>0" : "(S.STOP_LIST_ID<=0 or S.STOP_LIST_ID is null)";
						break;
					case "COUNTRY":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
						$arSqlSearch[] = GetFilterQuery("C.NAME", $val, $match);
						$from2 = "INNER JOIN b_stat_country C ON (C.ID = S.COUNTRY_ID)";
						break;
					case "LAST_SITE_ID":
						$arSqlSearch[] = GetFilterQuery("S.".$key, $val, "N");
						break;
					case "URL_LAST":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
						$arSqlSearch[] = GetFilterQuery("S.".$key,$val,$match,array("/","\\",".","?","#",":"));
						break;
					case "FIRST_URL_FROM":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
						$arSqlSearch[] = GetFilterQuery("G.".$key,$val,$match,array("/","\\",".","?","#",":"));
						break;
					case "ADV_BACK":
					case "NEW_GUEST":
					case "URL_LAST_404":
					case "URL_TO_404":
					case "USER_AUTH":
						$arSqlSearch[] = ($val=="Y") ? "S.".$key."='Y'" : "S.".$key."='N'";
						break;
					case "FAVORITES":
						$arSqlSearch[] = ($val=="Y") ? "G.".$key."='Y'" : "G.".$key."='N'";
						break;
					case "USER":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
						$arSqlSearch[] = "ifnull(S.USER_ID,0)>0";
						$arSqlSearch[] = GetFilterQuery("S.USER_ID,A.LOGIN,A.LAST_NAME,A.NAME", $val, $match);
						$from1 = "LEFT JOIN b_user A ON (A.ID = S.USER_ID)";
						$select = " , A.LOGIN, concat(ifnull(A.NAME,''),' ',ifnull(A.LAST_NAME,'')) USER_NAME";
						break;
				}
			}
		}

		if (!is_array($arOrder))
			$arOrder = Array("s_id" => "desc");

		foreach($arOrder as $by=>$order)
		{
			$by = strtolower($by);
			$order = strtolower($order);
			if ($order!="asc")
				$order = "desc";
		}

		if ($by == "s_id") $strSqlOrder = "ORDER BY S.ID";
		elseif ($by == "s_session_time") $strSqlOrder = "ORDER BY SESSION_TIME";
		elseif ($by == "s_date_first") $strSqlOrder = "ORDER BY S.DATE_FIRST";
		elseif ($by == "s_date_last") $strSqlOrder = "ORDER BY S.DATE_LAST";
		elseif ($by == "s_user_id") $strSqlOrder = "ORDER BY S.USER_ID";
		elseif ($by == "s_guest_id") $strSqlOrder = "ORDER BY S.GUEST_ID";
		elseif ($by == "s_ip") $strSqlOrder = "ORDER BY S.IP_LAST";
		elseif ($by == "s_hits") $strSqlOrder = "ORDER BY S.HITS ";
		elseif ($by == "s_adv_id") $strSqlOrder = "ORDER BY S.ADV_ID ";
		elseif ($by == "s_country_id") $strSqlOrder = "ORDER BY S.COUNTRY_ID ";
		elseif ($by == "s_url_last") $strSqlOrder = "ORDER BY S.URL_LAST ";
		elseif ($by == "s_url_to") $strSqlOrder = "ORDER BY S.URL_TO ";
		else
		{
			$by = "s_id";
			$strSqlOrder = "ORDER BY S.ID";
		}
		if ($order!="asc")
		{
			$strSqlOrder .= " desc ";
			$order="desc";
		}

		$strSqlSearch = GetFilterSqlSearch($arSqlSearch);

		$strSql = "
			SELECT
				S.ID,
				S.ADV_ID, S.REFERER1, S.REFERER2, S.REFERER3, S.ADV_BACK,
				S.LAST_SITE_ID, S.URL_LAST, S.URL_LAST_404, S.IP_LAST, S.HITS, S.USER_AUTH,
				S.STOP_LIST_ID, S.GUEST_ID, G.FAVORITES, G.LAST_USER_ID,
				UNIX_TIMESTAMP(S.DATE_LAST) - UNIX_TIMESTAMP(S.DATE_FIRST) SESSION_TIME,
				".$DB->DateToCharFunction("S.DATE_LAST")." DATE_LAST,
				if(G.SESSIONS<=1,'Y','N') NEW_GUEST,
				G.FIRST_URL_FROM,
				G.FIRST_SITE_ID,
				S.URL_FROM,
				S.COUNTRY_ID,
				C.NAME COUNTRY_NAME,
				CITY.REGION REGION_NAME,
				S.CITY_ID,
				CITY.NAME CITY_NAME
			FROM
				b_stat_session S
				INNER JOIN b_stat_guest G ON (G.ID = S.GUEST_ID)
				INNER JOIN b_stat_country C ON (C.ID = S.COUNTRY_ID)
				".$from1."
				LEFT JOIN b_stat_city CITY ON (CITY.ID = S.CITY_ID)
			WHERE
				S.DATE_STAT >= DATE_SUB(CURDATE(), INTERVAL 1 DAY)
				and S.DATE_LAST > DATE_ADD(now(), INTERVAL - ".$interval." SECOND)
				and ".$strSqlSearch."
			".$strSqlOrder."
		";

		$arr = array();
		$arrG = array();
		$rs = $DB->Query($strSql, false, $err_mess.__LINE__);
		while($ar = $rs->Fetch())
		{
			$arr[] = $ar;
			$arrG[$ar["GUEST_ID"]] = $ar["GUEST_ID"];
		}
		$guest_count = count($arrG);
		$session_count = count($arr);
		$rs = new CDBResult;
		$rs->InitFromArray($arr);
		return $rs;
	}
Beispiel #18
0
 function GetList($arOrder = array("SORT" => "ASC", "ID" => "DESC"), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
 {
     global $DB, $CACHE_MANAGER;
     if (count($arSelectFields) <= 0) {
         $arSelectFields = array("ID", "SITE_ID", "NAME", "SORT");
     }
     $bShouldBeCached = false;
     $cacheId = "";
     if (CACHED_b_sonet_group_subjects != false) {
         if ($arSelectFields == false && $arNavStartParams == false && $arGroupBy == false) {
             $bFilterByID = array_key_exists("ID", $arFilter);
             $bFilterBySite = array_key_exists("SITE_ID", $arFilter);
             if (count($arFilter) == 1 && ($bFilterByID || $bFilterBySite)) {
                 $bShouldBeCached = true;
                 $cacheId = "b_sonet_group_subjects" . md5(serialize($arOrder));
                 if ($CACHE_MANAGER->Read(CACHED_b_sonet_group_subjects, $cacheId, "b_sonet_group_subjects")) {
                     $arResult = $CACHE_MANAGER->Get($cacheId);
                     $arReturnValue = array();
                     for ($i = 0; $i < count($arResult); $i++) {
                         if ($bFilterByID && $arResult[$i]["ID"] == $arFilter["ID"]) {
                             $arReturnValue[] = $arResult[$i];
                         }
                         if ($bFilterBySite && (is_array($arFilter["SITE_ID"]) && in_array($arResult[$i]["SITE_ID"], $arFilter["SITE_ID"]) || !is_array($arFilter["SITE_ID"]) && $arResult[$i]["SITE_ID"] == $arFilter["SITE_ID"])) {
                             $arReturnValue[] = $arResult[$i];
                         }
                     }
                     $res = new CDBResult();
                     $res->InitFromArray($arResult);
                     return $res;
                 }
             }
         }
     }
     static $arFields1 = array("ID" => array("FIELD" => "S.ID", "TYPE" => "int"), "NAME" => array("FIELD" => "S.NAME", "TYPE" => "string"), "SORT" => array("FIELD" => "S.SORT", "TYPE" => "int"));
     if (array_key_exists("SITE_ID", $arFilter)) {
         $arFields["SITE_ID"] = array("FIELD" => "SGSS.SITE_ID", "TYPE" => "string", "FROM" => "LEFT JOIN b_sonet_group_subject_site SGSS ON S.ID = SGSS.SUBJECT_ID");
         $strDistinct = " DISTINCT ";
         foreach ($arSelectFields as $i => $strFieldTmp) {
             if ($strFieldTmp == "SITE_ID") {
                 unset($arSelectFields[$i]);
             }
         }
         foreach ($arOrder as $by => $order) {
             if (!in_array($by, $arSelectFields)) {
                 $arSelectFields[] = $by;
             }
         }
     } else {
         $arFields["SITE_ID"] = array("FIELD" => "S.SITE_ID", "TYPE" => "string");
         $strDistinct = " ";
     }
     $arFields = array_merge($arFields1, $arFields);
     $arSqls = CSocNetGroup::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
     $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", $strDistinct, $arSqls["SELECT"]);
     if (is_array($arGroupBy) && count($arGroupBy) == 0) {
         $strSql = "SELECT " . $arSqls["SELECT"] . " " . "FROM b_sonet_group_subject S " . "\t" . $arSqls["FROM"] . " ";
         if (strlen($arSqls["WHERE"]) > 0) {
             $strSql .= "WHERE " . $arSqls["WHERE"] . " ";
         }
         if (strlen($arSqls["GROUPBY"]) > 0) {
             $strSql .= "GROUP BY " . $arSqls["GROUPBY"] . " ";
         }
         //echo "!1!=".htmlspecialcharsbx($strSql)."<br>";
         $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         if ($arRes = $dbRes->Fetch()) {
             return $arRes["CNT"];
         } else {
             return False;
         }
     }
     $strSql = "SELECT " . $arSqls["SELECT"] . " " . "FROM b_sonet_group_subject S " . "\t" . $arSqls["FROM"] . " ";
     if (strlen($arSqls["WHERE"]) > 0) {
         $strSql .= "WHERE " . $arSqls["WHERE"] . " ";
     }
     if (strlen($arSqls["GROUPBY"]) > 0) {
         $strSql .= "GROUP BY " . $arSqls["GROUPBY"] . " ";
     }
     if (strlen($arSqls["ORDERBY"]) > 0) {
         $strSql .= "ORDER BY " . $arSqls["ORDERBY"] . " ";
     }
     if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) <= 0) {
         $strSql_tmp = "SELECT COUNT('x') as CNT " . "FROM b_sonet_group_subject S " . "\t" . $arSqls["FROM"] . " ";
         if (strlen($arSqls["WHERE"]) > 0) {
             $strSql_tmp .= "WHERE " . $arSqls["WHERE"] . " ";
         }
         if (strlen($arSqls["GROUPBY"]) > 0) {
             $strSql_tmp .= "GROUP BY " . $arSqls["GROUPBY"] . " ";
         }
         //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>";
         $dbRes = $DB->Query($strSql_tmp, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $cnt = 0;
         if (strlen($arSqls["GROUPBY"]) <= 0) {
             if ($arRes = $dbRes->Fetch()) {
                 $cnt = $arRes["CNT"];
             }
         } else {
             // рнкэйн дкъ MYSQL!!! дкъ ORACLE дпсцни йнд
             $cnt = $dbRes->SelectedRowsCount();
         }
         $dbRes = new CDBResult();
         //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>";
         $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
     } else {
         if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) > 0) {
             $strSql .= "LIMIT " . IntVal($arNavStartParams["nTopCount"]);
         }
         //echo "!3!=".htmlspecialcharsbx($strSql)."<br>";
         //$dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
         if (CACHED_b_sonet_group_subjects == false || !$bShouldBeCached) {
             $dbRes = $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
         } else {
             $arResult = array();
             $dbRes = $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
             while ($ar = $dbRes->Fetch()) {
                 $arResult[] = $ar;
             }
             $CACHE_MANAGER->Set($cacheId, $arResult);
             $dbRes = new CDBResult();
             $dbRes->InitFromArray($arResult);
         }
     }
     return $dbRes;
 }
Beispiel #19
0
 function GetBySID($SID, $SITE_ID = false)
 {
     global $DB;
     if (!defined('SALE_DH_INITIALIZED')) {
         CSaleDeliveryHandler::Initialize();
     }
     $arHandlersList = CSaleDeliveryHandler::__getRegisteredHandlers();
     $cnt = count($arHandlersList);
     $arResult = array();
     for ($i = 0; $i < $cnt; $i++) {
         if ($arHandlersList[$i]["SID"] == $SID) {
             $arResult[] = $arHandlersList[$i];
             break;
         }
     }
     if (count($arResult) > 0) {
         $arResult = CSaleDeliveryHandler::__getHandlersData($arResult, $SITE_ID);
     }
     $dbResult = new CDBResult();
     reset($arResult);
     $dbResult->InitFromArray($arResult);
     return $dbResult;
 }
	/**
	 * <p>Возвращает список зарегистрированных валидаторов в виде объекта класса <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cdbresult/index.php">CDBResult</a>.</p>
	 *
	 *
	 *
	 *
	 * @param array $mixedarFilter = array() Массив для фильтрации. В массиве допустимы следующие ключи: <ul> <li>
	 * <b>TYPE</b> - список типов полей;</li> </ul>
	 *
	 *
	 *
	 * @return CDBResult 
	 *
	 *
	 * <h4>Example</h4> 
	 * <pre>
	 * if (CModule::IncludeModule("form"))
	 * {
	 *   $arFilter = array("TYPE" =&gt; array("text", "textarea"));
	 *   
	 *   $sType = "&lt;b&gt;".implode("&lt;/b&gt;, &lt;b&gt;", $arFilter["TYPE"])."&lt;/b&gt;";
	 * 
	 *   $rsValidators = CFormValidator::GetAllList($arFilter);
	 *   if ($rsValidators-&gt;SelectedRowsCount() &gt; 0)
	 *   {
	 *     echo "Найденные валидаторы для полей типа ".$sType.":&lt;ul&gt;";
	 *     while ($arValidator = $rsValidators-&gt;GetNext())
	 *     {
	 *       echo "&lt;li&gt;[".$arValidator["NAME"]."] ".$arValidator["DESCRIPTION"]."&lt;/li&gt;";
	 *     }
	 *     echo "&lt;/ul&gt;";
	 *   }
	 *   else
	 *   {
	 *     echo "Валидаторов, применимых к полям типа ".$sType." не обнаружено.";
	 *   }
	 * }
	 * else
	 * {
	 *   ShowError('Модуль веб-форм не установлен');
	 * }
	 * </pre>
	 *
	 *
	 * @static
	 * @link http://dev.1c-bitrix.ru/api_help/form/classes/cformvalidator/getalllist.php
	 * @author Bitrix
	 */
	public static function GetAllList($arFilter = array())
	{
		if (is_array($arFilter) && count($arFilter) > 0)
		{
			$arType = $arFilter["TYPE"];
			
			$is_filtered = true;
		}
		else
		{
			$is_filtered = false;
		}
		
		$rsValList = GetModuleEvents("form", "onFormValidatorBuildList");
		if ($rsValList->SelectedRowsCount() > 0)
		{
			$arResult = array();
			while ($arValidator = $rsValList->Fetch())
			{
				$arValidatorInfo = ExecuteModuleEventEx($arValidator, $arParams = array());
				
				if ($is_filtered)
				{
					if (is_array($arValidatorInfo["TYPES"]))
					{
						if (
							(is_array($arType) && count(array_intersect($arType, $arValidatorInfo["TYPES"])))
							||
							(!is_array($arType) && in_array($arType, $arValidatorInfo["TYPES"]))
						)
						
						$arResult[] = $arValidatorInfo;
					}
				}
				else
				{
					$arResult[] = $arValidatorInfo;
				}
			}
		}
		else
		{
			return false;
		}
		
		unset($rsValList);
		$rsValList = new CDBResult;
		$rsValList->InitFromArray($arResult);
		
		return $rsValList;
	}
Beispiel #21
0
	function GetFilterList($id = "")
	{
		static $BX_MAIL_CUST_FILTER_LIST = false;
		if($BX_MAIL_CUST_FILTER_LIST === false)
		{
			$BX_MAIL_CUST_FILTER_LIST = array();
			foreach(GetModuleEvents("mail", "OnGetFilterList", true) as $arEvent)
			{
				$arResult = ExecuteModuleEventEx($arEvent);
				if(is_array($arResult))
					$BX_MAIL_CUST_FILTER_LIST[] = $arResult;
			}
		}

		if($id != "")
		{
			$allResultsTemp = array();
			foreach($BX_MAIL_CUST_FILTER_LIST as $arResult)
			{
				if($arResult["ID"] == $id)
				{
					$allResultsTemp[] = $arResult;
					break;
				}
			}
		}
		else
		{
			$allResultsTemp = $BX_MAIL_CUST_FILTER_LIST;
		}

		$db_res = new CDBResult;
		$db_res->InitFromArray($allResultsTemp);
		return $db_res;
	}
Beispiel #22
0
 function GetList(&$by, &$order, $arFilter = array(), &$is_filtered)
 {
     $err_mess = CVoteChannel::err_mess() . "<br>Function: GetList<br>Line: ";
     global $DB;
     $arSqlSearch = array();
     $arSqlSearch_1 = array();
     $strSqlSearch = "";
     $strSqlSearch_1 = "";
     if (is_array($arFilter)) {
         $filter_keys = array_keys($arFilter);
         for ($i = 0; $i < count($filter_keys); $i++) {
             $key = $filter_keys[$i];
             $val = $arFilter[$filter_keys[$i]];
             if (strlen($val) <= 0 || $val == "NOT_REF") {
                 continue;
             }
             if (is_array($val) && count($val) <= 0) {
                 continue;
             }
             $match_value_set = in_array($key . "_EXACT_MATCH", $filter_keys) ? true : false;
             $key = strtoupper($key);
             switch ($key) {
                 case "ID":
                     $match = $arFilter[$key . "_EXACT_MATCH"] == "N" && $match_value_set ? "Y" : "N";
                     $arSqlSearch[] = GetFilterQuery("C.ID", $val, $match);
                     break;
                 case "SITE":
                     if (is_array($val)) {
                         $val = implode(" | ", $val);
                     }
                     $match = $arFilter[$key . "_EXACT_MATCH"] == "N" && $match_value_set ? "Y" : "N";
                     $arSqlSearch_1[] = GetFilterQuery("CS.SITE_ID", $val, $match);
                     $strSqlSearch_1 = GetFilterSqlSearch($arSqlSearch_1);
                     $where = " and exists (SELECT 'x' FROM b_vote_channel_2_site CS WHERE {$strSqlSearch_1} and C.ID = CS.CHANNEL_ID) ";
                     break;
                 case "TITLE":
                     $match = $arFilter[$key . "_EXACT_MATCH"] == "Y" && $match_value_set ? "N" : "Y";
                     $arSqlSearch[] = GetFilterQuery("C.TITLE", $val, $match);
                     break;
                 case "SID":
                 case "SYMBOLIC_NAME":
                     $match = $arFilter[$key . "_EXACT_MATCH"] == "Y" && $match_value_set ? "N" : "Y";
                     $arSqlSearch[] = GetFilterQuery("C.SYMBOLIC_NAME", $val, $match);
                     break;
                 case "ACTIVE":
                     $arSqlSearch[] = $val == "Y" ? "C.ACTIVE='Y'" : "C.ACTIVE='N'";
                     break;
                 case "LID":
                 case "FIRST_SITE_ID":
                     $match = $arFilter[$key . "_EXACT_MATCH"] == "N" && $match_value_set ? "Y" : "N";
                     $arSqlSearch[] = GetFilterQuery("C.FIRST_SITE_ID", $val, $match);
                     break;
             }
         }
     }
     if ($by == "s_id") {
         $strSqlOrder = "ORDER BY C.ID";
     } elseif ($by == "s_timestamp") {
         $strSqlOrder = "ORDER BY C.TIMESTAMP_X";
     } elseif ($by == "s_c_sort") {
         $strSqlOrder = "ORDER BY C.C_SORT";
     } elseif ($by == "s_active") {
         $strSqlOrder = "ORDER BY C.ACTIVE";
     } elseif ($by == "s_symbolic_name") {
         $strSqlOrder = "ORDER BY C.SYMBOLIC_NAME";
     } elseif ($by == "s_title") {
         $strSqlOrder = "ORDER BY C.TITLE ";
     } elseif ($by == "s_votes") {
         $strSqlOrder = "ORDER BY count(V.ID)";
     } else {
         $by = "s_id";
         $strSqlOrder = "ORDER BY C.ID";
     }
     if ($order != "asc") {
         $strSqlOrder .= " desc ";
         $order = "desc";
     }
     $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
     $strSql = "\r\n\t\t\tSELECT \r\n\t\t\t\tC.ID, C.ACTIVE, C.TITLE, C.C_SORT, \r\n\t\t\t\tC.FIRST_SITE_ID,\r\n\t\t\t\tC.FIRST_SITE_ID\t\t\t\t\t\t\t\t\t\t\tLID,\r\n\t\t\t\tC.SYMBOLIC_NAME,\r\n\t\t\t\tC.SYMBOLIC_NAME\t\t\t\t\t\t\t\t\t\t\tSID,\r\n\t\t\t\t" . $DB->DateToCharFunction("C.TIMESTAMP_X") . "\t\t\tTIMESTAMP_X,\r\n\t\t\t\tcount(V.ID) VOTES\r\n\t\t\tFROM \r\n\t\t\t\tb_vote_channel C\r\n\t\t\tLEFT JOIN b_vote V ON (V.CHANNEL_ID = C.ID)\r\n\t\t\tWHERE\t\t\t\t\r\n\t\t\t{$strSqlSearch}\r\n\t\t\t{$where}\r\n\t\t\tGROUP BY\r\n\t\t\t\tC.ID, C.SYMBOLIC_NAME, C.ACTIVE, C.TITLE, C.C_SORT, C.FIRST_SITE_ID, C.TIMESTAMP_X\r\n\t\t\t{$strSqlOrder}\r\n\t\t\t";
     $is_filtered = IsFiltered($strSqlSearch);
     if (VOTE_CACHE_TIME === false) {
         $res = $DB->Query($strSql, false, $err_mess . __LINE__);
         return $res;
     } else {
         global $CACHE_MANAGER;
         $md5 = md5($strSql);
         if ($CACHE_MANAGER->Read(VOTE_CACHE_TIME, "b_vote_channel_" . $md5, "b_vote_channel")) {
             $arCache = $CACHE_MANAGER->Get("b_vote_channel_" . $md5);
         } else {
             $res = $DB->Query($strSql, false, $err_mess . __LINE__);
             while ($ar = $res->Fetch()) {
                 $arCache[] = $ar;
             }
             $CACHE_MANAGER->Set("b_vote_channel_" . $md5, $arCache);
         }
         $r = new CDBResult();
         $r->InitFromArray($arCache);
         unset($arCache);
         return $r;
     }
 }
        }
    }
}
$sTableID = "tbl_perfmon_panel";
$APPLICATION->SetTitle(GetMessage("PERFMON_PHP_TITLE"));
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
foreach ($data as $i => $arTable) {
    $lAdmin = new CAdminList($sTableID . $i);
    $lAdmin->BeginPrologContent();
    if (array_key_exists("TITLE", $arTable)) {
        echo "<h4>" . $arTable["TITLE"] . "</h4>\n";
    }
    $lAdmin->EndPrologContent();
    $lAdmin->AddHeaders($arTable["HEADERS"]);
    $rsData = new CDBResult();
    $rsData->InitFromArray($arTable["ITEMS"]);
    $rsData = new CAdminResult($rsData, $sTableID . $i);
    $j = 0;
    while ($arRes = $rsData->NavNext(true, "f_")) {
        $row =& $lAdmin->AddRow($j++, $arRes);
        $row->AddViewField("PARAMETER", $arRes["PARAMETER"]);
        if ($arRes["IS_OK"]) {
            $row->AddViewField("VALUE", $arRes["VALUE"] . "&nbsp;");
            $row->AddViewField("RECOMMENDATION", "&nbsp;");
        } else {
            $row->AddViewField("VALUE", "<span class=\"errortext\">" . $arRes["VALUE"] . "&nbsp;</span>");
            $row->AddViewField("RECOMMENDATION", $arRes["RECOMMENDATION"]);
        }
    }
    $lAdmin->CheckListMode();
    $lAdmin->DisplayList();
Beispiel #24
0
 public static function GetByIDEx($ID)
 {
     $ID = intval($ID);
     if ($ID <= 0) {
         return false;
     }
     if (!isset($GLOBALS["VOTE_CACHE"]["VOTE"][$ID])) {
         global $CACHE_MANAGER;
         if (!!VOTE_CACHE_TIME && $CACHE_MANAGER->Read(VOTE_CACHE_TIME, $ID, "b_vote")) {
             $GLOBALS["VOTE_CACHE"]["VOTE"][$ID] = $CACHE_MANAGER->Get($ID);
         } else {
             $db_res = CVote::GetListEx(array("ID" => "ASC"), array("ID" => $ID));
             if ($db_res && ($res = $db_res->Fetch())) {
                 $GLOBALS["VOTE_CACHE"]["VOTE"][$ID] = $res;
                 if (!!VOTE_CACHE_TIME) {
                     $CACHE_MANAGER->Set($ID, $res);
                 }
             }
         }
     }
     $db_res = new CDBResult();
     $db_res->InitFromArray(array($GLOBALS["VOTE_CACHE"]["VOTE"][$ID]));
     return $db_res;
 }
 public function Prepare($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array(), $arOptions = array())
 {
     global $DB;
     if (!is_array($arOrder)) {
         $arOrder = array();
     }
     if (!is_array($arFilter)) {
         $arFilter = array();
     }
     // ID must present in select (If select is empty it will be filled by CSqlUtil::PrepareSql)
     if (!is_array($arSelectFields)) {
         $arSelectFields = array();
     }
     if (count($arSelectFields) > 0 && !in_array('*', $arSelectFields, true) && !in_array('ID', $arSelectFields, true)) {
         $arSelectFields[] = 'ID';
     }
     if (!is_array($arOptions)) {
         $arOptions = array();
     }
     $arOptions['DB_TYPE'] = $this->dbType;
     $isExternalContext = isset($arOptions['IS_EXTERNAL_CONTEXT']) && ($arOptions['IS_EXTERNAL_CONTEXT'] === true || $arOptions['IS_EXTERNAL_CONTEXT'] === 'Y');
     if ($isExternalContext) {
         // Sanitizing of filter data
         if (isset($arFilter['__JOINS'])) {
             unset($arFilter['__JOINS']);
         }
         if (isset($arFilter['CHECK_PERMISSIONS'])) {
             unset($arFilter['CHECK_PERMISSIONS']);
         }
     }
     // Processing of special fields
     if ($this->fmEntityID !== '' && isset($arFilter['FM'])) {
         CCrmFieldMulti::PrepareExternalFilter($arFilter, array('ENTITY_ID' => $this->fmEntityID, 'MASTER_ALIAS' => $this->tableAlias, 'MASTER_IDENTITY' => 'ID'));
     }
     // Processing user fields
     $ufSelectSql = null;
     $ufFilterSql = null;
     if ($this->ufEntityID !== '') {
         $ufSelectSql = new CUserTypeSQL();
         $ufSelectSql->SetEntity($this->ufEntityID, $this->tableAlias . '.ID');
         $ufSelectSql->SetSelect($arSelectFields);
         $ufSelectSql->SetOrder($arOrder);
         $ufFilterSql = new CUserTypeSQL();
         $ufFilterSql->SetEntity($this->ufEntityID, $this->tableAlias . '.ID');
         $ufFilterSql->SetFilter($arFilter);
         $userType = new CCrmUserType($GLOBALS['USER_FIELD_MANAGER'], $this->ufEntityID);
         $userType->ListPrepareFilter($arFilter);
     }
     $this->sqlData = CSqlUtil::PrepareSql($this->fields, $arOrder, $arFilter, $arGroupBy, $arSelectFields, $arOptions);
     $this->sqlData['SELECT'] = str_replace('%%_DISTINCT_%% ', '', $this->sqlData['SELECT']);
     // 'Joins' implement custom filter logic
     $joins = array();
     if (isset($arFilter['__JOINS'])) {
         if (is_array($arFilter['__JOINS'])) {
             $joins = $arFilter['__JOINS'];
         }
         unset($arFilter['__JOINS']);
     }
     if (count($joins) > 0) {
         foreach ($joins as &$join) {
             // INNER JOINs will be added tostart
             $this->Add2SqlData($join['SQL'], 'FROM', !isset($join['TYPE']) || $join['TYPE'] === 'INNER', isset($join['REPLACE']) ? $join['REPLACE'] : '');
         }
         unset($join);
     }
     // Apply user permission logic
     if (count($this->permissionCallback) > 0) {
         if ((!array_key_exists('CHECK_PERMISSIONS', $arFilter) || $arFilter['CHECK_PERMISSIONS'] !== 'N') && !CCrmPerms::IsAdmin()) {
             $arPermType = !isset($arFilter['PERMISSION']) ? 'READ' : (is_array($arFilter['PERMISSION']) ? $arFilter['PERMISSION'] : array($arFilter['PERMISSION']));
             $permissionSql = call_user_func_array($this->permissionCallback, array($this->tableAlias, $arPermType, $arOptions));
             if (is_bool($permissionSql) && !$permissionSql) {
                 $CDBResult = new CDBResult();
                 $CDBResult->InitFromArray(array());
                 return $CDBResult;
             }
             if ($permissionSql !== '') {
                 $sqlType = isset($arOptions['PERMISSION_SQL_TYPE']) && $arOptions['PERMISSION_SQL_TYPE'] === 'FROM' ? 'FROM' : 'WHERE';
                 $this->Add2SqlData($permissionSql, $sqlType, $sqlType === 'FROM');
             }
         }
     }
     // Apply custom SQL logic
     if (count($this->afterPrepareSqlCallback) > 0) {
         $arUserSql = call_user_func_array($this->afterPrepareSqlCallback, array($this, $arOrder, $arFilter, $arGroupBy, $arSelectFields));
         if (is_array($arUserSql)) {
             if (isset($arUserSql['FROM'])) {
                 $this->Add2SqlData($arUserSql['FROM'], 'FROM');
             }
             if (isset($arUserSql['WHERE'])) {
                 $this->Add2SqlData($arUserSql['WHERE'], 'WHERE');
             }
         }
     }
     if ($ufSelectSql) {
         // Adding user fields to SELECT
         $this->Add2SqlData($ufSelectSql->GetSelect(), 'SELECT');
         // Adding user fields to ORDER BY
         if (is_array($arOrder)) {
             foreach ($arOrder as $orderKey => $order) {
                 $orderSql = $ufSelectSql->GetOrder($orderKey);
                 if (!is_string($orderSql) || $orderSql === '') {
                     continue;
                 }
                 $order = strtoupper($order);
                 if ($order !== 'ASC' && $order !== 'DESC') {
                     $order = 'ASC';
                 }
                 $this->Add2SqlData("{$orderSql} {$order}", 'ORDERBY');
             }
         }
         // Adding user fields to joins
         $this->Add2SqlData($ufSelectSql->GetJoin($this->tableAlias . '.ID'), 'FROM');
     }
     if ($ufFilterSql) {
         // Adding user fields to WHERE
         $ufWhere = $ufFilterSql->GetFilter();
         if ($ufWhere !== '') {
             $ufSql = $this->tableAlias . '.ID IN (SELECT ' . $this->tableAlias . '.ID FROM ' . $this->tableName . ' ' . $this->tableAlias . ' ' . $ufFilterSql->GetJoin($this->tableAlias . '.ID') . ' WHERE ' . $ufWhere . ')';
             // Adding user fields to joins
             $this->Add2SqlData($ufSql, 'WHERE');
         }
     }
     //Get count only
     if (is_array($arGroupBy) && count($arGroupBy) == 0) {
         return $this->GetRowCount(RestrictionManager::getSqlRestriction()->getRowCountThreshold());
     }
     $sql = 'SELECT ' . $this->sqlData['SELECT'] . ' FROM ' . $this->tableName . ' ' . $this->tableAlias;
     if (isset($this->sqlData['FROM'][0])) {
         $sql .= ' ' . $this->sqlData['FROM'];
     }
     if (isset($this->sqlData['WHERE'][0])) {
         $sql .= ' WHERE ' . $this->sqlData['WHERE'];
     }
     if (isset($this->sqlData['GROUPBY'][0])) {
         $sql .= ' GROUP BY ' . $this->sqlData['GROUPBY'];
     }
     if (isset($this->sqlData['ORDERBY'][0])) {
         $sql .= ' ORDER BY ' . $this->sqlData['ORDERBY'];
     }
     $enableNavigation = is_array($arNavStartParams);
     $top = $enableNavigation && isset($arNavStartParams['nTopCount']) ? intval($arNavStartParams['nTopCount']) : 0;
     if ($enableNavigation && $top <= 0) {
         $dbRes = new CDBResult();
         if ($this->ufEntityID !== '') {
             $dbRes->SetUserFields($GLOBALS['USER_FIELD_MANAGER']->GetUserFields($this->ufEntityID));
         } elseif (!empty($this->userFields)) {
             $dbRes->SetUserFields($this->userFields);
         }
         //Trace('CCrmEntityListBuilder::Prepare, SQL', $sql, 1);
         $cnt = $this->GetRowCount(RestrictionManager::getSqlRestriction()->getRowCountThreshold());
         $dbRes->NavQuery($sql, $cnt, $arNavStartParams);
     } else {
         $limit = $top;
         $offset = 0;
         if (isset($arOptions['QUERY_OPTIONS']) && is_array($arOptions['QUERY_OPTIONS'])) {
             $queryOptions = $arOptions['QUERY_OPTIONS'];
             $limit = isset($queryOptions['LIMIT']) ? (int) $queryOptions['LIMIT'] : 0;
             $offset = isset($queryOptions['OFFSET']) ? (int) $queryOptions['OFFSET'] : 0;
         }
         $threshold = RestrictionManager::getSqlRestriction()->getRowCountThreshold();
         if ($threshold > 0 && $threshold < $limit + $offset) {
             $delta = $threshold - $offset;
             if ($delta <= 0) {
                 $obRes = new CDBResult();
                 $obRes->InitFromArray(array());
                 return $obRes;
             }
             $limit = $delta;
         }
         if ($limit > 0) {
             $sql = Main\Application::getConnection()->getSqlHelper()->getTopSql($sql, $limit, $offset);
         }
         //Trace('CCrmEntityListBuilder::Prepare, SQL', $sql, 1);
         $dbRes = $DB->Query($sql, false, 'File: ' . __FILE__ . '<br/>Line: ' . __LINE__);
         if ($this->ufEntityID !== '') {
             $dbRes->SetUserFields($GLOBALS['USER_FIELD_MANAGER']->GetUserFields($this->ufEntityID));
         } elseif (!empty($this->userFields)) {
             $dbRes->SetUserFields($this->userFields);
         }
     }
     return $dbRes;
 }
                     $args[$n] = $tmp;
                 }
             }
             $args[] =& $data;
             call_user_func_array('array_multisort', $args);
             return array_pop($args);
         }
     }
     // ��� ����� � ����������� � ����...
     $mSortBy = SORT_ASC;
     if (strtolower($GLOBALS[$oSort->ord_name]) == "desc") {
         $mSortBy = SORT_DESC;
     }
     $aFilteredCat = array_orderby($aFilteredCat, substr($GLOBALS[$oSort->by_name], 2), $mSortBy, 'GEM', SORT_ASC);
 }
 $rsData->InitFromArray($aFilteredCat);
 $rsData = new CAdminResult($rsData, $sTableID);
 $rsData->NavStart();
 $lAdmin->NavText($rsData->GetNavPrint("BitrixGems"));
 while ($arRes = $rsData->NavNext(true, "f_")) {
     $row =& $lAdmin->AddRow($f_NAME, $arRes);
     $bCanBeInstalled = BitrixGems::checkRequirements($arRes);
     $row->AddViewField("TYPE", GetMessage('GEM_TYPE_' . $f_TYPE));
     if (empty($f_PICTURE)) {
         $f_PICTURE = '/bitrix/images/iv.bitrixgems/ruby.png';
     }
     $row->AddViewField("PICTURE", '<div style="text-align:center;"><img src="' . $f_PICTURE . '" alt="' . $f_NAME . '" title="' . $f_NAME . '"/></div>');
     $row->AddViewField("DESCRIPTION", nl2br($f_DESCRIPTION));
     $row->AddViewField("REQUIREMENTS", '<font style="color:' . ($bCanBeInstalled ? 'green' : 'red') . '">' . $f_REQUIREMENTS . GetMessage('TR_REQ_MODULE_VERSION') . $f_REQUIRED_MIN_MODULE_VERSION . (!empty($f_REQUIRED_MODULES) ? GetMessage('TR_REQ_MODULES') . implode(', ', $f_REQUIRED_MODULES) : '') . (!empty($f_REQUIRED_GEMS) ? GetMessage('TR_REQ_GEMS') . implode(', ', $f_REQUIRED_GEMS) : '') . '</font>');
     $row->AddViewField("VERSION", $f_VERSION);
     $row->AddViewField("LIKES", $f_LIKES);
Beispiel #27
0
 /**
  * <p>Функция возвращает результат выборки записей из типов плательщика в соответствии со своими параметрами.</p>
  *
  *
  *
  *
  * @param array $arOrder = array() Массив, в соответствии с которым сортируются результирующие
  * записи. Массив имеет вид: <pre class="syntax">array( "название_поля1" =&gt;
  * "направление_сортировки1", "название_поля2" =&gt;
  * "направление_сортировки2", . . . )</pre> В качестве "название_поля<i>N</i>"
  * может стоять любое поле типов плательщика, а в качестве
  * "направление_сортировки<i>X</i>" могут быть значения "<i>ASC</i>" (по
  * возрастанию) и "<i>DESC</i>" (по убыванию).<br><br> Если массив сортировки
  * имеет несколько элементов, то результирующий набор сортируется
  * последовательно по каждому элементу (т.е. сначала сортируется по
  * первому элементу, потом результат сортируется по второму и
  * т.д.). <br><br> Значение по умолчанию - пустой массив array() - означает,
  * что результат отсортирован не будет.
  *
  *
  *
  * @param array $arFilter = array() Массив, в соответствии с которым фильтруются записи типов
  * плательщика. Массив имеет вид: <pre class="syntax">array(
  * "[модификатор1][оператор1]название_поля1" =&gt; "значение1",
  * "[модификатор2][оператор2]название_поля2" =&gt; "значение2", . . . )</pre>
  * Удовлетворяющие фильтру записи возвращаются в результате, а
  * записи, которые не удовлетворяют условиям фильтра,
  * отбрасываются.<br><br> Допустимыми являются следующие модификаторы:
  * <ul> <li> <b> !</b> - отрицание;</li> <li> <b> +</b> - значения null, 0 и пустая строка
  * так же удовлетворяют условиям фильтра.</li> </ul> Допустимыми
  * являются следующие операторы: <ul> <li> <b>&gt;=</b> - значение поля больше
  * или равно передаваемой в фильтр величины;</li> <li> <b>&gt;</b> - значение
  * поля строго больше передаваемой в фильтр величины;</li> <li> <b>&lt;=</b> -
  * значение поля меньше или равно передаваемой в фильтр величины;</li>
  * <li> <b>&lt;</b> - значение поля строго меньше передаваемой в фильтр
  * величины;</li> <li> <b>@</b> - значение поля находится в передаваемом в
  * фильтр разделенном запятой списке значений;</li> <li> <b>~</b> - значение
  * поля проверяется на соответствие передаваемому в фильтр
  * шаблону;</li> <li> <b>%</b> - значение поля проверяется на соответствие
  * передаваемой в фильтр строке в соответствии с языком запросов.</li>
  * </ul> В качестве "название_поляX" может стоять любое поле типов
  * плательщика.<br> Значение по умолчанию - пустой массив array() -
  * означает, что результат отфильтрован не будет.
  *
  *
  *
  * @param array $arGroupBy = false Массив полей, по которым группируются записи типов плательщика.
  * Массив имеет вид: <pre class="syntax">array("название_поля1",
  * "группирующая_функция2" =&gt; "название_поля2", ...)</pre> В качестве
  * "название_поля<i>N</i>" может стоять любое поле типов плательщика. В
  * качестве группирующей функции могут стоять: <ul> <li> <b> COUNT</b> -
  * подсчет количества;</li> <li> <b>AVG</b> - вычисление среднего значения;</li>
  * <li> <b>MIN</b> - вычисление минимального значения;</li> <li> <b> MAX</b> -
  * вычисление максимального значения;</li> <li> <b>SUM</b> - вычисление
  * суммы.</li> </ul> Этот фильтр означает "выбрать все записи, в которых
  * значение в поле LID (сайт системы) не равно en".<br><br> Значение по
  * умолчанию - <i>false</i> - означает, что результат группироваться не
  * будет.
  *
  *
  *
  * @param array $arNavStartParams = false Массив параметров выборки. Может содержать следующие ключи: <ul>
  * <li>"<b>nTopCount</b>" - количество возвращаемых функцией записей будет
  * ограничено сверху значением этого ключа;</li> <li> любой ключ,
  * принимаемый методом <b> CDBResult::NavQuery</b> в качестве третьего
  * параметра.</li> </ul> Значение по умолчанию - <i>false</i> - означает, что
  * параметров выборки нет.
  *
  *
  *
  * @param array $arSelectFields = array() Массив полей записей, которые будут возвращены функцией. Можно
  * указать только те поля, которые необходимы. Если в массиве
  * присутствует значение "*", то будут возвращены все доступные
  * поля.<br><br> Значение по умолчанию - пустой массив array() - означает,
  * что будут возвращены все поля основной таблицы запроса.
  *
  *
  *
  * @return CDBResult <p>Возвращается объект класса CDBResult, содержащий набор
  * ассоциативных массивов параметров типов плательщиков с
  * ключами:</p> <table class="tnormal" width="100%"> <tr> <th width="15%">Ключ</th> <th>Описание</th>
  * </tr> <tr> <td>ID</td> <td>Код типа плательщика.</td> </tr> <tr> <td>LID</td> <td>Код
  * сайта.</td> </tr> <tr> <td>LIDS</td> <td>Фильтрация/выборка всех сайтов, к
  * которым привязан тип плательщика.</td> </tr> <tr> <td>NAME</td> <td>Название
  * типа плательщика.</td> </tr> <tr> <td>SORT</td> <td>Индекс сортировки.</td> </tr> <tr>
  * <td>ACTIVE</td> <td>Флаг активности пользователя [Y|N].</td> </tr> </table> <p>Если в
  * качестве параметра arGroupBy передается пустой массив, то функция
  * вернет число записей, удовлетворяющих фильтру.</p> <a name="examples"></a>
  *
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?
  * // Выведем переключатели для выбора типа плательщика для текущего сайта
  * $db_ptype = CSalePersonType::GetList(Array("SORT" =&gt; "ASC"), Array("LID"=&gt;SITE_ID));
  * $bFirst = True;
  * while ($ptype = $db_ptype-&gt;Fetch())
  * {
  *    ?&gt;&lt;input type="radio" name="PERSON_TYPE" value="&lt;?echo $ptype["ID"] ?&gt;"&lt;?if ($bFirst) echo " checked";?&gt;&gt;&lt;?echo $ptype["NAME"] ?&gt;&lt;br&gt;&lt;?
  *    $bFirst = <i>false</i>;
  * }
  * ?&gt;
  * </pre>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalepersontype/csalepersontype__getlist.2dca23fd.php
  * @author Bitrix
  */
 public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
 {
     global $DB;
     if (!is_array($arOrder) && !is_array($arFilter)) {
         $arOrder = strval($arOrder);
         $arFilter = strval($arFilter);
         if (strlen($arOrder) > 0 && strlen($arFilter) > 0) {
             $arOrder = array($arOrder => $arFilter);
         } else {
             $arOrder = array();
         }
         if (is_array($arGroupBy)) {
             $arFilter = $arGroupBy;
         } else {
             $arFilter = array();
         }
         $arGroupBy = false;
     }
     if (empty($arSelectFields)) {
         $arSelectFields = array("ID", "LID", "NAME", "SORT", "ACTIVE");
     }
     if (is_set($arFilter, "LID") && !empty($arFilter["LID"])) {
         $arFilter["LIDS"] = $arFilter["LID"];
         unset($arFilter["LID"]);
     }
     // FIELDS -->
     $arFields = array("ID" => array("FIELD" => "PT.ID", "TYPE" => "int"), "LID" => array("FIELD" => "PT.LID", "TYPE" => "string"), "LIDS" => array("FIELD" => "PTS.SITE_ID", "TYPE" => "string", "FROM" => "LEFT JOIN b_sale_person_type_site PTS ON (PT.ID = PTS.PERSON_TYPE_ID)"), "NAME" => array("FIELD" => "PT.NAME", "TYPE" => "string"), "SORT" => array("FIELD" => "PT.SORT", "TYPE" => "int"), "ACTIVE" => array("FIELD" => "PT.ACTIVE", "TYPE" => "char"));
     // <-- FIELDS
     $arSqls = CSaleOrder::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
     $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "DISTINCT", $arSqls["SELECT"]);
     if (is_array($arGroupBy) && count($arGroupBy) == 0) {
         $strSql = "SELECT " . $arSqls["SELECT"] . " " . "FROM b_sale_person_type PT " . "\t" . $arSqls["FROM"] . " ";
         if (strlen($arSqls["WHERE"]) > 0) {
             $strSql .= "WHERE " . $arSqls["WHERE"] . " ";
         }
         if (strlen($arSqls["GROUPBY"]) > 0) {
             $strSql .= "GROUP BY " . $arSqls["GROUPBY"] . " ";
         }
         //echo "!1!=".htmlspecialcharsbx($strSql)."<br>";
         $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         if ($arRes = $dbRes->Fetch()) {
             return $arRes["CNT"];
         } else {
             return False;
         }
     }
     $strSql = "SELECT " . $arSqls["SELECT"] . " " . "FROM b_sale_person_type PT " . "\t" . $arSqls["FROM"] . " ";
     if (strlen($arSqls["WHERE"]) > 0) {
         $strSql .= "WHERE " . $arSqls["WHERE"] . " ";
     }
     if (strlen($arSqls["GROUPBY"]) > 0) {
         $strSql .= "GROUP BY " . $arSqls["GROUPBY"] . " ";
     }
     if (strlen($arSqls["ORDERBY"]) > 0) {
         $strSql .= "ORDER BY " . $arSqls["ORDERBY"] . " ";
     }
     if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) <= 0) {
         $strSql_tmp = "SELECT COUNT('x') as CNT " . "FROM b_sale_person_type PT " . "\t" . $arSqls["FROM"] . " ";
         if (strlen($arSqls["WHERE"]) > 0) {
             $strSql_tmp .= "WHERE " . $arSqls["WHERE"] . " ";
         }
         if (strlen($arSqls["GROUPBY"]) > 0) {
             $strSql_tmp .= "GROUP BY " . $arSqls["GROUPBY"] . " ";
         }
         //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>";
         $dbRes = $DB->Query($strSql_tmp, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $cnt = 0;
         if (strlen($arSqls["GROUPBY"]) <= 0) {
             if ($arRes = $dbRes->Fetch()) {
                 $cnt = $arRes["CNT"];
             }
         } else {
             // FOR MYSQL!!! ANOTHER CODE FOR ORACLE
             $cnt = $dbRes->SelectedRowsCount();
         }
         $dbRes = new CDBResult();
         //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>";
         $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
     } else {
         if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) > 0) {
             $strSql .= "LIMIT " . IntVal($arNavStartParams["nTopCount"]);
         }
         //echo "!3!=".htmlspecialcharsbx($strSql)."<br>";
         $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     }
     $arPT = array();
     $arResTmp = array();
     while ($arRes = $dbRes->Fetch()) {
         if (IntVal($arRes["ID"]) > 0) {
             if (!in_array($arRes["ID"], $arPT)) {
                 $arPT[] = $arRes["ID"];
             }
             $arResTmp[] = $arRes;
         }
     }
     if (!empty($arPT) && is_array($arPT)) {
         $strSql = "SELECT * from b_sale_person_type_site WHERE PERSON_TYPE_ID IN (" . implode(",", $arPT) . ")";
         $dbRes1 = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         while ($arRes1 = $dbRes1->Fetch()) {
             $arRes2[$arRes1["PERSON_TYPE_ID"]][] = $arRes1["SITE_ID"];
         }
     }
     foreach ($arResTmp as $k => $v) {
         $arResTmp[$k]["LIDS"] = $arRes2[$v["ID"]];
     }
     $dbRes = new CDBResult();
     $dbRes->InitFromArray($arResTmp);
     return $dbRes;
 }
Beispiel #28
0
 function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array(), $arParams = array())
 {
     global $DB, $arSocNetAllowedEntityTypes, $USER, $USER_FIELD_MANAGER;
     $arSocNetAllowedSubscribeEntityTypesDesc = CSocNetAllowed::GetAllowedEntityTypesDesc();
     $obUserFieldsSql = new CUserTypeSQL();
     $obUserFieldsSql->SetEntity("SONET_LOG", "L.ID");
     $obUserFieldsSql->SetSelect($arSelectFields);
     $obUserFieldsSql->SetFilter($arFilter);
     $obUserFieldsSql->SetOrder($arOrder);
     if (count($arSelectFields) <= 0) {
         $arSelectFields = array("ID", "TMP_ID", "ENTITY_TYPE", "ENTITY_ID", "USER_ID", "EVENT_ID", "LOG_DATE", "LOG_UPDATE", "TITLE_TEMPLATE", "TITLE", "MESSAGE", "TEXT_MESSAGE", "URL", "MODULE_ID", "CALLBACK_FUNC", "EXTERNAL_ID", "SITE_ID", "PARAMS", "COMMENTS_COUNT", "ENABLE_COMMENTS", "SOURCE_ID", "GROUP_NAME", "GROUP_OWNER_ID", "GROUP_INITIATE_PERMS", "GROUP_VISIBLE", "GROUP_OPENED", "GROUP_IMAGE_ID", "USER_NAME", "USER_LAST_NAME", "USER_SECOND_NAME", "USER_LOGIN", "USER_PERSONAL_PHOTO", "USER_PERSONAL_GENDER", "CREATED_BY_NAME", "CREATED_BY_LAST_NAME", "CREATED_BY_SECOND_NAME", "CREATED_BY_LOGIN", "CREATED_BY_PERSONAL_PHOTO", "CREATED_BY_PERSONAL_GENDER", "RATING_TYPE_ID", "RATING_ENTITY_ID", "RATING_TOTAL_VALUE", "RATING_TOTAL_VOTES", "RATING_TOTAL_POSITIVE_VOTES", "RATING_TOTAL_NEGATIVE_VOTES", "RATING_USER_VOTE_VALUE", "SOURCE_TYPE");
         if (!isset($arParams["USE_FAVORITES"]) || $arParams["USE_FAVORITES"] != "N") {
             $arSelectFields[] = "FAVORITES_USER_ID";
         }
     }
     static $arFields1 = array("ID" => array("FIELD" => "L.ID", "TYPE" => "int"), "TMP_ID" => array("FIELD" => "L.TMP_ID", "TYPE" => "int"), "SOURCE_ID" => array("FIELD" => "L.SOURCE_ID", "TYPE" => "int"), "ENTITY_TYPE" => array("FIELD" => "L.ENTITY_TYPE", "TYPE" => "string"), "ENTITY_ID" => array("FIELD" => "L.ENTITY_ID", "TYPE" => "int"), "USER_ID" => array("FIELD" => "L.USER_ID", "TYPE" => "int"), "EVENT_ID" => array("FIELD" => "L.EVENT_ID", "TYPE" => "string"), "LOG_DATE" => array("FIELD" => "L.LOG_DATE", "TYPE" => "datetime"), "LOG_DATE_TS" => array("FIELD" => "UNIX_TIMESTAMP(L.LOG_DATE)", "TYPE" => "int"), "LOG_UPDATE" => array("FIELD" => "L.LOG_UPDATE", "TYPE" => "datetime"), "TITLE_TEMPLATE" => array("FIELD" => "L.TITLE_TEMPLATE", "TYPE" => "string"), "TITLE" => array("FIELD" => "L.TITLE", "TYPE" => "string"), "MESSAGE" => array("FIELD" => "L.MESSAGE", "TYPE" => "string"), "TEXT_MESSAGE" => array("FIELD" => "L.TEXT_MESSAGE", "TYPE" => "string"), "URL" => array("FIELD" => "L.URL", "TYPE" => "string"), "MODULE_ID" => array("FIELD" => "L.MODULE_ID", "TYPE" => "string"), "CALLBACK_FUNC" => array("FIELD" => "L.CALLBACK_FUNC", "TYPE" => "string"), "EXTERNAL_ID" => array("FIELD" => "L.EXTERNAL_ID", "TYPE" => "string"), "PARAMS" => array("FIELD" => "L.PARAMS", "TYPE" => "string"), "COMMENTS_COUNT" => array("FIELD" => "L.COMMENTS_COUNT", "TYPE" => "int"), "ENABLE_COMMENTS" => array("FIELD" => "L.ENABLE_COMMENTS", "TYPE" => "string"), "SOURCE_TYPE" => array("FIELD" => "L.SOURCE_TYPE", "TYPE" => "string"), "GROUP_NAME" => array("FIELD" => "G.NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_sonet_group G ON (L.ENTITY_TYPE = 'G' AND L.ENTITY_ID = G.ID)"), "GROUP_OWNER_ID" => array("FIELD" => "G.OWNER_ID", "TYPE" => "int", "FROM" => "LEFT JOIN b_sonet_group G ON (L.ENTITY_TYPE = 'G' AND L.ENTITY_ID = G.ID)"), "GROUP_INITIATE_PERMS" => array("FIELD" => "G.INITIATE_PERMS", "TYPE" => "string", "FROM" => "LEFT JOIN b_sonet_group G ON (L.ENTITY_TYPE = 'G' AND L.ENTITY_ID = G.ID)"), "GROUP_VISIBLE" => array("FIELD" => "G.VISIBLE", "TYPE" => "string", "FROM" => "LEFT JOIN b_sonet_group G ON (L.ENTITY_TYPE = 'G' AND L.ENTITY_ID = G.ID)"), "GROUP_OPENED" => array("FIELD" => "G.OPENED", "TYPE" => "string", "FROM" => "LEFT JOIN b_sonet_group G ON (L.ENTITY_TYPE = 'G' AND L.ENTITY_ID = G.ID)"), "GROUP_IMAGE_ID" => array("FIELD" => "G.IMAGE_ID", "TYPE" => "int", "FROM" => "LEFT JOIN b_sonet_group G ON (L.ENTITY_TYPE = 'G' AND L.ENTITY_ID = G.ID)"), "USER_NAME" => array("FIELD" => "U.NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (L.ENTITY_TYPE = 'U' AND L.ENTITY_ID = U.ID)"), "USER_LAST_NAME" => array("FIELD" => "U.LAST_NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (L.ENTITY_TYPE = 'U' AND L.ENTITY_ID = U.ID)"), "USER_SECOND_NAME" => array("FIELD" => "U.SECOND_NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (L.ENTITY_TYPE = 'U' AND L.ENTITY_ID = U.ID)"), "USER_LOGIN" => array("FIELD" => "U.LOGIN", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (L.ENTITY_TYPE = 'U' AND L.ENTITY_ID = U.ID)"), "USER_PERSONAL_PHOTO" => array("FIELD" => "U.PERSONAL_PHOTO", "TYPE" => "int", "FROM" => "LEFT JOIN b_user U ON (L.ENTITY_TYPE = 'U' AND L.ENTITY_ID = U.ID)"), "USER_PERSONAL_GENDER" => array("FIELD" => "U.PERSONAL_GENDER", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (L.ENTITY_TYPE = 'U' AND L.ENTITY_ID = U.ID)"), "CREATED_BY_NAME" => array("FIELD" => "U1.NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U1 ON L.USER_ID = U1.ID"), "CREATED_BY_LAST_NAME" => array("FIELD" => "U1.LAST_NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U1 ON L.USER_ID = U1.ID"), "CREATED_BY_SECOND_NAME" => array("FIELD" => "U1.SECOND_NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U1 ON L.USER_ID = U1.ID"), "CREATED_BY_LOGIN" => array("FIELD" => "U1.LOGIN", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U1 ON L.USER_ID = U1.ID"), "CREATED_BY_PERSONAL_PHOTO" => array("FIELD" => "U1.PERSONAL_PHOTO", "TYPE" => "int", "FROM" => "LEFT JOIN b_user U1 ON L.USER_ID = U1.ID"), "CREATED_BY_PERSONAL_GENDER" => array("FIELD" => "U1.PERSONAL_GENDER", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U1 ON L.USER_ID = U1.ID"), "USER_ID|COMMENT_USER_ID" => array("FIELD" => "L.USER_ID|LC.USER_ID", "WHERE" => array("CSocNetLog", "GetSimpleOrQuery"), "FROM" => "LEFT JOIN b_sonet_log_comment LC ON LC.LOG_ID = L.ID"));
     $arFields = array("RATING_TYPE_ID" => array("FIELD" => "L.RATING_TYPE_ID", "TYPE" => "string"), "RATING_ENTITY_ID" => array("FIELD" => "L.RATING_ENTITY_ID", "TYPE" => "int"), "RATING_TOTAL_VALUE" => array("FIELD" => $DB->IsNull('RG.TOTAL_VALUE', '0'), "TYPE" => "double", "FROM" => "LEFT JOIN b_rating_voting RG ON L.RATING_TYPE_ID = RG.ENTITY_TYPE_ID AND L.RATING_ENTITY_ID = RG.ENTITY_ID"), "RATING_TOTAL_VOTES" => array("FIELD" => $DB->IsNull('RG.TOTAL_VOTES', '0'), "TYPE" => "double", "FROM" => "LEFT JOIN b_rating_voting RG ON L.RATING_TYPE_ID = RG.ENTITY_TYPE_ID AND L.RATING_ENTITY_ID = RG.ENTITY_ID"), "RATING_TOTAL_POSITIVE_VOTES" => array("FIELD" => $DB->IsNull('RG.TOTAL_POSITIVE_VOTES', '0'), "TYPE" => "int", "FROM" => "LEFT JOIN b_rating_voting RG ON L.RATING_TYPE_ID = RG.ENTITY_TYPE_ID AND L.RATING_ENTITY_ID = RG.ENTITY_ID"), "RATING_TOTAL_NEGATIVE_VOTES" => array("FIELD" => $DB->IsNull('RG.TOTAL_NEGATIVE_VOTES', '0'), "TYPE" => "int", "FROM" => "LEFT JOIN b_rating_voting RG ON L.RATING_TYPE_ID = RG.ENTITY_TYPE_ID AND L.RATING_ENTITY_ID = RG.ENTITY_ID"));
     if (isset($USER) && is_object($USER)) {
         $arFields["RATING_USER_VOTE_VALUE"] = array("FIELD" => $DB->IsNull('RV.VALUE', '0'), "TYPE" => "double", "FROM" => "LEFT JOIN b_rating_vote RV ON L.RATING_TYPE_ID = RV.ENTITY_TYPE_ID AND L.RATING_ENTITY_ID = RV.ENTITY_ID AND RV.USER_ID = " . intval($USER->GetID()));
         if (!isset($arParams["USE_FAVORITES"]) || $arParams["USE_FAVORITES"] != "N") {
             $join_type = "LEFT";
             $field_value = $DB->IsNull("SLF.USER_ID", "0");
             foreach ($arFilter as $key => $value) {
                 if (strpos($key, "FAVORITES_USER_ID") !== false) {
                     $join_type = "INNER";
                     $field_value = "SLF.USER_ID";
                     break;
                 }
             }
             $arFields["FAVORITES_USER_ID"] = array("FIELD" => $field_value, "TYPE" => "double", "FROM" => $join_type . " JOIN b_sonet_log_favorites SLF ON L.ID = SLF.LOG_ID AND SLF.USER_ID = " . intval($USER->GetID()));
         }
     }
     if (isset($USER) && is_object($USER) && $USER->IsAuthorized() && $arParams["USE_FOLLOW"] == "Y") {
         $default_follow = CSocNetLogFollow::GetDefaultValue($USER->GetID());
         $default_field = $default_follow == "Y" ? "LOG_UPDATE" : "LOG_DATE";
         $arFields["DATE_FOLLOW"] = array("FIELD" => "CASE\n\t\t\t\t\tWHEN LFW.USER_ID IS NULL\n\t\t\t\t\t\tTHEN L." . $default_field . "\n\t\t\t\t\tWHEN LFW.FOLLOW_DATE IS NOT NULL\n\t\t\t\t\t\tTHEN LFW.FOLLOW_DATE\n\t\t\t\t\tWHEN LFW.TYPE = 'Y'\n\t\t\t\t\t\tTHEN L.LOG_UPDATE\n\t\t\t\t\tELSE L.LOG_DATE\n\t\t\t\tEND", "TYPE" => "datetime", "FROM" => "LEFT JOIN b_sonet_log_follow LFW ON LFW.USER_ID = " . $USER->GetID() . " AND LFW.REF_ID = L.ID AND LFW.CODE = " . $DB->Concat("'L'", "L.ID"));
         $arFields["FOLLOW"] = array("FIELD" => "CASE\n\t\t\t\t\tWHEN LFW.USER_ID IS NULL\n\t\t\t\t\t\tTHEN '" . $default_follow . "'\n\t\t\t\t\tELSE LFW.TYPE\n\t\t\t\tEND", "TYPE" => "string", "FROM" => "LEFT JOIN b_sonet_log_follow LFW ON LFW.USER_ID = " . $USER->GetID() . " AND LFW.REF_ID = L.ID AND LFW.CODE = " . $DB->Concat("'L'", "L.ID"));
         if (!in_array("FOLLOW", $arSelectFields)) {
             $arSelectFields[] = "FOLLOW";
         }
     }
     if (array_key_exists("SITE_ID", $arFilter)) {
         $arFields["SITE_ID"] = array("FIELD" => "SLS.SITE_ID", "TYPE" => "string", "FROM" => "LEFT JOIN b_sonet_log_site SLS ON L.ID = SLS.LOG_ID");
         if (is_array($arFilter["SITE_ID"])) {
             $site_cnt = 0;
             foreach ($arFilter["SITE_ID"] as $site_id_tmp) {
                 if ($site_id_tmp) {
                     $site_cnt++;
                 }
             }
             $strDistinct = $site_cnt > 1 ? " DISTINCT " : " ";
         } else {
             $strDistinct = " ";
         }
         foreach ($arSelectFields as $i => $strFieldTmp) {
             if ($strFieldTmp == "SITE_ID") {
                 unset($arSelectFields[$i]);
             }
         }
         foreach ($arOrder as $by => $order) {
             if (!in_array($by, $arSelectFields)) {
                 $arSelectFields[] = $by;
             }
         }
     } else {
         $arFields["SITE_ID"] = array("FIELD" => "L.SITE_ID", "TYPE" => "string");
         $strDistinct = " ";
     }
     if (array_key_exists("USER_ID", $arFilter) && !array_key_exists("ENTITY_TYPE", $arFilter)) {
         $arCBFilterEntityType = array();
         foreach ($arSocNetAllowedSubscribeEntityTypesDesc as $entity_type_tmp => $arEntityTypeTmp) {
             if (array_key_exists("USE_CB_FILTER", $arEntityTypeTmp) && $arEntityTypeTmp["USE_CB_FILTER"] == "Y") {
                 $arCBFilterEntityType[] = $entity_type_tmp;
             }
         }
         if (is_array($arCBFilterEntityType) && count($arCBFilterEntityType) > 0) {
             $arFilter["ENTITY_TYPE"] = $arCBFilterEntityType;
         }
     }
     if (array_key_exists("LOG_RIGHTS", $arFilter)) {
         $Rights = array();
         if (is_array($arFilter["LOG_RIGHTS"])) {
             foreach ($arFilter["LOG_RIGHTS"] as $str) {
                 if (trim($str)) {
                     $Rights[] = trim($str);
                 }
             }
         } elseif (trim($arFilter["LOG_RIGHTS"])) {
             $Rights = trim($arFilter["LOG_RIGHTS"]);
         }
         unset($arFilter["LOG_RIGHTS"]);
         if (is_array($Rights) && !empty($Rights) || !is_array($Rights)) {
             $arFilter["LOG_RIGHTS"] = $Rights;
             $arFields["LOG_RIGHTS"] = array("FIELD" => "SLR0.GROUP_CODE", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_log_right SLR0 ON L.ID = SLR0.LOG_ID");
         }
         if (is_array($Rights) && count($Rights) > 1) {
             $strDistinct = " DISTINCT ";
         }
     }
     if (array_key_exists("USER_ID|COMMENT_USER_ID", $arFilter)) {
         $strDistinct = " DISTINCT ";
     }
     if ($arParams["IS_CRM"] == "Y") {
         $events = GetModuleEvents("socialnetwork", "OnFillSocNetLogFields");
         while ($arEvent = $events->Fetch()) {
             ExecuteModuleEventEx($arEvent, array(&$arFields));
         }
     }
     $arFields = array_merge($arFields1, $arFields);
     $arSqls = CSocNetGroup::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql);
     $listEvents = GetModuleEvents("socialnetwork", "OnBuildSocNetLogSql");
     while ($arEvent = $listEvents->Fetch()) {
         ExecuteModuleEventEx($arEvent, array(&$arFields, &$arOrder, &$arFilter, &$arGroupBy, &$arSelectFields, &$arSqls));
     }
     $r = $obUserFieldsSql->GetFilter();
     if (strlen($r) > 0) {
         $strSqlUFFilter = " (" . $r . ") ";
     }
     $arSqls["RIGHTS"] = "";
     $arSqls["CRM_RIGHTS"] = "";
     if (!empty($arParams) && (array_key_exists("CHECK_RIGHTS", $arParams) && $arParams["CHECK_RIGHTS"] == "Y" || array_key_exists("CHECK_CRM_RIGHTS", $arParams) && $arParams["CHECK_CRM_RIGHTS"] == "Y") && !array_key_exists("USER_ID", $arParams) && is_object($USER)) {
         $arParams["USER_ID"] = $USER->GetID();
     }
     if (!empty($arParams) && array_key_exists("USER_ID", $arParams) && $arParams["CHECK_CRM_RIGHTS"] != "Y") {
         $arParams["CHECK_RIGHTS"] = "Y";
     }
     if (!empty($arParams) && ($arParams["USE_SUBSCRIBE"] == "Y" || $arParams["USE_FOLLOW"] == "Y")) {
         if (!array_key_exists("SUBSCRIBE_USER_ID", $arParams)) {
             if (array_key_exists("USER_ID", $arParams) && intval($arParams["USER_ID"]) > 0) {
                 $arParams["SUBSCRIBE_USER_ID"] = $arParams["USER_ID"];
             } elseif (is_object($USER)) {
                 $arParams["SUBSCRIBE_USER_ID"] = $USER->GetID();
             }
         }
         if ($arParams["USE_SUBSCRIBE"] == "Y" && !array_key_exists("MY_ENTITIES", $arParams)) {
             foreach ($arSocNetAllowedSubscribeEntityTypesDesc as $entity_type_tmp => $arEntityTypeTmp) {
                 if (array_key_exists("HAS_MY", $arEntityTypeTmp) && $arEntityTypeTmp["HAS_MY"] == "Y" && array_key_exists("CLASS_MY", $arEntityTypeTmp) && array_key_exists("METHOD_MY", $arEntityTypeTmp) && strlen($arEntityTypeTmp["CLASS_MY"]) > 0 && strlen($arEntityTypeTmp["METHOD_MY"]) > 0 && method_exists($arEntityTypeTmp["CLASS_MY"], $arEntityTypeTmp["METHOD_MY"])) {
                     $arMyEntities[$entity_type_tmp] = call_user_func(array($arEntityTypeTmp["CLASS_MY"], $arEntityTypeTmp["METHOD_MY"]));
                 }
             }
             $arParams["MY_ENTITIES"] = $arMyEntities;
         }
     }
     if (!empty($arParams) && array_key_exists("CHECK_RIGHTS", $arParams) && $arParams["CHECK_RIGHTS"] == "Y" && array_key_exists("USER_ID", $arParams)) {
         $acc = new CAccess();
         $acc->UpdateCodes();
         $arSqls["RIGHTS"] = "EXISTS ( SELECT SLR.ID FROM b_sonet_log_right SLR\n\t\t\t\tLEFT JOIN b_user_access UA ON (UA.ACCESS_CODE = SLR.GROUP_CODE AND UA.USER_ID = " . (is_object($USER) ? intval($USER->GetID()) : 0) . ")\n\t\t\t\tWHERE L.ID = SLR.LOG_ID " . (is_object($USER) && $USER->IsAuthorized() && $arParams["MY_GROUPS_ONLY"] == "Y" ? " AND (\n\t\t\t\t\t\t\t\t(SLR.GROUP_CODE LIKE 'SG%' AND (UA.ACCESS_CODE = SLR.GROUP_CODE AND UA.USER_ID = " . intval($USER->GetID()) . ")) \n\t\t\t\t\t\t\t\tOR SLR.GROUP_CODE = 'U" . intval($USER->GetID()) . "'\n\t\t\t\t\t\t\t)" : " AND (\n\t\t\t\t\t\t\t\t0=1 " . (is_object($USER) && CSocNetUser::IsCurrentUserModuleAdmin() ? " OR SLR.GROUP_CODE = 'SA'" : "") . (is_object($USER) && $USER->IsAuthorized() ? " OR (SLR.GROUP_CODE = 'AU')" : "") . " OR (SLR.GROUP_CODE = 'G2')" . (is_object($USER) && $USER->IsAuthorized() ? " OR (UA.ACCESS_CODE = SLR.GROUP_CODE AND UA.USER_ID = " . intval($USER->GetID()) . ")" : "") . "\n\t\t\t\t\t\t\t)") . ")";
     }
     if (!empty($arParams) && array_key_exists("CHECK_CRM_RIGHTS", $arParams) && $arParams["CHECK_CRM_RIGHTS"] == "Y" && array_key_exists("USER_ID", $arParams)) {
         $permParams = array('ALIAS_PREFIX' => 'L', 'PERM_TYPE' => 'READ', 'FILTER_PARAMS' => isset($arParams['CUSTOM_FILTER_PARAMS']) ? $arParams['CUSTOM_FILTER_PARAMS'] : array(), 'OPTIONS' => array('ENTITY_TYPE_COLUMN' => 'ENTITY_TYPE', 'IDENTITY_COLUMN' => 'ENTITY_ID'));
         $altPerms = array();
         $events = GetModuleEvents("socialnetwork", "OnBuildSocNetLogPerms");
         while ($arEvent = $events->Fetch()) {
             ExecuteModuleEventEx($arEvent, array(&$altPerms, $permParams));
         }
         if (!empty($altPerms)) {
             foreach ($altPerms as $permSql) {
                 if ($permSql === false) {
                     //Access denied
                     $dbRes = new CDBResult();
                     $dbRes->InitFromArray(array());
                     return $dbRes;
                 }
                 if (is_string($permSql) && $permSql !== '') {
                     if ($arSqls['CRM_RIGHTS'] !== '') {
                         $arSqls['CRM_RIGHTS'] .= ' AND ';
                     }
                     $arSqls['CRM_RIGHTS'] = $permSql;
                 }
             }
         }
     }
     if ($arParams["USE_SUBSCRIBE"] == "Y" && intval($arParams["SUBSCRIBE_USER_ID"]) > 0) {
         $arSqls["SUBSCRIBE"] = CSocNetLogEvents::GetSQL($arParams["SUBSCRIBE_USER_ID"], is_array($arParams["MY_ENTITIES"]) ? $arParams["MY_ENTITIES"] : array(), $arParams["TRANSPORT"], $arParams["VISIBLE"]);
         $arParams["MIN_ID_JOIN"] = true;
     }
     $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", $strDistinct, $arSqls["SELECT"]);
     $strMinIDJoin = "";
     if (is_array($arGroupBy) && count($arGroupBy) == 0) {
         $strSql = "SELECT " . $arSqls["SELECT"] . " " . $obUserFieldsSql->GetSelect() . " " . "FROM b_sonet_log L " . $strMinIDJoin . "\t" . $arSqls["FROM"] . " " . $obUserFieldsSql->GetJoin("L.ID") . " ";
         $bWhereStarted = false;
         if (strlen($arSqls["WHERE"]) > 0) {
             $strSql .= "WHERE " . $arSqls["WHERE"] . " ";
             $bWhereStarted = true;
         }
         if (strlen($strSqlUFFilter) > 0) {
             $strSql .= ($bWhereStarted ? " AND " : " WHERE ") . $strSqlUFFilter . " ";
             $bWhereStarted = true;
         }
         if (strlen($arSqls["RIGHTS"]) > 0) {
             $strSql .= ($bWhereStarted ? " AND " : " WHERE ") . $arSqls["RIGHTS"] . " ";
             $bWhereStarted = true;
         }
         if (strlen($arSqls["CRM_RIGHTS"]) > 0) {
             $strSql .= ($bWhereStarted ? " AND " : " WHERE ") . $arSqls["CRM_RIGHTS"] . " ";
             $bWhereStarted = true;
         }
         if (strlen($arSqls["SUBSCRIBE"]) > 0) {
             $strSql .= ($bWhereStarted ? " AND " : " WHERE ") . "(" . $arSqls["SUBSCRIBE"] . ") ";
             $bWhereStarted = true;
         }
         if (strlen($arSqls["GROUPBY"]) > 0) {
             $strSql .= "GROUP BY " . $arSqls["GROUPBY"] . " ";
         }
         //echo "!1!=".htmlspecialcharsbx($strSql)."<br>";
         $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         if ($arRes = $dbRes->Fetch()) {
             return $arRes["CNT"];
         } else {
             return False;
         }
     }
     $strSql = "SELECT " . $arSqls["SELECT"] . " " . $obUserFieldsSql->GetSelect() . " " . "FROM b_sonet_log L " . $strMinIDJoin . "\t" . $arSqls["FROM"] . " " . $obUserFieldsSql->GetJoin("L.ID") . " ";
     $bWhereStarted = false;
     if (strlen($arSqls["WHERE"]) > 0) {
         $strSql .= "WHERE " . $arSqls["WHERE"] . " ";
         $bWhereStarted = true;
     }
     if (strlen($strSqlUFFilter) > 0) {
         $strSql .= ($bWhereStarted ? " AND " : " WHERE ") . $strSqlUFFilter . " ";
         $bWhereStarted = true;
     }
     if (strlen($arSqls["RIGHTS"]) > 0) {
         $strSql .= ($bWhereStarted ? " AND " : " WHERE ") . $arSqls["RIGHTS"] . " ";
         $bWhereStarted = true;
     }
     if (strlen($arSqls["CRM_RIGHTS"]) > 0) {
         $strSql .= ($bWhereStarted ? " AND " : " WHERE ") . $arSqls["CRM_RIGHTS"] . " ";
         $bWhereStarted = true;
     }
     if (strlen($arSqls["SUBSCRIBE"]) > 0) {
         $strSql .= ($bWhereStarted ? " AND " : " WHERE ") . "(" . $arSqls["SUBSCRIBE"] . ") ";
         $bWhereStarted = true;
     }
     if (strlen($arSqls["GROUPBY"]) > 0) {
         $strSql .= "GROUP BY " . $arSqls["GROUPBY"] . " ";
     }
     if (strlen($arSqls["ORDERBY"]) > 0) {
         $strSql .= "ORDER BY " . $arSqls["ORDERBY"] . " ";
     }
     if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) <= 0) {
         if (isset($arNavStartParams["nRecordCount"]) && intval($arNavStartParams["nRecordCount"]) > 0) {
             $cnt = intval($arNavStartParams["nRecordCount"]);
         } else {
             $strSql_tmp = "SELECT COUNT('x') as CNT " . $obUserFieldsSql->GetSelect() . " " . "FROM b_sonet_log L " . $strMinIDJoin . "\t" . $arSqls["FROM"] . " " . $obUserFieldsSql->GetJoin("L.ID") . " ";
             $bWhereStarted = false;
             if (strlen($arSqls["WHERE"]) > 0) {
                 $strSql_tmp .= "WHERE " . $arSqls["WHERE"] . " ";
                 $bWhereStarted = true;
             }
             if (strlen($strSqlUFFilter) > 0) {
                 $strSql_tmp .= ($bWhereStarted ? " AND " : " WHERE ") . $strSqlUFFilter . " ";
                 $bWhereStarted = true;
             }
             if (strlen($arSqls["RIGHTS"]) > 0) {
                 $strSql_tmp .= ($bWhereStarted ? " AND " : " WHERE ") . $arSqls["RIGHTS"] . " ";
                 $bWhereStarted = true;
             }
             if (strlen($arSqls["CRM_RIGHTS"]) > 0) {
                 $strSql_tmp .= ($bWhereStarted ? " AND " : " WHERE ") . $arSqls["CRM_RIGHTS"] . " ";
                 $bWhereStarted = true;
             }
             if (strlen($arSqls["SUBSCRIBE"]) > 0) {
                 $strSql_tmp .= ($bWhereStarted ? " AND " : " WHERE ") . "(" . $arSqls["SUBSCRIBE"] . ") ";
                 $bWhereStarted = true;
             }
             if (strlen($arSqls["GROUPBY"]) > 0) {
                 $strSql_tmp .= "GROUP BY " . $arSqls["GROUPBY"] . " ";
             }
             //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>";
             $dbRes = $DB->Query($strSql_tmp, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
             $cnt = 0;
             if (strlen($arSqls["GROUPBY"]) <= 0) {
                 if ($arRes = $dbRes->Fetch()) {
                     $cnt = $arRes["CNT"];
                 }
             } else {
                 // рнкэйн дкъ MYSQL!!! дкъ ORACLE дпсцни йнд
                 $cnt = $dbRes->SelectedRowsCount();
             }
             // for empty 2nd page show
             if ($arNavStartParams["bSkipPageReset"] && $arNavStartParams["nPageSize"] >= $cnt) {
                 $cnt = $arNavStartParams["nPageSize"] + $cnt;
             }
         }
         $dbRes = new CDBResult();
         //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>";
         $dbRes->SetUserFields($USER_FIELD_MANAGER->GetUserFields("SONET_LOG"));
         $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
     } else {
         if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) > 0) {
             $strSql .= "LIMIT " . intval($arNavStartParams["nTopCount"]);
         }
         //echo "!3!=".htmlspecialcharsbx($strSql)."<br>";
         $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $dbRes->SetUserFields($USER_FIELD_MANAGER->GetUserFields("SONET_LOG"));
     }
     return $dbRes;
 }
Beispiel #29
0
$arParts = array();
$arSize = array();
foreach($arTmpFiles as $k=>$ar)
{
	if (preg_match('#^(.*\.(enc|tar|gz))(\.[0-9]+)?$#',$ar['NAME'],$regs))
	{
		$arParts[intval($ar['BUCKET_ID']).$regs[1]]++;
		$arSize[$regs[1]] += $ar['SIZE'];
		if (!$regs[3])
			$arFiles[] = $ar;
	}
}

$rsDirContent = new CDBResult;
$rsDirContent->InitFromArray($arFiles);
$rsDirContent->sSessInitAdd = $path;
$rsDirContent = new CAdminResult($rsDirContent, $sTableID);
$rsDirContent->NavStart(20);

// установка строки навигации
$lAdmin->NavText($rsDirContent->GetNavPrint(GetMessage("MAIN_DUMP_FILE_PAGES")));
$lAdmin->AddHeaders(array(
		array("id"=>"NAME", "content"=>GetMessage("MAIN_DUMP_FILE_NAME"), "sort"=>"name", "default"=>true),
		array("id"=>"SIZE","content"=>GetMessage("MAIN_DUMP_FILE_SIZE1"), "sort"=>"size", "default"=>true),
		$arAllBucket ? array("id"=>"PLACE","content"=>GetMessage("MAIN_DUMP_LOCATION"), "default"=>true) : null,
		array("id"=>"DATE", "content"=>GetMessage('MAIN_DUMP_FILE_TIMESTAMP'), "sort"=>"timestamp", "default"=>true)
));

while($Elem = $rsDirContent->NavNext(true, "f_"))
{
Beispiel #30
0
$arLID = array();
$db_res = CLanguage::GetList($by_ = "sort", $order_ = "asc");
if ($db_res && ($res = $db_res->GetNext())) {
    do {
        $arLID[$res["LID"]] = $res["LID"];
    } while ($res = $db_res->GetNext());
}
$lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "default" => true), array("id" => "LID", "content" => GetMessage("LANG"), "default" => true), array("id" => "EVENT_NAME", "content" => GetMessage("EVENT_TYPE"), "sort" => "event_name", "default" => true), array("id" => "NAME", "content" => GetMessage("EVENT_NAME"), "default" => true), array("id" => "DESCRIPTION", "content" => GetMessage("EVENT_DESCRIPTION"), "default" => false), array("id" => "TEMPLATES", "content" => GetMessage("EVENT_TEMPLATES"), "default" => false)));
$db_res = CEventType::GetListEx(array($by => $order), $arFilter, array("type" => "full"));
if ($db_res && ($res = $db_res->Fetch())) {
    do {
        $arResult[] = $res;
    } while ($res = $db_res->Fetch());
}
$rsData = new CDBResult();
$rsData->InitFromArray($arResult);
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("PAGES")));
while ($arRes = $rsData->NavNext(true, "f_")) {
    $arr = $f_ID;
    $f_ID = $f_EVENT_NAME;
    $row =& $lAdmin->AddRow($f_EVENT_NAME, $arRes, "type_edit.php?EVENT_NAME=" . $f_EVENT_NAME, GetMessage("type_admin_edit_title"));
    $row->AddViewField("ID", implode("<br />", $arr));
    $row->AddViewField("LID", implode("<br />", array_intersect($arLID, $f_LID)));
    $row->AddViewField("EVENT_NAME", "<a href=\"type_edit.php?EVENT_NAME=" . $f_EVENT_NAME . "\">" . $f_EVENT_NAME . "</a>");
    $row->AddViewField("NAME", $f_NAME);
    $row->AddViewField("DESCRIPTION", $f_DESCRIPTION);
    $templates = array();
    if (is_array($f_TEMPLATES) && !empty($f_TEMPLATES)) {
        $templates = array();