Example #1
0
 function GetList($arOrder = array('MODULE_ID' => 'asc', 'LETTER' => 'asc'), $arFilter = array())
 {
     global $DB;
     static $arFields = array("ID" => array("FIELD_NAME" => "T.ID", "FIELD_TYPE" => "int"), "NAME" => array("FIELD_NAME" => "T.NAME", "FIELD_TYPE" => "string"), "LETTER" => array("FIELD_NAME" => "T.LETTER", "FIELD_TYPE" => "string"), "MODULE_ID" => array("FIELD_NAME" => "T.MODULE_ID", "FIELD_TYPE" => "string"), "SYS" => array("FIELD_NAME" => "T.SYS", "FIELD_TYPE" => "string"), "BINDING" => array("FIELD_NAME" => "T.BINDING", "FIELD_TYPE" => "string"));
     $err_mess = CAllTask::err_mess() . "<br>Function: GetList<br>Line: ";
     $arSqlSearch = array();
     if (is_array($arFilter)) {
         foreach ($arFilter as $n => $val) {
             $n = strtoupper($n);
             if (strlen($val) <= 0 || strval($val) == "NOT_REF") {
                 continue;
             }
             if ($n == 'ID' || $n == 'MODULE_ID' || $n == 'BINDING' || $n == 'SYS') {
                 $arSqlSearch[] = GetFilterQuery($arFields[$n]["FIELD_NAME"], $val, 'N');
             } elseif (isset($arFields[$n])) {
                 $arSqlSearch[] = GetFilterQuery($arFields[$n]["FIELD_NAME"], $val);
             }
         }
     }
     $strOrderBy = '';
     foreach ($arOrder as $by => $order) {
         if (isset($arFields[strtoupper($by)])) {
             $strOrderBy .= $arFields[strtoupper($by)]["FIELD_NAME"] . ' ' . (strtolower($order) == 'desc' ? 'desc' . (strtoupper($DB->type) == "ORACLE" ? " NULLS LAST" : "") : 'asc' . (strtoupper($DB->type) == "ORACLE" ? " NULLS FIRST" : "")) . ',';
         }
     }
     if ($strOrderBy != '') {
         $strOrderBy = "ORDER BY " . rtrim($strOrderBy, ",");
     }
     $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
     $strSql = "\n\t\t\tSELECT\n\t\t\t\tT.ID, T.NAME, T.DESCRIPTION, T.MODULE_ID, T.LETTER, T.SYS, T.BINDING\n\t\t\tFROM\n\t\t\t\tb_task T\n\t\t\tWHERE\n\t\t\t\t" . $strSqlSearch . "\n\t\t\t" . $strOrderBy;
     $res = $DB->Query($strSql, false, $err_mess . __LINE__);
     $arResult = array();
     while ($arRes = $res->Fetch()) {
         $arRes['TITLE'] = CTask::GetLangTitle($arRes['NAME']);
         $arRes['DESC'] = CTask::GetLangDescription($arRes['NAME'], $arRes['DESCRIPTION']);
         $arResult[] = $arRes;
     }
     $res->InitFromArray($arResult);
     return $res;
 }
Example #2
0
 function GetList($arOrder = array('MODULE_ID' => 'asc', 'LETTER' => 'asc'), $arFilter = array())
 {
     global $DB, $USER, $CACHE_MANAGER;
     if (CACHED_b_task !== false) {
         $cacheId = "b_task" . md5(serialize($arOrder) . "." . serialize($arFilter));
         if ($CACHE_MANAGER->Read(CACHED_b_task, $cacheId, "b_task")) {
             $arResult = $CACHE_MANAGER->Get($cacheId);
             $res = new CDBResult();
             $res->InitFromArray($arResult);
             return $res;
         }
     }
     static $arFields = array("ID" => array("FIELD_NAME" => "T.ID", "FIELD_TYPE" => "int"), "NAME" => array("FIELD_NAME" => "T.NAME", "FIELD_TYPE" => "string"), "LETTER" => array("FIELD_NAME" => "T.LETTER", "FIELD_TYPE" => "string"), "MODULE_ID" => array("FIELD_NAME" => "T.MODULE_ID", "FIELD_TYPE" => "string"), "SYS" => array("FIELD_NAME" => "T.SYS", "FIELD_TYPE" => "string"), "BINDING" => array("FIELD_NAME" => "T.BINDING", "FIELD_TYPE" => "string"));
     $err_mess = CAllTask::err_mess() . "<br>Function: GetList<br>Line: ";
     $arSqlSearch = array();
     $strSqlSearch = "";
     if (is_array($arFilter)) {
         $filter_keys = array_keys($arFilter);
         for ($i = 0, $l = count($filter_keys); $i < $l; $i++) {
             $n = strtoupper($filter_keys[$i]);
             $val = $arFilter[$filter_keys[$i]];
             if (strlen($val) <= 0 || strval($val) == "NOT_REF") {
                 continue;
             }
             if ($n == 'ID') {
                 $arSqlSearch[] = GetFilterQuery("T.ID", $val, 'N');
             } elseif (isset($arFields[$n])) {
                 $arSqlSearch[] = GetFilterQuery($arFields[$n]["FIELD_NAME"], $val);
             }
         }
     }
     $strOrderBy = '';
     foreach ($arOrder as $by => $order) {
         if (isset($arFields[strtoupper($by)])) {
             $strOrderBy .= $arFields[strtoupper($by)]["FIELD_NAME"] . ' ' . (strtolower($order) == 'desc' ? 'desc' . (strtoupper($DB->type) == "ORACLE" ? " NULLS LAST" : "") : 'asc' . (strtoupper($DB->type) == "ORACLE" ? " NULLS FIRST" : "")) . ',';
         }
     }
     if (strlen($strOrderBy) > 0) {
         $strOrderBy = "ORDER BY " . rtrim($strOrderBy, ",");
     }
     $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
     $strSql = "\n\t\t\tSELECT\n\t\t\t\tT.ID, T.NAME, T.DESCRIPTION, T.MODULE_ID, T.LETTER, T.SYS, T.BINDING\n\t\t\tFROM\n\t\t\t\tb_task T\n\t\t\tWHERE\n\t\t\t\t{$strSqlSearch}\n\t\t\t{$strOrderBy}";
     $res = $DB->Query($strSql, false, $err_mess . __LINE__);
     $arResult = array();
     while ($arRes = $res->Fetch()) {
         $arRes['TITLE'] = CTask::GetLangTitle($arRes['NAME']);
         $arRes['DESC'] = CTask::GetLangDescription($arRes['NAME'], $arRes['DESCRIPTION']);
         $arResult[] = $arRes;
     }
     $res->InitFromArray($arResult);
     if (CACHED_b_task !== false) {
         $CACHE_MANAGER->Set($cacheId, $arResult);
     }
     return $res;
 }
