function CheckFilter() // проверка введенных полей { global $strError, $find_timestamp_1, $find_timestamp_2; $str = ""; if (strlen(trim($find_timestamp_1))>0 || strlen(trim($find_timestamp_2))>0) { $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($find_timestamp_1,"D.M.Y"),"d.m.Y"); $date2_stm = MkDateTime(FmtDate($find_timestamp_2,"D.M.Y")." 23:59","d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_timestamp_1))>0) $str.= GetMessage("MAIN_WRONG_DATE_FROM")."<br>"; else $date_1_ok = true; if (!$date2_stm && strlen(trim($find_timestamp_2))>0) $str.= GetMessage("MAIN_WRONG_DATE_TILL")."<br>"; elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm)>0) $str.= GetMessage("MAIN_FROM_TILL_DATE")."<br>"; } $strError .= $str; if(strlen($str)>0) { global $lAdmin; $lAdmin->AddFilterError($str); return false; } return true; }
function CheckFilter($FilterArr) { foreach ($FilterArr as $f) { global ${$f}; } $str = ""; if (strlen(trim($find_last_exec)) > 0) { $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($find_last_exec, "D.M.Y"), "d.m.Y"); if (!$date1_stm && strlen(trim($find_last_exec)) > 0) { $str .= GetMessage("MAIN_AGENT_WRONG_LAST_EXEC") . "<br>"; } else { $date_1_ok = true; } } if (strlen(trim($find_next_exec)) > 0) { $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($find_next_exec, "D.M.Y"), "d.m.Y"); if (!$date1_stm && strlen(trim($find_next_exec)) > 0) { $str .= GetMessage("MAIN_AGENT_WRONG_NEXT_EXEC") . "<br>"; } else { $date_1_ok = true; } } if (strlen($str) > 0) { global $lAdmin; $lAdmin->AddFilterError($str); return false; } return true; }
function CheckFilter($arFilterFields) { global $lAdmin; $FilterArr = $arFilterFields; reset($FilterArr); foreach ($FilterArr as $f) { global ${$f}; } $str = ""; if (strlen(trim($find_timestamp_1)) > 0 || strlen(trim($find_timestamp_2)) > 0) { $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($find_timestamp_1, "D.M.Y"), "d.m.Y"); $date2_stm = MkDateTime(FmtDate($find_timestamp_2, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_timestamp_1)) > 0) { $str .= GetMessage("MAIN_WRONG_TIMESTAMP_FROM") . "<br>"; } else { $date_1_ok = true; } if (!$date2_stm && strlen(trim($find_timestamp_2)) > 0) { $str .= GetMessage("MAIN_WRONG_TIMESTAMP_TILL") . "<br>"; } elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm) > 0) { $str .= GetMessage("MAIN_FROM_TILL_TIMESTAMP") . "<br>"; } } $lAdmin->AddFilterError($str); if (strlen($str) > 0) { return false; } return true; }
function CheckFilter() { if (isset($_REQUEST['del_filter']) && $_REQUEST['del_filter'] == 'Y') { return false; } global $strError, $find_timestamp_1, $find_timestamp_2, $lAdmin; $str = ""; if (strlen(trim($find_timestamp_1)) > 0 || strlen(trim($find_timestamp_2)) > 0) { $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($find_timestamp_1, "D.M.Y"), "d.m.Y"); $date2_stm = MkDateTime(FmtDate($find_timestamp_2, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_timestamp_1)) > 0) { $str .= GetMessage("MAIN_WRONG_DATE_FROM") . "<br>"; } else { $date_1_ok = true; } if (!$date2_stm && strlen(trim($find_timestamp_2)) > 0) { $str .= GetMessage("MAIN_WRONG_DATE_TILL") . "<br>"; } elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm) > 0) { $str .= GetMessage("MAIN_FROM_TILL_DATE") . "<br>"; } } $strError .= $str; if (strlen($str) > 0) { $lAdmin->AddFilterError($str); return false; } return true; }
function CheckFilter() // проверка введенных полей { global $FilterArr, $lAdmin; foreach ($FilterArr as $f) global $$f; $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($find_date1,"D.M.Y"),"d.m.Y"); $date2_stm = MkDateTime(FmtDate($find_date2,"D.M.Y")." 23:59","d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_date1))>0) $lAdmin->AddFilterError(GetMessage("MAIN_WRONG_DATE_FROM")); else $date_1_ok = true; if(!$date2_stm && strlen(trim($find_date2))>0) $lAdmin->AddFilterError(GetMessage("MAIN_WRONG_DATE_TILL")); elseif($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm)>0) $lAdmin->AddFilterError(GetMessage("MAIN_FROM_TILL_DATE")); return count($lAdmin->arFilterErrors)==0; }
function CheckFilter($FilterArr) { global $strError; foreach($FilterArr as $f) global $$f; $str = ""; if(strlen(trim($find_timestamp_1))>0 || strlen(trim($find_timestamp_2))>0) { $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($find_timestamp_1,"D.M.Y"),"d.m.Y"); $date2_stm = MkDateTime(FmtDate($find_timestamp_2,"D.M.Y")." 23:59","d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_timestamp_1))>0) $str.= GetMessage("MAIN_WRONG_TIMESTAMP_FROM")."<br>"; else $date_1_ok = true; if (!$date2_stm && strlen(trim($find_timestamp_2))>0) $str.= GetMessage("MAIN_WRONG_TIMESTAMP_TILL")."<br>"; elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm)>0) $str.= GetMessage("MAIN_FROM_TILL_TIMESTAMP")."<br>"; } if(strlen(trim($find_last_login_1))>0 || strlen(trim($find_last_login_2))>0) { $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($find_last_login_1,"D.M.Y"),"d.m.Y"); $date2_stm = MkDateTime(FmtDate($find_last_login_2,"D.M.Y")." 23:59","d.m.Y H:i"); if(!$date1_stm && strlen(trim($find_last_login_1))>0) $str.= GetMessage("MAIN_WRONG_LAST_LOGIN_FROM")."<br>"; else $date_1_ok = true; if(!$date2_stm && strlen(trim($find_last_login_2))>0) $str.= GetMessage("MAIN_WRONG_LAST_LOGIN_TILL")."<br>"; elseif($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm)>0) $str.= GetMessage("MAIN_FROM_TILL_LAST_LOGIN")."<br>"; } $strError .= $str; if(strlen($str)>0) { global $lAdmin; $lAdmin->AddFilterError($str); return false; } return true; }
function CheckFilter() { global $strError, $FilterArr; reset($FilterArr); foreach ($FilterArr as $f) { global ${$f}; } $str = ""; if (strlen(trim($find_timestamp_1)) > 0 || strlen(trim($find_timestamp_2)) > 0) { $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($find_timestamp_1, "D.M.Y"), "d.m.Y"); $date2_stm = MkDateTime(FmtDate($find_timestamp_2, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_timestamp_1)) > 0) { $str .= GetMessage("SALE_WRONG_TIMESTAMP_FROM") . "<br>"; } else { $date_1_ok = true; } if (!$date2_stm && strlen(trim($find_timestamp_2)) > 0) { $str .= GetMessage("SALE_WRONG_TIMESTAMP_TILL") . "<br>"; } elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm) > 0) { $str .= GetMessage("SALE_FROM_TILL_TIMESTAMP") . "<br>"; } } if (strlen(trim($find_last_login_1)) > 0 || strlen(trim($find_last_login_2)) > 0) { $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($find_last_login_1, "D.M.Y"), "d.m.Y"); $date2_stm = MkDateTime(FmtDate($find_last_login_2, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_last_login_1)) > 0) { $str .= GetMessage("SALE_WRONG_LAST_LOGIN_FROM") . "<br>"; } else { $date_1_ok = true; } if (!$date2_stm && strlen(trim($find_last_login_2)) > 0) { $str .= GetMessage("SALE_WRONG_LAST_LOGIN_TILL") . "<br>"; } elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm) > 0) { $str .= GetMessage("SALE_FROM_TILL_LAST_LOGIN") . "<br>"; } } $strError .= $str; if (strlen($str) > 0) { return false; } else { return true; } }
function CheckFilter() { global $FilterArr, $lAdmin; foreach ($FilterArr as $f) { global ${$f}; } if (strlen(trim($find_update_1)) > 0 || strlen(trim($find_update_2)) > 0) { $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($find_update_1, "D.M.Y"), "d.m.Y"); $date2_stm = MkDateTime(FmtDate($find_update_2, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_update_1)) > 0) { $lAdmin->AddFilterError(GetMessage("POST_WRONG_UPDATE_FROM")); } else { $date_1_ok = true; } if (!$date2_stm && strlen(trim($find_update_2)) > 0) { $lAdmin->AddFilterError(GetMessage("POST_WRONG_UPDATE_TILL")); } elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm) > 0) { $lAdmin->AddFilterError(GetMessage("POST_FROM_TILL_UPDATE")); } } if (strlen(trim($find_insert_1)) > 0 || strlen(trim($find_insert_2)) > 0) { $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($find_insert_1, "D.M.Y"), "d.m.Y"); $date2_stm = MkDateTime(FmtDate($find_insert_2, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_insert_1)) > 0) { $lAdmin->AddFilterError(GetMessage("POST_WRONG_INSERT_FROM")); } else { $date_1_ok = true; } if (!$date2_stm && strlen(trim($find_insert_2)) > 0) { $lAdmin->AddFilterError(GetMessage("POST_WRONG_INSERT_TILL")); } elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm) > 0) { $lAdmin->AddFilterError(GetMessage("POST_FROM_TILL_INSERT")); } } return count($lAdmin->arFilterErrors) == 0; }
function CheckFilter() { global $FilterArr, $lAdmin; foreach ($FilterArr as $f) { global ${$f}; } if (strlen(trim($find_last_executed_1)) > 0 || strlen(trim($find_last_executed_2)) > 0) { $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($find_last_executed_1, "D.M.Y"), "d.m.Y"); $date2_stm = MkDateTime(FmtDate($find_last_executed_2, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_last_executed_1)) > 0) { $lAdmin->AddFilterError(GetMessage("rub_wrong_generation_from")); } else { $date_1_ok = true; } if (!$date2_stm && strlen(trim($find_last_executed_2)) > 0) { $lAdmin->AddFilterError(GetMessage("rub_wrong_generation_till")); } elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm) > 0) { $lAdmin->AddFilterError(GetMessage("rub_wrong_generation_from_till")); } } return count($lAdmin->arFilterErrors) == 0; }
/** * <p>Возвращает список почтовых шаблонов в виде объекта класса <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cdbresult/index.php">CDBResult</a>.</p> * * * * * @param string &$by = "id" Ссылка на переменную с полем для сортировки, может принимать * значения: <ul> <li> <b>site_id</b> - идентификатор сайта;</li> <li> <b>subject</b> - * тема;</li> <li> <b>timestamp_x</b> - дата изменения;</li> <li> <b>event_name</b> - тип * события;</li> <li> <b>id</b> - ID шаблона;</li> <li> <b>active</b> - активность;</li> </ul> * * * * @param string &$order = "desc" Ссылка на переменную с порядком сортировки, может принимать * значения: <ul> <li> <b>asc</b> - по возрастанию;</li> <li> <b>desc</b> - по * убыванию;</li> </ul> * * * * @param array $filter Массив вида array("фильтруемое поле"=>"значение" [, ...]), может * принимать значения: <ul> <li> <b>ID</b> - ID шаблона;</li> <li> <b>TYPE</b> - код и * заголовок типа события (допустима <a * href="http://dev.1c-bitrix.ru/user_help/general/filter.php">сложная логика</a>);</li> <li> <b>TYPE_ID</b> - * код типа события (допустима <a * href="http://dev.1c-bitrix.ru/user_help/general/filter.php">сложная логика</a>);</li> <li> * <b>TIMESTAMP_1</b> - левая часть интервала ("c") для поиска по дате * изменения;</li> <li> <b>TIMESTAMP_2</b> - правая часть интервала ("по") для * поиска по дате изменения;</li> <li> <b>SITE_ID</b> - идентификатор сайта * (допустимо задание массива для поиска по логике "или", либо * допустимо использование <a * href="http://dev.1c-bitrix.ru/user_help/general/filter.php">сложной логики</a>);</li> <li> <b>ACTIVE</b> - * флаг активности (Y|N);</li> <li> <b>FROM</b> - поле "От кого" (допустима <a * href="http://dev.1c-bitrix.ru/user_help/general/filter.php">сложная логика</a>);</li> <li> <b>TO</b> - * поле "Кому" (допустима <a href="http://dev.1c-bitrix.ru/user_help/general/filter.php">сложная * логика</a>);</li> <li> <b>BCC</b> - поле "Скрытая копия" (допустима <a * href="http://dev.1c-bitrix.ru/user_help/general/filter.php">сложная логика</a>);</li> <li> <b>SUBJECT</b> - * по теме сообщения (допустима <a * href="http://dev.1c-bitrix.ru/user_help/general/filter.php">сложная логика</a>);</li> <li> <b>BODY_TYPE</b> * - по типу тела сообщения (text|html);</li> <li> <b>BODY</b> - по телу сообщения * (допустима <a href="http://dev.1c-bitrix.ru/user_help/general/filter.php">сложная * логика</a>);</li> </ul> * * * * @return CDBResult * * * <h4>Example</h4> * <pre> * <? * $arFilter = Array( * "ID" => "12 | 134", * "TYPE" => "контракт & рекл", * "TYPE_ID" => "ADV_BANNER | ADV_CONTRACT", * "TIMESTAMP_1" => "12.11.2001", * "TIMESTAMP_2" => "12.11.2005", * "SITE_ID" => "ru | en", * "ACTIVE" => "Y", * "FROM" => "bitrixsoft.ru", * "TO" => "#TO#", * "BCC" => "admin", * "SUBJECT" => "конктракт", * "BODY_TYPE" => "text", * "BODY" => "auto" * ); * $rsMess = <b>CEventMessage::GetList</b>($by="site_id", $order="desc", $arFilter); * $is_filtered = $rsMess->is_filtered; * ?> * </pre> * * * * <h4>See Also</h4> * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/main/reference/ceventmessage/index.php">Поля шаблона * почтового сообщения</a> </li> <li> <a * href="http://dev.1c-bitrix.ru/api_help/main/reference/ceventmessage/getbyid.php">CEventMessage::GetByID</a> </li> <li> * <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cdbresult/index.php">Класс CDBResult</a> </li> </ul><a * name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/main/reference/ceventmessage/getlist.php * @author Bitrix */ public static function GetList(&$by, &$order, $arFilter=Array()) { $err_mess = "<br>Class: CEventMessage<br>File: ".__FILE__."<br>Function: GetList<br>Line: "; global $DB, $USER; $arSqlSearch = Array(); $strSqlSearch = ""; $bIsLang = false; 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 "ID": $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N"; $arSqlSearch[] = GetFilterQuery("M.ID", $val, $match); break; case "TYPE": $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("M.EVENT_NAME, T.NAME", $val, $match); break; case "EVENT_NAME": case "TYPE_ID": $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N"; $arSqlSearch[] = GetFilterQuery("M.EVENT_NAME", $val, $match); break; case "TIMESTAMP_1": $arSqlSearch[] = "M.TIMESTAMP_X >= FROM_UNIXTIME('".MkDateTime(FmtDate($val,"D.M.Y"),"d.m.Y")."')"; break; case "TIMESTAMP_2": $arSqlSearch[] = "M.TIMESTAMP_X <= FROM_UNIXTIME('".MkDateTime(FmtDate($val,"D.M.Y")." 23:59:59","d.m.Y")."')"; break; case "LID": case "LANG": case "SITE_ID": if (is_array($val)) $val = implode(" | ",$val); $arSqlSearch[] = GetFilterQuery("MS.SITE_ID",$val,"N"); $bIsLang = true; break; case "ACTIVE": $arSqlSearch[] = ($val=="Y") ? "M.ACTIVE = 'Y'" : "M.ACTIVE = 'N'"; break; case "FROM": $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("M.EMAIL_FROM", $val, $match); break; case "TO": $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("M.EMAIL_TO", $val, $match); break; case "BCC": $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("M.BCC", $val, $match); break; case "SUBJECT": $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("M.SUBJECT", $val, $match); break; case "BODY_TYPE": $arSqlSearch[] = ($val=="text") ? "M.BODY_TYPE = 'text'" : "M.BODY_TYPE = 'html'"; break; case "BODY": $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("M.MESSAGE", $val, $match); break; } } } if ($by == "id") $strSqlOrder = " ORDER BY M.ID "; elseif ($by == "active") $strSqlOrder = " ORDER BY M.ACTIVE "; elseif ($by == "event_name") $strSqlOrder = " ORDER BY M.EVENT_NAME "; elseif ($by == "from") $strSqlOrder = " ORDER BY M.EMAIL_FROM "; elseif ($by == "to") $strSqlOrder = " ORDER BY M.EMAIL_TO "; elseif ($by == "bcc") $strSqlOrder = " ORDER BY M.BCC "; elseif ($by == "body_type") $strSqlOrder = " ORDER BY M.BODY_TYPE "; elseif ($by == "subject") $strSqlOrder = " ORDER BY M.SUBJECT "; else { $strSqlOrder = " ORDER BY M.ID "; $by = "id"; } if ($order!="asc") { $strSqlOrder .= " desc "; $order = "desc"; } $strSqlSearch = GetFilterSqlSearch($arSqlSearch); $strSql = "SELECT M.ID, M.EVENT_NAME, M.ACTIVE, M.LID, ".($bIsLang? "MS.SITE_ID":"M.LID AS SITE_ID").", M.EMAIL_FROM, M.EMAIL_TO, M.SUBJECT, M.MESSAGE, M.BODY_TYPE, M.BCC, M.REPLY_TO, M.CC, M.IN_REPLY_TO, M.PRIORITY, M.FIELD1_NAME, M.FIELD1_VALUE, M.FIELD2_NAME, M.FIELD2_VALUE, ". $DB->DateToCharFunction("M.TIMESTAMP_X"). " TIMESTAMP_X, if(T.ID is null, M.EVENT_NAME, concat('[ ',T.EVENT_NAME,' ] ',ifnull(T.NAME,''))) EVENT_TYPE ". "FROM b_event_message M ". ($bIsLang?" LEFT JOIN b_event_message_site MS ON (M.ID = MS.EVENT_MESSAGE_ID)":"")." ". " LEFT JOIN b_event_type T ON (T.EVENT_NAME = M.EVENT_NAME and T.LID = '".LANGUAGE_ID."') ". "WHERE ". $strSqlSearch. $strSqlOrder; $res = $DB->Query($strSql, false, $err_mess.__LINE__); $res->is_filtered = (IsFiltered($strSqlSearch)); return $res; }
public static function GetAbsent($users = false, $Params = array()) { global $DB; // Can be called from agent... So we have to create $USER if it is not exists $tempUser = CCalendar::TempUser(false, true); $curUserId = isset($Params['userId']) ? intVal($Params['userId']) : CCalendar::GetCurUserId(); $arUsers = array(); if ($users !== false && is_array($users)) { foreach ($users as $id) { if ($id > 0) { $arUsers[] = intVal($id); } } } if (!count($arUsers)) { $users = false; } // Part 1: select ordinary events $arFilter = array('CAL_TYPE' => 'user', 'DELETED' => 'N', 'ACCESSIBILITY' => 'absent'); if (isset($Params['fromLimit'])) { $arFilter['FROM_LIMIT'] = CCalendar::Date(CCalendar::Timestamp($Params['fromLimit'], false), true, false); } if (isset($Params['toLimit'])) { $arFilter['TO_LIMIT'] = CCalendar::Date(CCalendar::Timestamp($Params['toLimit'], false), true, false); } $arEvents = CCalendarEvent::GetList(array('arFilter' => $arFilter, 'getUserfields' => false, 'parseRecursion' => true, 'fetchAttendees' => false, 'fetchMeetings' => true, 'userId' => $curUserId, 'checkPermissions' => false, 'preciseLimits' => true)); // Part 2: select attendees CTimeZone::Disable(); if (count($arUsers) > 0) { $userQ = ' AND CA.USER_ID in (' . implode(',', $arUsers) . ')'; } else { $userQ = ''; } $strSql = "\n\t\t\tSELECT\n\t\t\t\tCA.EVENT_ID as ID, CA.USER_ID, CA.STATUS, CA.ACCESSIBILITY,\n\t\t\t\tCE.CAL_TYPE,CE.OWNER_ID,CE.NAME," . $DB->DateToCharFunction("CE.DT_FROM") . " as DT_FROM," . $DB->DateToCharFunction("CE.DT_TO") . " as DT_TO, CE.DT_LENGTH, CE.PRIVATE_EVENT, CE.ACCESSIBILITY, CE.IMPORTANCE, CE.IS_MEETING, CE.MEETING_HOST, CE.MEETING, CE.LOCATION, CE.RRULE, CE.EXRULE, CE.RDATE, CE.EXDATE,\n\t\t\t\tCES.SECT_ID\n\t\t\tFROM b_calendar_attendees CA\n\t\t\tLEFT JOIN\n\t\t\t\tb_calendar_event CE ON(CA.EVENT_ID=CE.ID)\n\t\t\tLEFT JOIN\n\t\t\t\tb_calendar_event_sect CES ON (CA.EVENT_ID=CES.EVENT_ID)\n\t\t\tWHERE\n\t\t\t\t\tCE.ID IS NOT NULL\n\t\t\t\tAND\n\t\t\t\t\tCE.DELETED='N'\n\t\t\t\tAND\n\t\t\t\t\tSTATUS='Y'\n\t\t\t\tAND\n\t\t\t\t\tCA.ACCESSIBILITY='absent'\n\t\t\t\t{$userQ}\n\t\t\t"; if (isset($arFilter['FROM_LIMIT'])) { $strSql .= "AND "; if (strtoupper($DB->type) == "MYSQL") { $strSql .= "CE.DT_TO>=FROM_UNIXTIME('" . MkDateTime(FmtDate($arFilter['FROM_LIMIT'], "D.M.Y"), "d.m.Y") . "')"; } elseif (strtoupper($DB->type) == "MSSQL") { $strSql .= "CE.DT_TO>=" . $DB->CharToDateFunction($arFilter['FROM_LIMIT'], "SHORT"); } elseif (strtoupper($DB->type) == "ORACLE") { $strSql .= "CE.DT_TO>=TO_DATE('" . FmtDate($arFilter['FROM_LIMIT'], "D.M.Y") . " 00:00:00','dd.mm.yyyy hh24:mi:ss')"; } } if ($arFilter['TO_LIMIT']) { $strSql .= "AND "; if (strtoupper($DB->type) == "MYSQL") { $strSql .= "CE.DT_FROM<=FROM_UNIXTIME('" . MkDateTime(FmtDate($arFilter['TO_LIMIT'], "D.M.Y") . " 23:59:59", "d.m.Y H:i:s") . "')"; } elseif (strtoupper($DB->type) == "MSSQL") { $strSql .= "CE.DT_FROM<=dateadd(day, 1, " . $DB->CharToDateFunction($arFilter['TO_LIMIT'], "SHORT") . ")"; } elseif (strtoupper($DB->type) == "ORACLE") { $strSql .= "CE.DT_FROM<=TO_DATE('" . FmtDate($arFilter['TO_LIMIT'], "D.M.Y") . " 23:59:59','dd.mm.yyyy hh24:mi:ss')"; } } $res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); $arEvents2 = array(); while ($event = $res->Fetch()) { $event = self::PreHandleEvent($event); if ($event['CAL_TYPE'] == 'user' && $event['IS_MEETING'] && $event['OWNER_ID'] == $event['USER_ID']) { continue; } if (self::CheckRecurcion($event)) { self::ParseRecursion($arEvents2, $event, array('fromLimit' => $arFilter["FROM_LIMIT"], 'toLimit' => $arFilter["TO_LIMIT"])); } else { self::HandleEvent($arEvents2, $event); } } CTimeZone::Enable(); $arEvents = array_merge($arEvents, $arEvents2); $bSocNet = CModule::IncludeModule("socialnetwork"); $result = array(); $settings = CCalendar::GetSettings(array('request' => false)); foreach ($arEvents as $event) { $userId = isset($event['USER_ID']) ? $event['USER_ID'] : $event['OWNER_ID']; if ($users !== false && !in_array($userId, $arUsers)) { continue; } if ($bSocNet && !CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $userId, "calendar")) { continue; } if ((!$event['CAL_TYPE'] != 'user' || $curUserId != $event['OWNER_ID']) && $curUserId != $event['CREATED_BY'] && !isset($arUserMeeting[$event['ID']])) { $sectId = $event['SECT_ID']; if (!$event['ACCESSIBILITY']) { $event['ACCESSIBILITY'] = 'busy'; } $private = $event['PRIVATE_EVENT'] && $event['CAL_TYPE'] == 'user'; $bManager = false; if (!$private && CCalendar::IsIntranetEnabled() && CModule::IncludeModule('intranet') && $event['CAL_TYPE'] == 'user' && $settings['dep_manager_sub']) { $bManager = in_array($curUserId, CCalendar::GetUserManagers($event['OWNER_ID'], true)); } if ($private || !CCalendarSect::CanDo('calendar_view_full', $sectId) && !$bManager) { if ($private) { $event['NAME'] = '[' . GetMessage('EC_ACCESSIBILITY_' . strtoupper($event['ACCESSIBILITY'])) . ']'; } else { if (!CCalendarSect::CanDo('calendar_view_title', $sectId)) { $event['NAME'] = '[' . GetMessage('EC_ACCESSIBILITY_' . strtoupper($event['ACCESSIBILITY'])) . ']'; } else { $event['NAME'] = $event['NAME'] . ' [' . GetMessage('EC_ACCESSIBILITY_' . strtoupper($event['ACCESSIBILITY'])) . ']'; } } } } $result[] = array('ID' => $event['ID'], 'NAME' => $event['NAME'], 'DATE_FROM' => $event['DT_FROM'], 'DATE_TO' => $event['DT_TO'], 'DT_FROM_TS' => $event['DT_FROM_TS'], 'DT_TO_TS' => $event['DT_TO_TS'], 'CREATED_BY' => $userId, 'DETAIL_TEXT' => '', 'USER_ID' => $userId); } // Sort by DT_FROM_TS usort($result, array('CCalendar', '_NearestSort')); CCalendar::TempUser($tempUser, false); return $result; }
public static function SetMaxDayTime($date) { return ConvertTimeStamp(MakeTimeStamp(FmtDate($date, 'YYYY-MM-DD') . ' 23:59:59', 'YYYY-MM-DD HH:MI:SS'), 'FULL'); }
/** * <p>Возвращает список групп в виде объекта класса <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cdbresult/index.php">CDBResult</a>.</p> * * * * * @param string &$by = "c_sort" Ссылка на переменную с полем для сортировки, может принимать * следующие значения: <ul> <li> <b>id</b> - ID группы </li> <li> <b>timestamp_x</b> - дата * изменения </li> <li> <b>name</b> - название </li> <li> <b>active</b> - активность </li> <li> * <b>c_sort</b> - порядок сортировки </li> <li> <b>description</b> - описание </li> <li> * <b>users</b> - кол-во пользователей входящих в группу </li> </ul> * * * * @param string &$order = "asc" Ссылка на переменную с порядком сортировки, может принимать * следующие значения: <ul> <li> <b>asc</b> - по возрастанию </li> <li> <b>desc</b> - по * убыванию </li> </ul> * * * * @param array $filter Массив для фильтрации пользователей. В массиве допустимы * следующие индексы: <ul> <li> <b>ID</b> - ID группы (допускается <a * href="http://dev.1c-bitrix.ru/user_help/general/filter.php">сложная логика</a>) </li> <li> * <b>TIMESTAMP_1</b> - дата изменения настроек группы "с" </li> <li> <b>TIMESTAMP_2</b> - * дата изменения настроек группы "по" </li> <li> <b>ACTIVE</b> - фильтр по * активности (Y|N) </li> <li> <b>ADMIN</b> - фильтр по типу группы ("Y" - * администраторы | "N" - не администраторы) </li> <li> <b>NAME</b> - по названию * (допускается <a href="http://dev.1c-bitrix.ru/user_help/general/filter.php">сложная логика</a>) * </li> <li> <b>DESCRIPTION</b> - по описанию (допускается <a * href="http://dev.1c-bitrix.ru/user_help/general/filter.php">сложная логика</a>) </li> <li> <b>USERS_1</b> - * кол-во пользователей "с" </li> <li> <b>USERS_2</b> - кол-во пользователей "по" * </li> </ul> * * * * @param string $SHOW_USERS_AMOUNT = "N" "Y" - в выборке будет присутствовать поле ("USERS") с количеством * пользователей в каждой группе; "N" - в выборке не будет поля с * количеством пользователей в каждой группе (по умолчанию); * * * * @return CDBResult * * * <h4>Example</h4> * <pre> * <? * $filter = Array * ( * "ID" => "1 | 2", * "TIMESTAMP_1" => "04.02.2004", // в формате текущего сайта * "TIMESTAMP_2" => "04.02.2005", * "ACTIVE" => "Y", * "NAME" => "Техподдержка", * "DESCRITION" => "специальная | поддержка", * "USERS_1" => "2", // от 2 пользователей * "USERS_2" => "10" // до 10 пользователей * ); * $rsGroups = <b>CGroup::GetList</b>(($by="c_sort"), ($order="desc"), $filter); // выбираем группы * $is_filtered = $rsGroups->is_filtered; // отфильтрована ли выборка ? * $rsGroups->NavStart(50); // разбиваем постранично по 50 записей * echo $rsGroups->NavPrint(GetMessage("PAGES")); // печатаем постраничную навигацию * while($rsGroups->NavNext(true, "f_")) : * echo "[".$f_ID."] ".$f_NAME." ".$f_DESCRIPTION."<br>"; * endwhile; * ?> * * Фильтровать можно по полю "STRING_ID" - символьному идентификатору группы. Например: * * // Возвращает группу по символьному идентификатору * function GetGroupByCode ($code) * { * $rsGroups = CGroup::GetList ($by = "c_sort", $order = "asc", Array ("STRING_ID" => $code)); * return $rsGroups->Fetch(); * } * * $rsGroups = CGroup::GetList($by = "c_sort", $order = "asc", array("STRING_ID"=>'groupe code|groupe code|groupe code')); * if(intval($rsGroups->SelectedRowsCount()) > 0) * { * while($arGroups = $rsGroups->Fetch()) * { * $arUsersGroups[] = $arGroups; * } * } * </pre> * * * * <h4>See Also</h4> * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cgroup/index.php#flds">Поля CGroup</a> </li> <li> * <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cgroup/getbyid.php">CGroup::GetByID</a> </li> </ul></b<a * name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/main/reference/cgroup/getlist.php * @author Bitrix */ public static function GetList(&$by, &$order, $arFilter = array(), $SHOW_USERS_AMOUNT = "N") { global $DB; $err_mess = CGroup::err_mess() . "<br>Function: GetList<br>Line: "; $arSqlSearch = $arSqlSearch_h = array(); $strSqlSearch_h = ""; 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; } } $key = strtoupper($key); $match_value_set = array_key_exists($key . "_EXACT_MATCH", $arFilter); switch ($key) { case "ID": $match = $match_value_set && $arFilter[$key . "_EXACT_MATCH"] == "N" ? "Y" : "N"; $arSqlSearch[] = GetFilterQuery("G.ID", $val, $match); break; case "TIMESTAMP_1": $arSqlSearch[] = "G.TIMESTAMP_X >= FROM_UNIXTIME('" . MkDateTime(FmtDate($val, "D.M.Y"), "d.m.Y") . "')"; break; case "TIMESTAMP_2": $arSqlSearch[] = "G.TIMESTAMP_X <= FROM_UNIXTIME('" . MkDateTime(FmtDate($val, "D.M.Y") . " 23:59:59", "d.m.Y") . "')"; break; case "ACTIVE": $arSqlSearch[] = $val == "Y" ? "G.ACTIVE='Y'" : "G.ACTIVE='N'"; break; case "ADMIN": if (COption::GetOptionString("main", "controller_member", "N") == "Y" && COption::GetOptionString("main", "~controller_limited_admin", "N") == "Y") { if ($val == "Y") { $arSqlSearch[] = "G.ID=0"; } break; } else { $arSqlSearch[] = $val == "Y" ? "G.ID=1" : "G.ID>1"; } break; case "NAME": $match = $match_value_set && $arFilter[$key . "_EXACT_MATCH"] == "Y" ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("G.NAME", $val, $match); break; case "STRING_ID": $match = $match_value_set && $arFilter[$key . "_EXACT_MATCH"] == "N" ? "Y" : "N"; $arSqlSearch[] = GetFilterQuery("G.STRING_ID", $val, $match); break; case "DESCRIPTION": $match = $match_value_set && $arFilter[$key . "_EXACT_MATCH"] == "Y" ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("G.DESCRIPTION", $val, $match); break; case "USERS_1": $SHOW_USERS_AMOUNT = "Y"; $arSqlSearch_h[] = "USERS>=" . intval($val); break; case "USERS_2": $SHOW_USERS_AMOUNT = "Y"; $arSqlSearch_h[] = "USERS<=" . intval($val); break; case "ANONYMOUS": if ($val == 'Y' || $val == 'N') { $arSqlSearch[] = "G.ANONYMOUS='" . $val . "'"; } break; } } foreach ($arSqlSearch_h as $condition) { $strSqlSearch_h .= " and (" . $condition . ") "; } } if (strtolower($by) == "id") { $strSqlOrder = " ORDER BY G.ID "; } elseif (strtolower($by) == "active") { $strSqlOrder = " ORDER BY G.ACTIVE "; } elseif (strtolower($by) == "timestamp_x") { $strSqlOrder = " ORDER BY G.TIMESTAMP_X "; } elseif (strtolower($by) == "c_sort") { $strSqlOrder = " ORDER BY G.C_SORT "; } elseif (strtolower($by) == "sort") { $strSqlOrder = " ORDER BY G.C_SORT, G.NAME, G.ID "; } elseif (strtolower($by) == "name") { $strSqlOrder = " ORDER BY G.NAME "; } elseif (strtolower($by) == "string_id") { $strSqlOrder = " ORDER BY G.STRING_ID "; } elseif (strtolower($by) == "description") { $strSqlOrder = " ORDER BY G.DESCRIPTION "; } elseif (strtolower($by) == "anonymous") { $strSqlOrder = " ORDER BY G.ANONYMOUS "; } elseif (strtolower($by) == "dropdown") { $strSqlOrder = " ORDER BY C_SORT, NAME "; } elseif (strtolower($by) == "users") { $strSqlOrder = " ORDER BY USERS "; $SHOW_USERS_AMOUNT = "Y"; } else { $strSqlOrder = " ORDER BY G.C_SORT "; $by = "c_sort"; } if (strtolower($order) == "desc") { $strSqlOrder .= " desc "; $order = "desc"; } else { $strSqlOrder .= " asc "; $order = "asc"; } $str_USERS = $str_TABLE = ""; if ($SHOW_USERS_AMOUNT == "Y") { $str_USERS = "count(distinct U.USER_ID)\t\t\t\t\t\tUSERS,"; $str_TABLE = "LEFT JOIN b_user_group U ON (U.GROUP_ID=G.ID AND ((U.DATE_ACTIVE_FROM IS NULL) OR (U.DATE_ACTIVE_FROM <= " . $DB->CurrentTimeFunction() . ")) AND ((U.DATE_ACTIVE_TO IS NULL) OR (U.DATE_ACTIVE_TO >= " . $DB->CurrentTimeFunction() . ")))"; } $strSqlSearch = GetFilterSqlSearch($arSqlSearch); $strSql = "\n\t\t\tSELECT\n\t\t\t\tG.ID, G.ACTIVE, G.C_SORT, G.ANONYMOUS, G.NAME, G.DESCRIPTION, G.STRING_ID,\n\t\t\t\t" . $str_USERS . "\n\t\t\t\tG.ID\t\t\t\t\t\t\t\t\t\tREFERENCE_ID,\n\t\t\t\tconcat(G.NAME, ' [', G.ID, ']')\t\t\t\t\tREFERENCE,\n\t\t\t\t" . $DB->DateToCharFunction("G.TIMESTAMP_X") . "\tTIMESTAMP_X\n\t\t\tFROM\n\t\t\t\tb_group G\n\t\t\t" . $str_TABLE . "\n\t\t\tWHERE\n\t\t\t" . $strSqlSearch . "\n\t\t\tGROUP BY\n\t\t\t\tG.ID, G.ACTIVE, G.C_SORT, G.TIMESTAMP_X, G.ANONYMOUS, G.NAME, G.STRING_ID, G.DESCRIPTION\n\t\t\tHAVING\n\t\t\t\t1=1\n\t\t\t\t" . $strSqlSearch_h . "\n\t\t\t" . $strSqlOrder; $res = $DB->Query($strSql, false, $err_mess . __LINE__); $res->is_filtered = IsFiltered($strSqlSearch) || strlen($strSqlSearch_h) > 0; return $res; }
//END BUYERS BASKET //BUYERS VIEWED PRODUCT $sTableID_tab5 = "t_stat_list_tab5"; $oSort_tab5 = new CAdminSorting($sTableID_tab5); $lAdmin_tab5 = new CAdminList($sTableID_tab5, $oSort_tab5); //FILTER VIEWED $arFilterFields = array("filter_viewed_date_visit", "filter_date_visit_from", "filter_date_visit_to", "filter_viewed_lid"); $lAdmin_tab5->InitFilter($arFilterFields); $arFilter = array(); $arFuserItems = CSaleUser::GetList(array("USER_ID" => $ID)); $arFilter["FUSER_ID"] = $arFuserItems["ID"]; if (strlen($filter_viewed_lid) > 0) { $arFilter["LID"] = trim($filter_viewed_lid); } if (strlen(trim($filter_date_visit_from)) > 0) { $arFilter["DATE_FROM"] = FmtDate($filter_date_visit_from, "D.M.Y"); } if (strlen(trim($filter_date_visit_to)) > 0) { if ($arDate = ParseDateTime($filter_date_visit_to, CSite::GetDateFormat("FULL", SITE_ID))) { if (StrLen($filter_date_visit_to) < 11) { $arDate["HH"] = 23; $arDate["MI"] = 59; $arDate["SS"] = 59; } $filter_date_visit_to = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"])); $arFilter["DATE_TO"] = $filter_date_visit_to; } else { $filter_date_visit_to = ""; } } if (strlen(trim($filter_date_visit_from_DAYS_TO_BACK)) > 0) {
function WF_GetHistoryList($ELEMENT_ID, &$by, &$order, $arFilter = array(), &$is_filtered) { $err_mess = "FILE: " . __FILE__ . "<br>LINE: "; global $DB; $ELEMENT_ID = intval($ELEMENT_ID); $strSqlSearch = ""; if (is_array($arFilter)) { foreach ($arFilter as $key => $val) { if (strlen($val) <= 0 || $val == "NOT_REF") { continue; } $val = $DB->ForSql($val); $key = strtoupper($key); switch ($key) { case "ID": $arr = explode(",", $val); if (!empty($arr)) { $arr = array_map("intval", $arr); $str = implode(", ", $arr); $strSqlSearch .= " and E.ID in (" . $str . ")"; } break; case "TIMESTAMP_FROM": $strSqlSearch .= " and E.TIMESTAMP_X>=FROM_UNIXTIME('" . MkDateTime(FmtDate($val, "D.M.Y"), "d.m.Y") . "')"; break; case "TIMESTAMP_TO": $strSqlSearch .= " and E.TIMESTAMP_X<=FROM_UNIXTIME('" . MkDateTime(FmtDate($val, "D.M.Y") . " 23:59:59", "d.m.Y H:i:s") . "')"; break; case "MODIFIED_BY": case "MODIFIED_USER_ID": $strSqlSearch .= " and E.MODIFIED_BY='" . intval($val) . "'"; break; case "IBLOCK_ID": $strSqlSearch .= " and E.IBLOCK_ID='" . intval($val) . "'"; break; case "NAME": if ($val != "%%") { $strSqlSearch .= " and upper(E.NAME) like upper('" . $DB->ForSQL($val, 255) . "')"; } break; case "STATUS": case "STATUS_ID": $strSqlSearch .= " and E.WF_STATUS_ID='" . intval($val) . "'"; break; } } } if ($by == "s_id") { $strSqlOrder = "ORDER BY E.ID"; } elseif ($by == "s_timestamp") { $strSqlOrder = "ORDER BY E.TIMESTAMP_X"; } elseif ($by == "s_modified_by") { $strSqlOrder = "ORDER BY E.MODIFIED_BY"; } elseif ($by == "s_name") { $strSqlOrder = "ORDER BY E.NAME"; } elseif ($by == "s_status") { $strSqlOrder = "ORDER BY E.WF_STATUS_ID"; } else { $by = "s_id"; $strSqlOrder = "ORDER BY E.ID"; } if ($order != "asc") { $strSqlOrder .= " desc "; $order = "desc"; } $strSql = "\n\t\t\tSELECT\n\t\t\t\tE.*,\n\t\t\t\t" . $DB->DateToCharFunction("E.TIMESTAMP_X") . " TIMESTAMP_X,\n\t\t\t\tconcat('(', U.LOGIN, ') ', ifnull(U.NAME,''), ' ', ifnull(U.LAST_NAME,'')) USER_NAME,\n\t\t\t\tS.TITLE STATUS_TITLE\n\t\t\tFROM\n\t\t\t\tb_iblock_element E\n\t\t\t\tINNER JOIN b_workflow_status S on S.ID = E.WF_STATUS_ID\n\t\t\t\tLEFT JOIN b_user U ON U.ID = E.MODIFIED_BY\n\t\t\tWHERE\n\t\t\t\tE.WF_PARENT_ELEMENT_ID = " . $ELEMENT_ID . "\n\t\t\t\t" . $strSqlSearch . "\n\t\t\t" . $strSqlOrder . "\n\t\t"; $res = $DB->Query($strSql, false, $err_mess . __LINE__); $is_filtered = strlen($strSqlSearch) > 0; return $res; }
function CheckDateFilter(CAdminList $lAdmin, $date_from, $date_to) { $date_from = trim($date_from); $date_to = trim($date_to); if (strlen($date_from) > 0 || strlen($date_to) > 0) { $date_1_ok = false; $date1_stm = MkDateTime(FmtDate($date_from, "D.M.Y"), "d.m.Y"); $date2_stm = MkDateTime(FmtDate($date_to, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (!$date1_stm && strlen(trim($date_from)) > 0) { $lAdmin->AddFilterError(GetMessage("POST_WRONG_TIMESTAMP_FROM")); } else { $date_1_ok = true; } if (!$date2_stm && strlen(trim($date_to)) > 0) { $lAdmin->AddFilterError(GetMessage("POST_WRONG_TIMESTAMP_TILL")); } elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm) > 0) { $lAdmin->AddFilterError(GetMessage("POST_FROM_TILL_TIMESTAMP")); } } return count($lAdmin->arFilterErrors) == 0; }
public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arNavStartParams = false) { global $DB; self::ClearErrors(); $arWherePart = array(); if (is_array($arFilter)) { foreach ($arFilter as $key => $val) { $key = strtoupper($key); switch($key) { case "ID": $arWherePart[] = "U.ID=".intval($val); break; case "URI": $q = GetFilterQuery("U.URI", $val); if (!empty($q) && ($q != "0")) $arWherePart[] = $q; break; case "URI_EXACT": $arWherePart[] = "U.URI='".$DB->ForSQL($val)."'"; break; case "URI_CRC": $arWherePart[] = "U.URI_CRC=".intval($val); break; case "SHORT_URI": $arWherePart[] = "U.SHORT_URI='".$DB->ForSQL($val)."'"; break; case "SHORT_URI_CRC": $arWherePart[] = "U.SHORT_URI_CRC=".intval($val); break; case "STATUS": $arWherePart[] = "U.STATUS=".intval($val); break; case "MODIFIED_1": $arWherePart[] = "U.MODIFIED >= FROM_UNIXTIME('".MkDateTime(FmtDate($val, "D.M.Y"), "d.m.Y")."')"; break; case "MODIFIED_2": $arWherePart[] = "U.MODIFIED <= FROM_UNIXTIME('".MkDateTime(FmtDate($val, "D.M.Y")." 23:59:59", "d.m.Y")."')"; break; case "LAST_USED_1": $arWherePart[] = "U.LAST_USED >= FROM_UNIXTIME('".MkDateTime(FmtDate($val, "D.M.Y"), "d.m.Y")."')"; break; case "LAST_USED_2": $arWherePart[] = "U.LAST_USED <= FROM_UNIXTIME('".MkDateTime(FmtDate($val, "D.M.Y")." 23:59:59", "d.m.Y")."')"; break; case "NUMBER_USED": $arWherePart[] = "U.NUMBER_USED=".intval($val); break; } } } $strWherePart = ""; if (count($arWherePart) > 0) { foreach ($arWherePart as $val) { if ($strWherePart !== "") $strWherePart .= " AND "; $strWherePart .= "(".$val.")"; } } if ($strWherePart !== "") $strWherePart = "WHERE ".$strWherePart; $arOrderByPart = array(); if (is_array($arOrder)) { foreach ($arOrder as $key => $val) { $key = strtoupper($key); if (!in_array($key, array("ID", "URI", "URI_CRC", "SHORT_URI", "SHORT_URI_CRC", "STATUS", "MODIFIED", "LAST_USED", "NUMBER_USED"))) continue; $val = strtoupper($val); if (!in_array($val, array("ASC", "DESC"))) $val = "ASC"; if ($key == "MODIFIED") $key = "MODIFIED1"; if ($key == "LAST_USED") $key = "LAST_USED1"; $arOrderByPart[] = $key." ".$val; } } $strOrderByPart = ""; if (count($arOrderByPart) > 0) { foreach ($arOrderByPart as $val) { if ($strOrderByPart !== "") $strOrderByPart .= ", "; $strOrderByPart .= $val; } } if ($strOrderByPart !== "") $strOrderByPart = "ORDER BY ".$strOrderByPart; $strSql = "FROM b_short_uri U ".$strWherePart; if ($arNavStartParams) { $dbResultCount = $DB->Query("SELECT COUNT(U.ID) as C ".$strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); $arResultCount = $dbResultCount->Fetch(); $strSql = "SELECT ID, URI, URI_CRC, SHORT_URI, SHORT_URI_CRC, STATUS, ".$DB->DateToCharFunction("MODIFIED")." MODIFIED, MODIFIED MODIFIED1, ".$DB->DateToCharFunction("LAST_USED")." LAST_USED, LAST_USED LAST_USED1, NUMBER_USED ".$strSql.$strOrderByPart; $dbResult = new CDBResult(); $dbResult->NavQuery($strSql, $arResultCount["C"], $arNavStartParams); } else { $strSql = "SELECT ID, URI, URI_CRC, SHORT_URI, SHORT_URI_CRC, STATUS, ".$DB->DateToCharFunction("MODIFIED")." MODIFIED, MODIFIED MODIFIED1, ".$DB->DateToCharFunction("LAST_USED")." LAST_USED, LAST_USED LAST_USED1, NUMBER_USED ".$strSql.$strOrderByPart; $dbResult = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); } return $dbResult; }
function PHPFormatDateTime($strDateTime, $format="d.m.Y H:i:s") { return date($format, MkDateTime(FmtDate($strDateTime,"D.M.Y H:I:S"), "d.m.Y H:i:s")); }
public static function GetList($aSort = array(), $arFilter = array()) { $err_mess = CFavorites::err_mess() . "<br>Function: GetList<br>Line: "; global $DB, $USER; $arSqlSearch = array(); $strSqlSearch = ""; if (is_array($arFilter)) { foreach ($arFilter as $key => $val) { if (strlen($val) <= 0 || $val == "NOT_REF") { continue; } switch (strtoupper($key)) { case "ID": $arSqlSearch[] = GetFilterQuery("F.ID", $val, "N"); break; case "USER_ID": $arSqlSearch[] = "F.USER_ID = " . intval($val); break; case "MENU_FOR_USER": $arSqlSearch[] = "(F.USER_ID=" . intval($val) . " OR F.COMMON='Y')"; break; case "COMMON": $arSqlSearch[] = "F.COMMON = '" . $DB->ForSql($val, 1) . "'"; break; case "LANGUAGE_ID": $arSqlSearch[] = "F.LANGUAGE_ID = '" . $DB->ForSql($val, 2) . "'"; break; case "DATE1": $arSqlSearch[] = "F.TIMESTAMP_X >= FROM_UNIXTIME('" . MkDateTime(FmtDate($val, "D.M.Y"), "d.m.Y") . "')"; break; case "DATE2": $arSqlSearch[] = "F.TIMESTAMP_X <= FROM_UNIXTIME('" . MkDateTime(FmtDate($val, "D.M.Y") . " 23:59:59", "d.m.Y") . "')"; break; case "MODIFIED": $arSqlSearch[] = GetFilterQuery("UM.ID, UM.LOGIN, UM.LAST_NAME, UM.NAME", $val); break; case "MODIFIED_ID": $arSqlSearch[] = "F.MODIFIED_BY = " . intval($val); break; case "CREATED": $arSqlSearch[] = GetFilterQuery("UC.ID, UC.LOGIN, UC.LAST_NAME, UC.NAME", $val); break; case "CREATED_ID": $arSqlSearch[] = "F.CREATED_BY = " . intval($val); break; case "KEYWORDS": $arSqlSearch[] = GetFilterQuery("F.COMMENTS", $val); break; case "NAME": $arSqlSearch[] = GetFilterQuery("F.NAME", $val); break; case "URL": $arSqlSearch[] = GetFilterQuery("F.URL", $val); break; case "MODULE_ID": $arSqlSearch[] = "F.MODULE_ID='" . $DB->ForSql($val, 50) . "'"; break; case "MENU_ID": $arSqlSearch[] = "F.MENU_ID='" . $DB->ForSql($val, 255) . "'"; break; } } } $sOrder = ""; foreach ($aSort as $key => $val) { $ord = strtoupper($val) != "ASC" ? "DESC" : "ASC"; switch (strtoupper($key)) { case "ID": $sOrder .= ", F.ID " . $ord; break; case "LANGUAGE_ID": $sOrder .= ", F.LANGUAGE_ID " . $ord; break; case "COMMON": $sOrder .= ", F.COMMON " . $ord; break; case "USER_ID": $sOrder .= ", F.USER_ID " . $ord; break; case "TIMESTAMP_X": $sOrder .= ", F.TIMESTAMP_X " . $ord; break; case "MODIFIED_BY": $sOrder .= ", F.MODIFIED_BY " . $ord; break; case "NAME": $sOrder .= ", F.NAME " . $ord; break; case "URL": $sOrder .= ", F.URL " . $ord; break; case "SORT": $sOrder .= ", F.C_SORT " . $ord; break; case "MODULE_ID": $sOrder .= ", F.MODULE_ID " . $ord; break; case "MENU_ID": $sOrder .= ", F.MENU_ID " . $ord; break; } } if (strlen($sOrder) <= 0) { $sOrder = "F.ID DESC"; } $strSqlOrder = " ORDER BY " . TrimEx($sOrder, ","); $strSqlSearch = GetFilterSqlSearch($arSqlSearch); $strSql = "\n\t\t\tSELECT\n\t\t\t\tF.ID, F.C_SORT, F.NAME, F.MENU_ID, F.URL, F.MODIFIED_BY, F.CREATED_BY, F.MODULE_ID, F.LANGUAGE_ID,\n\t\t\t\tF.COMMENTS, F.COMMON, F.USER_ID, UM.LOGIN AS M_LOGIN, UC.LOGIN as C_LOGIN, U.LOGIN, F.CODE_ID,\n\t\t\t\t" . $DB->DateToCharFunction("F.TIMESTAMP_X") . "\tTIMESTAMP_X,\n\t\t\t\t" . $DB->DateToCharFunction("F.DATE_CREATE") . "\tDATE_CREATE,\n\t\t\t\t" . $DB->Concat($DB->IsNull("UM.NAME", "''"), "' '", $DB->IsNull("UM.LAST_NAME", "''")) . " as M_USER_NAME,\n\t\t\t\t" . $DB->Concat($DB->IsNull("UC.NAME", "''"), "' '", $DB->IsNull("UC.LAST_NAME", "''")) . " as C_USER_NAME,\n\t\t\t\t" . $DB->Concat($DB->IsNull("U.NAME", "''"), "' '", $DB->IsNull("U.LAST_NAME", "''")) . " as USER_NAME\n\t\t\tFROM\n\t\t\t\tb_favorite F\n\t\t\t\tLEFT JOIN b_user UM ON (UM.ID = F.MODIFIED_BY)\n\t\t\t\tLEFT JOIN b_user UC ON (UC.ID = F.CREATED_BY)\n\t\t\t\tLEFT JOIN b_user U ON (U.ID = F.USER_ID)\n\t\t\tWHERE\n\t\t\t" . $strSqlSearch . "\n\t\t\t" . $strSqlOrder; $res = $DB->Query($strSql, false, $err_mess . __LINE__); return $res; }
function GetList(&$by, &$order, $arFilter = array()) { $arSearch = array(); $arSqlSearch = array(); $strSqlSearch = ""; $bIsLang = false; 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 "ID": $match = $arFilter[$key . "_EXACT_MATCH"] == "N" && $match_value_set ? "Y" : "N"; if ($match == 'Y') { $val = '%' . $val . '%'; } $arSearch['%=' . $key] = $val; break; case "TYPE": $match = $arFilter[$key . "_EXACT_MATCH"] == "Y" && $match_value_set ? "N" : "Y"; if ($match == 'Y') { $val = '%' . $val . '%'; } $arSearch[] = array('LOGIC' => 'OR', 'EVENT_NAME' => $val, 'EVENT_MESSAGE_TYPE.NAME' => $val); break; case "EVENT_NAME": case "TYPE_ID": $match = $arFilter[$key . "_EXACT_MATCH"] == "N" && $match_value_set ? "Y" : "N"; if ($match == 'Y') { $val = '%' . $val . '%'; } $arSearch['%=EVENT_NAME'] = $val; break; case "TIMESTAMP_1": $arSqlSearch[] = "M.TIMESTAMP_X>=TO_DATE('" . FmtDate($val, "D.M.Y") . " 00:00:00','dd.mm.yyyy hh24:mi:ss')"; $arSearch['>=TIMESTAMP_X'] = $val . " 00:00:00"; break; case "TIMESTAMP_2": $arSqlSearch[] = "M.TIMESTAMP_X<=TO_DATE('" . FmtDate($val, "D.M.Y") . " 23:59:59','dd.mm.yyyy hh24:mi:ss')"; $arSearch['<=TIMESTAMP_X'] = $val . " 23:59:59"; break; case "LID": case "LANG": case "SITE_ID": $bIsLang = true; $arSearch["=SITE_ID"] = $val; break; case "ACTIVE": $arSearch['=' . $key] = $val; break; case "FROM": $match = $arFilter[$key . "_EXACT_MATCH"] == "Y" && $match_value_set ? "N" : "Y"; if ($match == 'Y') { $val = '%' . $val . '%'; } $arSearch['%=EMAIL_FROM'] = $val; break; case "TO": $match = $arFilter[$key . "_EXACT_MATCH"] == "Y" && $match_value_set ? "N" : "Y"; if ($match == 'Y') { $val = '%' . $val . '%'; } $arSearch['%=EMAIL_TO'] = $val; break; case "BCC": $match = $arFilter[$key . "_EXACT_MATCH"] == "Y" && $match_value_set ? "N" : "Y"; if ($match == 'Y') { $val = '%' . $val . '%'; } $arSearch['%=' . $key] = $val; break; case "SUBJECT": $match = $arFilter[$key . "_EXACT_MATCH"] == "Y" && $match_value_set ? "N" : "Y"; if ($match == 'Y') { $val = '%' . $val . '%'; } $arSearch['%=' . $key] = $val; break; case "BODY_TYPE": $arSearch[$key] = $val == "text" ? 'text' : 'html'; break; case "BODY": $match = $arFilter[$key . "_EXACT_MATCH"] == "Y" && $match_value_set ? "N" : "Y"; if ($match == 'Y') { $val = '%' . $val . '%'; } $arSearch['%=MESSAGE'] = $val; break; } } } if ($by == "id") { $strSqlOrder = "ID"; } elseif ($by == "active") { $strSqlOrder = "ACTIVE"; } elseif ($by == "event_name") { $strSqlOrder = "EVENT_NAME"; } elseif ($by == "from") { $strSqlOrder = "EMAIL_FROM"; } elseif ($by == "to") { $strSqlOrder = "EMAIL_TO"; } elseif ($by == "bcc") { $strSqlOrder = "BCC"; } elseif ($by == "body_type") { $strSqlOrder = "BODY_TYPE"; } elseif ($by == "subject") { $strSqlOrder = "SUBJECT"; } else { $strSqlOrder = "ID"; $by = "id"; } if ($order != "asc") { $strSqlOrderBy = "DESC"; $order = "desc"; } else { $strSqlOrderBy = "ASC"; $order = "asc"; } $arSelect = array('*', 'EVENT_MESSAGE_TYPE_ID' => 'EVENT_MESSAGE_TYPE.ID', 'EVENT_MESSAGE_TYPE_NAME' => 'EVENT_MESSAGE_TYPE.NAME', 'EVENT_MESSAGE_TYPE_EVENT_NAME' => 'EVENT_MESSAGE_TYPE.EVENT_NAME'); if ($bIsLang) { $arSelect['SITE_ID'] = 'EVENT_MESSAGE_SITE.SITE_ID'; } else { $arSelect['SITE_ID'] = 'LID'; } $resultDb = Mail\Internal\EventMessageTable::getList(array('select' => $arSelect, 'filter' => $arSearch, 'order' => array($strSqlOrder => $strSqlOrderBy), 'runtime' => array('EVENT_MESSAGE_TYPE' => array('data_type' => 'Bitrix\\Main\\Mail\\Internal\\EventType', 'reference' => array('=this.EVENT_NAME' => 'ref.EVENT_NAME', '=ref.LID' => new \Bitrix\Main\DB\SqlExpression('?', LANGUAGE_ID)))))); $resultDb->addFetchDataModifier(array('CEventMessage', 'GetListDataModifier')); $res = new CDBResult($resultDb); $strSqlSearch = GetFilterSqlSearch($arSqlSearch); $res->is_filtered = IsFiltered($strSqlSearch); return $res; }
} if (!empty($find_last_order_date_2)) { if ($arDate = ParseDateTime($find_last_order_date_2, CSite::GetDateFormat("FULL", SITE_ID))) { if (StrLen($find_last_order_date_2) < 11) { $arDate["HH"] = 23; $arDate["MI"] = 59; $arDate["SS"] = 59; } $find_last_order_date_2 = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"])); $arFilter["<=LAST_ORDER_DATE"] = $find_last_order_date_2; } else { $find_last_order_date_2 = ""; } } if (!empty($filter_register_date_1)) { $date1_stm = MkDateTime(FmtDate($filter_register_date_1, "D.M.Y"), "d.m.Y"); if ($date1_stm && strlen(trim($filter_register_date_1)) > 0) { $arFilter[">=DATE_REGISTER"] = trim($filter_register_date_1); } } if (!empty($filter_register_date_2)) { if ($arDate = ParseDateTime($filter_register_date_2, CSite::GetDateFormat("FULL", SITE_ID))) { if (StrLen($filter_register_date_2) < 11) { $arDate["HH"] = 23; $arDate["MI"] = 59; $arDate["SS"] = 59; } $filter_register_date_2 = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"])); $arFilter["<=DATE_REGISTER"] = $filter_register_date_2; } else { $filter_register_date_2 = "";
if ($iH + $iI + $iS > 0) { $dtformat = "FULL"; } else { $dtformat = "SHORT"; } $aDate = ParseDate(FmtDate($date, "D.M.Y"), "dmy"); if (is_array($aDate) && $aDate[2] > 1971 && $aDate[2] < 2037) { //unix 32-bit timestamp $currDate = mktime($iH, $iI, $iS, $aDate[1], $aDate[0], $aDate[2]); } else { $currDate = time(); } $y1 = intval(date("Y", $currDate)); $m1 = intval(date("n", $currDate)); $d1 = intval(date("j", $currDate)); $aInitDate = ParseDate(FmtDate($initdate, "D.M.Y"), "dmy"); if (is_array($aInitDate) && $aInitDate[2] > 1971 && $aInitDate[2] < 2037) { $initDate = mktime($iH, $iI, $iS, $aInitDate[1], $aInitDate[0], $aInitDate[2]); $init_y = intval(date("Y", $initDate)); $init_m = intval(date("n", $initDate)); $init_d = intval(date("j", $initDate)); } else { $init_y = $init_m = $init_d = 0; } $today = time(); $today_y = intval(date("Y", $today)); $today_m = intval(date("n", $today)); $today_d = intval(date("j", $today)); $sParam = DeleteParam(array("date")); if ($sParam != "") { $sParam = "&" . $sParam;