public static function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array()) { global $DB; if (count($arSelectFields) <= 0) { $arSelectFields = array("ID", "PATH", "EXPIRES", "LOCK_OWNER", "LOCK_DEPTH", "LOCK_TYPE", "LOCK_SCOPE", "CREATED", "MODIFIED"); } static $arFields = array("ID" => array("FIELD" => "L.ID", "TYPE" => "string"), "PATH" => array("FIELD" => "L.PATH", "TYPE" => "string"), "EXPIRES" => array("FIELD" => "L.EXPIRES", "TYPE" => "int"), "LOCK_OWNER" => array("FIELD" => "L.LOCK_OWNER", "TYPE" => "string"), "LOCK_DEPTH" => array("FIELD" => "L.LOCK_DEPTH", "TYPE" => "string"), "LOCK_TYPE" => array("FIELD" => "L.LOCK_TYPE", "TYPE" => "string"), "LOCK_SCOPE" => array("FIELD" => "L.LOCK_SCOPE", "TYPE" => "string"), "CREATED" => array("FIELD" => "L.CREATED", "TYPE" => "datetime"), "MODIFIED" => array("FIELD" => "L.MODIFIED", "TYPE" => "datetime")); $arSqls = CDav::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields); $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]); if (is_array($arGroupBy) && count($arGroupBy) == 0) { $strSql = "SELECT " . $arSqls["SELECT"] . " " . "FROM b_dav_locks L " . "\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_dav_locks L " . "\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_dav_locks L " . "\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.3!=".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__); } $dbRes = new CDavVirtualFileSystemResult($dbRes); return $dbRes; }
public static function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array()) { global $DB; if (count($arSelectFields) <= 0) { $arSelectFields = array("ID", "ENTITY_TYPE", "ENTITY_ID", "ACCOUNT_TYPE", "NAME", "SERVER_SCHEME", "SERVER_HOST", "SERVER_PORT", "SERVER_USERNAME", "SERVER_PASSWORD", "SERVER_PATH", "CREATED", "MODIFIED", "SYNCHRONIZED", "LAST_RESULT"); } static $arFields = array("ID" => array("FIELD" => "N.ID", "TYPE" => "int"), "ENTITY_TYPE" => array("FIELD" => "N.ENTITY_TYPE", "TYPE" => "string"), "ENTITY_ID" => array("FIELD" => "N.ENTITY_ID", "TYPE" => "int"), "ACCOUNT_TYPE" => array("FIELD" => "N.ACCOUNT_TYPE", "TYPE" => "string"), "NAME" => array("FIELD" => "N.NAME", "TYPE" => "string"), "SERVER_SCHEME" => array("FIELD" => "N.SERVER_SCHEME", "TYPE" => "string"), "SERVER_HOST" => array("FIELD" => "N.SERVER_HOST", "TYPE" => "string"), "SERVER_PORT" => array("FIELD" => "N.SERVER_PORT", "TYPE" => "int"), "SERVER_USERNAME" => array("FIELD" => "N.SERVER_USERNAME", "TYPE" => "string"), "SERVER_PASSWORD" => array("FIELD" => "N.SERVER_PASSWORD", "TYPE" => "string"), "SERVER_PATH" => array("FIELD" => "N.SERVER_PATH", "TYPE" => "string"), "CREATED" => array("FIELD" => "N.CREATED", "TYPE" => "datetime"), "MODIFIED" => array("FIELD" => "N.MODIFIED", "TYPE" => "datetime"), "SYNCHRONIZED" => array("FIELD" => "N.SYNCHRONIZED", "TYPE" => "datetime"), "LAST_RESULT" => array("FIELD" => "N.LAST_RESULT", "TYPE" => "string")); $arSqls = CDav::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields); $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]); if (is_array($arGroupBy) && count($arGroupBy) == 0) { $strSql = "SELECT " . $arSqls["SELECT"] . " " . "FROM b_dav_connections N " . "\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_dav_connections N " . "\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_dav_connections N " . "\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.3!=".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__); } $dbRes = new CDavConnectionResult($dbRes); return $dbRes; }