Example #3
0
	function GetList($arOrder = array('MODULE_ID'=>'asc','LETTER'=>'asc'),$arFilter=array())
	{
		global $DB, $CACHE_MANAGER;;

		if(CACHED_b_task !== false)
		{
			$cacheId = "b_task".md5(serialize($arOrder).".".serialize($arFilter));
			if($CACHE_MANAGER->Read(CACHED_b_task, $cacheId, "b_task"))
			{
				$arResult = $CACHE_MANAGER->Get($cacheId);
				$res = new CDBResult;
				$res->InitFromArray($arResult);
				return $res;
			}
		}

		static $arFields = array(
			"ID" => array("FIELD_NAME" => "T.ID", "FIELD_TYPE" => "int"),
			"NAME" => array("FIELD_NAME" => "T.NAME", "FIELD_TYPE" => "string"),
			"LETTER" => array("FIELD_NAME" => "T.LETTER", "FIELD_TYPE" => "string"),
			"MODULE_ID" => array("FIELD_NAME" => "T.MODULE_ID", "FIELD_TYPE" => "string"),
			"SYS" => array("FIELD_NAME" => "T.SYS", "FIELD_TYPE" => "string"),
			"BINDING" => array("FIELD_NAME" => "T.BINDING", "FIELD_TYPE" => "string")
		);

		$err_mess = (CAllTask::err_mess())."<br>Function: GetList<br>Line: ";
		$arSqlSearch = array();
		if(is_array($arFilter))
		{
			foreach($arFilter as $n => $val)
			{
				$n = strtoupper($n);
				if(strlen($val) <= 0 || strval($val) == "NOT_REF")
					continue;

				if(isset($arFields[$n]))
				{
					$arSqlSearch[] = GetFilterQuery($arFields[$n]["FIELD_NAME"], $val, ($n == 'NAME'? "Y" : "N"));
				}
			}
		}

		$strOrderBy = '';
		foreach($arOrder as $by=>$order)
			if(isset($arFields[strtoupper($by)]))
				$strOrderBy .= $arFields[strtoupper($by)]["FIELD_NAME"].' '.(strtolower($order)=='desc'?'desc'.(strtoupper($DB->type)=="ORACLE"?" NULLS LAST":""):'asc'.(strtoupper($DB->type)=="ORACLE"?" NULLS FIRST":"")).',';

		if($strOrderBy <> '')
			$strOrderBy = "ORDER BY ".rtrim($strOrderBy, ",");

		$strSqlSearch = GetFilterSqlSearch($arSqlSearch);
		$strSql = "
			SELECT
				T.ID, T.NAME, T.DESCRIPTION, T.MODULE_ID, T.LETTER, T.SYS, T.BINDING
			FROM
				b_task T
			WHERE
				".$strSqlSearch."
			".$strOrderBy;

		$res = $DB->Query($strSql, false, $err_mess.__LINE__);

		$arResult = array();
		while($arRes = $res->Fetch())
		{
			$arRes['TITLE'] = CTask::GetLangTitle($arRes['NAME'], $arRes['MODULE_ID']);
			$arRes['DESC'] = CTask::GetLangDescription($arRes['NAME'], $arRes['DESCRIPTION'], $arRes['MODULE_ID']);
			$arResult[] = $arRes;
		}
		$res->InitFromArray($arResult);

		if(CACHED_b_task !== false)
		{
			/** @noinspection PhpUndefinedVariableInspection */
			$CACHE_MANAGER->Set($cacheId, $arResult);
		}

		return $res;
	}