function CheckFilter() { global $arFilterFields, $lAdmin; foreach ($arFilterFields as $s) { global ${$s}; } $str = ""; $find_date_1 = trim($find_date_1); $find_date_2 = trim($find_date_2); if (strlen($find_date_1) > 0 || strlen($find_date_2) > 0) { $date_1_stm = MkDateTime(ConvertDateTime($find_date_1, "D.M.Y"), "d.m.Y"); $date_2_stm = MkDateTime(ConvertDateTime($find_date_2, "D.M.Y") . " 23:59:59", "d.m.Y H:i:s"); if (!$date_1_stm && strlen(trim($find_date_1)) > 0) { $bGotErr = true; $lAdmin->AddUpdateError(GetMessage("VOTE_WRONG_DATE_FROM")); } if (!$date_2_stm && strlen(trim($find_date_2)) > 0) { $bGotErr = true; $lAdmin->AddUpdateError(GetMessage("VOTE_WRONG_DATE_TILL")); } if (!$bGotErr && $date_2_stm <= $date_1_stm && strlen($date_2_stm) > 0) { $bGotErr = true; $lAdmin->AddUpdateError(GetMessage("VOTE_WRONG_FROM_TILL")); } } if ($bGotErr) { return false; } else { return true; } }
if ($signHeight && $signWidth) { $ratio = min(37.5 / $signHeight, 150 / $signWidth); $signHeight = $ratio * $signHeight; $signWidth = $ratio * $signWidth; $isAccSign = true; } } if (CSalePaySystemAction::GetParamValue("SELLER_ACC")) { $pdf->SetX($pdf->GetX() + $width / 2 + 15); $pdf->Write(15, CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_ACC"))); $pdf->Ln(); $pdf->Ln(); } $pdf->SetX($pdf->GetX() + $width / 2 + 15); $pdf->Write(15, CSalePdf::prepareToPdf('The Accountant ')); $pdf->Cell(0, 15, '', 'B'); if ($isAccSign) { $pdf->Image(CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN'), $pdf->GetX() - 150, $pdf->GetY() - $signHeight + 15, $signWidth, $signHeight); } $pdf->Ln(); } $dest = 'I'; if ($_REQUEST['GET_CONTENT'] == 'Y') { $dest = 'S'; } else { if ($_REQUEST['DOWNLOAD'] == 'Y') { $dest = 'D'; } } return $pdf->Output(sprintf('Invoice # %s (Issue Date %s).pdf', $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ACCOUNT_NUMBER"], ConvertDateTime($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"], 'YYYY-MM-DD')), $dest);
function CheckFilter() { global $arFilterFields; reset($arFilterFields); foreach ($arFilterFields as $f) { global ${$f}; } $str = ""; $arMsg = array(); if (strlen(trim($find_date1)) > 0 || strlen(trim($find_date2)) > 0) { $date_1_ok = false; $date1_stm = MkDateTime(ConvertDateTime($find_date1, "D.M.Y"), "d.m.Y"); $date2_stm = MkDateTime(ConvertDateTime($find_date2, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_date1)) > 0) { //$str.= GetMessage("SUP_WRONG_DATE_FROM")."<br>"; $arMsg[] = array("id" => "find_date1", "text" => GetMessage("SUP_WRONG_DATE_FROM")); } else { $date_1_ok = true; } if (!$date2_stm && strlen(trim($find_date2)) > 0) { //$str.= GetMessage("SUP_WRONG_DATE_TILL")."<br>"; $arMsg[] = array("id" => "find_date2", "text" => GetMessage("SUP_WRONG_DATE_TILL")); } elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm) > 0) { $arMsg[] = array("id" => "find_date2", "text" => GetMessage("SUP_FROM_TILL_DATE")); } //$str.= GetMessage("SUP_FROM_TILL_DATE")."<br>"; } if (!empty($arMsg)) { $e = new CAdminException($arMsg); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } return true; }
function CleanUpTableByDate($cleanup_date, $table_name, $date_name) { $err_mess = "File: " . __FILE__ . "<br>Line: "; $DB = CDatabase::GetModuleConnection('statistic'); if (strlen($cleanup_date) > 0) { $stmp = MkDateTime(ConvertDateTime($cleanup_date, "D.M.Y"), "d.m.Y"); if ($stmp) { $strSql = "DELETE FROM {$table_name} WHERE {$date_name}<FROM_UNIXTIME('{$stmp}')"; $DB->Query($strSql, false, $err_mess . __LINE__); } } }
function endSession() { global $DB; //Delete "expired" sessions $expired = ConvertDateTime(ConvertTimeStamp(time() - 3600, 'FULL'), 'YYYY-MM-DD HH:MI:SS'); $rs = $DB->Query('select ID, SESS_ID, VALUE from ' . $this->_tempTableName . ' where PARENT_ID = -1 AND NAME = "SESS_ID" ORDER BY ID'); while ($ar = $rs->Fetch()) { if ($ar['SESS_ID'] == $this->_sessionID || $ar['VALUE'] < $expired) { $DB->Query('DELETE from ' . $this->_tempTableName . ' WHERE SESS_ID = "' . $DB->ForSQL($ar['SESS_ID']) . '"'); } } return true; }
public function EndSession() { global $DB; //Delete "expired" sessions $expired = ConvertDateTime(ConvertTimeStamp(time() - 3600, "FULL"), "YYYY-MM-DD HH:MI:SS"); $rs = $DB->Query("select ID, SESS_ID, VALUE from " . $this->_table_name . " where PARENT_ID = -1 AND NAME = 'SESS_ID' ORDER BY ID"); while ($ar = $rs->Fetch()) { if ($ar["SESS_ID"] == $this->_sessid || $ar["VALUE"] < $expired) { $DB->Query("DELETE from " . $this->_table_name . " WHERE SESS_ID = '" . $DB->ForSQL($ar["SESS_ID"]) . "'"); } } return true; }
/** * Генерирует HTML для поля в списке * @see AdminListHelper::addRowCell(); * @param CAdminListRow $row * @param array $data - данные текущей строки * @return mixed */ public function generateRow(&$row, $data) { if (isset($this->settings['EDIT_IN_LIST']) and $this->settings['EDIT_IN_LIST']) { $row->AddCalendarField($this->getCode()); } else { $arDate = ParseDateTime($this->getValue()); if ($arDate['YYYY'] < 10) { $stDate = '-'; } else { $stDate = ConvertDateTime($this->getValue(), "DD.MM.YYYY HH:MI:SS", "ru"); } $row->AddViewField($this->getCode(), $stDate); } }
function CheckFilter() { global $arFilterFields, $message, $lAdmin; foreach ($arFilterFields as $s) { global ${$s}; } $bGotErr = false; $find_date_start_1 = trim($find_date_start_1); $find_date_start_2 = trim($find_date_start_2); $find_date_end_1 = trim($find_date_end_1); $find_date_end_2 = trim($find_date_end_2); if (strlen($find_date_start_1) > 0 || strlen($find_date_start_2) > 0) { // start date $date_start_1_stm = MkDateTime(ConvertDateTime($find_date_start_1, "D.M.Y"), "d.m.Y"); $date_start_2_stm = MkDateTime(ConvertDateTime($find_date_start_2, "D.M.Y") . " 23:59:59", "d.m.Y H:i:s"); if (!$date_start_1_stm && strlen(trim($find_date_start_1)) > 0) { $bGotErr = true; $lAdmin->AddUpdateError(GetMessage("VOTE_WRONG_START_DATE_FROM")); } if (!$date_start_2_stm && strlen(trim($find_date_start_2)) > 0) { $bGotErr = true; $lAdmin->AddUpdateError(GetMessage("VOTE_WRONG_START_DATE_TILL")); } if (!$bGotErr && $date_start_2_stm <= $date_start_1_stm && strlen($date_start_2_stm) > 0) { $bGotErr = true; $lAdmin->AddUpdateError(GetMessage("VOTE_WRONG_START_FROM_TILL")); } } if (strlen($find_date_end_1) > 0 || strlen($find_date_end_2) > 0) { // end date $date_end_1_stm = MkDateTime(ConvertDateTime($find_date_end_1, "D.M.Y"), "d.m.Y"); $date_end_2_stm = MkDateTime(ConvertDateTime($find_date_end_2, "D.M.Y") . " 23:59:59", "d.m.Y H:i:s"); if (!$date_end_1_stm && strlen(trim($find_date_end_1)) > 0) { $bGotErr = true; $lAdmin->AddUpdateError(GetMessage("VOTE_WRONG_END_DATE_FROM")); } if (!$date_end_2_stm && strlen(trim($find_date_end_2)) > 0) { $bGotErr = true; $lAdmin->AddUpdateError(GetMessage("VOTE_WRONG_END_DATE_TILL")); } if (!$bGotErr && $date_end_2_stm <= $date_end_1_stm && strlen($date_end_2_stm) > 0) { $bGotErr = true; $lAdmin->AddUpdateError(GetMessage("VOTE_WRONG_END_FROM_TILL")); } } return $bGotErr ? false : true; }
function CheckFilter() // проверка введенных полей { global $strError, $FilterArr; reset($FilterArr); foreach ($FilterArr as $f) global $$f; $str = ""; $arMsg = Array(); if (strlen(trim($find_date1))>0 || strlen(trim($find_date2))>0) { $date_1_ok = false; $date1_stm = MkDateTime(ConvertDateTime($find_date1,"D.M.Y"),"d.m.Y"); $date2_stm = MkDateTime(ConvertDateTime($find_date2,"D.M.Y")." 23:59","d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_date1))>0) //$str.= GetMessage("SUP_WRONG_DATE_FROM")."<br>"; $arMsg[] = array("id"=>"find_date1", "text"=> GetMessage("SUP_WRONG_DATE_FROM")); else $date_1_ok = true; if (!$date2_stm && strlen(trim($find_date2))>0) //$str.= GetMessage("SUP_WRONG_DATE_TILL")."<br>"; $arMsg[] = array("id"=>"find_date2", "text"=> GetMessage("SUP_WRONG_DATE_TILL")); elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm)>0) //$str.= GetMessage("SUP_FROM_TILL_DATE")."<br>"; $arMsg[] = array("id"=>"find_date2", "text"=> GetMessage("SUP_FROM_TILL_DATE")); } if(!empty($arMsg)) { $e = new CAdminException($arMsg); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } return true; }
function CheckFilter($arFilter) { global $strError; $str = ""; $find_date_modify_1 = $arFilter["DATE_MODIFY_1"]; $find_date_modify_2 = $arFilter["DATE_MODIFY_2"]; if (strlen(trim($find_date_modify_1)) > 0 || strlen(trim($find_date_modify_2)) > 0) { $date_1_ok = false; $date1_stm = MkDateTime(ConvertDateTime($find_date_modify_1, "D.M.Y"), "d.m.Y"); $date2_stm = MkDateTime(ConvertDateTime($find_date_modify_2, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_date_modify_1)) > 0) { $str .= GetMessage("AD_ERROR_WRONG_DATE_MODIFY_FROM") . "<br>"; } else { $date_1_ok = true; } if (!$date2_stm && strlen(trim($find_date_modify_2)) > 0) { $str .= GetMessage("AD_ERROR_WRONG_DATE_MODIFY_TILL") . "<br>"; } elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm) > 0) { $str .= GetMessage("AD_ERROR_FROM_TILL_DATE_MODIFY") . "<br>"; } } $strError .= $str; if (strlen($str) > 0) { return false; } else { return true; } }
$arX1[] = GetMessage("STAT_WEEKDAY_1"); $arX1[] = GetMessage("STAT_WEEKDAY_2"); $arX1[] = GetMessage("STAT_WEEKDAY_3"); $arX1[] = GetMessage("STAT_WEEKDAY_4"); $arX1[] = GetMessage("STAT_WEEKDAY_5"); $arX1[] = GetMessage("STAT_WEEKDAY_6"); $arX = array(0, 1, 2, 3, 4, 5, 6); } //echo "<pre>";print_r($arResult);echo "</pre>";die(); foreach ($arResult as $k => $v) { if ($arFind["filter_by"] == "week") { $arX1[] = ConvertDateTime($k, "DD.MM"); } elseif ($arFind["filter_by"] == "month") { $arX1[] = GetMessage("STAT_M_" . ConvertDateTime($k, "MM")) . " " . ConvertDateTime($k, "YYYY"); } elseif ($arFind["filter_by"] == "year") { $arX1[] = ConvertDateTime($k, "YYYY"); } if ($arFind["filter_by"] != "weekday") { $arX[] = MakeTimeStamp($k); } if ($arFind["mode"] == "count") { if ($arFind["find_all"] == "Y") { $arY[] = IntVal($v["COUNT"]); $arCountY[] = IntVal($v["COUNT"]); } if ($arFind["find_payed"] == "Y") { $arY[] = IntVal($v["PAYED"]); $arPayedY[] = IntVal($v["PAYED"]); } if ($arFind["find_allow_delivery"] == "Y") { $arY[] = IntVal($v["ALLOW_DELIVERY"]);
function Create($site_id, $max_execution_time, $NS, $arOptions = array()) { @set_time_limit(0); if (!is_array($NS)) { $NS = array("ID" => 0, "CNT" => 0, "FILE_SIZE" => 0, "FILE_ID" => 1, "FILE_URL_CNT" => 0, "ERROR_CNT" => 0, "PARAM2" => 0); } else { $NS = array("ID" => intval($NS["ID"]), "CNT" => intval($NS["CNT"]), "FILE_SIZE" => intval($NS["FILE_SIZE"]), "FILE_ID" => intval($NS["FILE_ID"]), "FILE_URL_CNT" => intval($NS["FILE_URL_CNT"]), "ERROR_CNT" => intval($NS["ERROR_CNT"]), "PARAM2" => intval($NS["ID"])); } if (is_array($max_execution_time)) { $record_limit = $max_execution_time[1]; $max_execution_time = $max_execution_time[0]; } else { $record_limit = 5000; } if ($max_execution_time > 0) { $end_of_execution = time() + $max_execution_time; } else { $end_of_execution = 0; } if (is_array($arOptions) && $arOptions["FORUM_TOPICS_ONLY"] == "Y") { $bForumTopicsOnly = CModule::IncludeModule("forum"); } else { $bForumTopicsOnly = false; } if (is_array($arOptions) && $arOptions["BLOG_NO_COMMENTS"] == "Y") { $bBlogNoComments = CModule::IncludeModule("blog"); } else { $bBlogNoComments = false; } if (is_array($arOptions) && $arOptions["USE_HTTPS"] == "Y") { $strProto = "https://"; } else { $strProto = "http://"; } $rsSite = CSite::GetByID($site_id); if ($arSite = $rsSite->Fetch()) { $SERVER_NAME = trim($arSite["SERVER_NAME"]); if (strlen($SERVER_NAME) <= 0) { $this->m_error = GetMessage("SEARCH_ERROR_SERVER_NAME", array("#SITE_ID#" => '<a href="site_edit.php?LID=' . urlencode($site_id) . '&lang=' . urlencode(LANGUAGE_ID) . '">' . htmlspecialcharsbx($site_id) . '</a>')) . "<br>"; return false; } //Cache events $this->m_events = GetModuleEvents("search", "OnSearchGetURL", true); //Clear error file if ($NS["ID"] == 0 && $NS["CNT"] == 0) { $e = fopen($arSite["ABS_DOC_ROOT"] . $arSite["DIR"] . "sitemap_errors.xml", "w"); $strBegin = "<?xml version='1.0' encoding='UTF-8'?>\n<urlset xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n"; fwrite($e, $strBegin); } else { $e = fopen($arSite["ABS_DOC_ROOT"] . $arSite["DIR"] . "sitemap_errors.xml", "a"); } if (!$e) { $this->m_error = GetMessage("SEARCH_ERROR_OPEN_FILE") . " " . $arSite["ABS_DOC_ROOT"] . $arSite["DIR"] . "sitemap_errors.xml" . "<br>"; return false; } //Open current sitemap file if ($NS["FILE_SIZE"] == 0) { $f = fopen($arSite["ABS_DOC_ROOT"] . $arSite["DIR"] . "sitemap_" . sprintf("%03d", $NS["FILE_ID"]) . ".xml", "w"); $strBegin = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n"; fwrite($f, $strBegin); $NS["FILE_SIZE"] += strlen($strBegin); } else { $f = fopen($arSite["ABS_DOC_ROOT"] . $arSite["DIR"] . "sitemap_" . sprintf("%03d", $NS["FILE_ID"]) . ".xml", "a"); } if (!$f) { $this->m_error = GetMessage("SEARCH_ERROR_OPEN_FILE") . " " . $arSite["ABS_DOC_ROOT"] . $arSite["DIR"] . "sitemap_" . sprintf("%03d", $NS["FILE_ID"]) . ".xml" . "<br>"; return false; } CTimeZone::Disable(); $this->GetURLs($site_id, $NS["ID"], $record_limit); $bFileIsFull = false; while (!$bFileIsFull && ($ar = $this->Fetch())) { $record_limit--; $NS["ID"] = $ar["ID"]; if (strlen($ar["URL"]) < 1) { continue; } if ($bForumTopicsOnly && $ar["MODULE_ID"] == "forum") { //Forum topic ID $PARAM2 = intval($ar["PARAM2"]); if ($NS["PARAM2"] < $PARAM2) { $NS["PARAM2"] = $PARAM2; $arTopic = CForumTopic::GetByIDEx($PARAM2); if ($arTopic) { $ar["FULL_DATE_CHANGE"] = $arTopic["LAST_POST_DATE"]; } } else { continue; } } if ($bBlogNoComments && $ar["MODULE_ID"] == "blog") { if (substr($ar["ITEM_ID"], 0, 1) === "C") { continue; } } if (preg_match("/^[a-z]+:\\/\\//", $ar["URL"])) { $strURL = $ar["URL"]; } else { $strURL = $strProto . $ar["SERVER_NAME"] . $ar["URL"]; } $strURL = $this->LocationEncode($this->URLEncode($strURL, "UTF-8")); $strTime = $this->TimeEncode(MakeTimeStamp(ConvertDateTime($ar["FULL_DATE_CHANGE"], "DD.MM.YYYY HH:MI:SS"), "DD.MM.YYYY HH:MI:SS")); $strToWrite = "\t<url>\n\t\t<loc>" . $strURL . "</loc>\n\t\t<lastmod>" . $strTime . "</lastmod>\n\t</url>\n"; if (strlen($strURL) > 2048) { fwrite($e, $strToWrite); $NS["ERROR_CNT"]++; } else { fwrite($f, $strToWrite); $NS["CNT"]++; $NS["FILE_SIZE"] += strlen($strToWrite); $NS["FILE_URL_CNT"]++; } //Next File on file size or url count limit if ($NS["FILE_SIZE"] > 9000000 || $NS["FILE_URL_CNT"] >= 50000) { $bFileIsFull = true; } elseif ($end_of_execution) { if (time() > $end_of_execution) { fclose($e); fclose($f); CTimeZone::Enable(); return $NS; } } } CTimeZone::Enable(); if ($bFileIsFull) { fwrite($e, "</urlset>\n"); fclose($e); fwrite($f, "</urlset>\n"); fclose($f); $NS["FILE_SIZE"] = 0; $NS["FILE_URL_CNT"] = 0; $NS["FILE_ID"]++; return $NS; } elseif ($record_limit <= 0) { return $NS; } else { fwrite($e, "</urlset>\n"); fclose($e); fwrite($f, "</urlset>\n"); fclose($f); } //WRITE INDEX FILE HERE $f = fopen($arSite["ABS_DOC_ROOT"] . $arSite["DIR"] . "sitemap_index.xml", "w"); if (!$f) { $this->m_error = GetMessage("SEARCH_ERROR_OPEN_FILE") . " " . $arSite["ABS_DOC_ROOT"] . $arSite["DIR"] . "sitemap_index.xml" . "<br>"; return false; } $strBegin = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<sitemapindex xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n"; fwrite($f, $strBegin); for ($i = 0; $i <= $NS["FILE_ID"]; $i++) { $strFile = $arSite["DIR"] . "sitemap_" . sprintf("%03d", $i) . ".xml"; $strTime = $this->TimeEncode(filemtime($arSite["ABS_DOC_ROOT"] . $strFile)); fwrite($f, "\t<sitemap>\n\t\t<loc>" . $this->URLEncode($strProto . $arSite["SERVER_NAME"] . $strFile, "UTF-8") . "</loc>\n\t\t<lastmod>" . $strTime . "</lastmod>\n\t</sitemap>\n"); } fwrite($f, "</sitemapindex>\n"); fclose($f); $this->m_errors_count = $NS["ERROR_CNT"]; $this->m_errors_href = $strProto . $arSite["SERVER_NAME"] . $arSite["DIR"] . "sitemap_errors.xml"; $this->m_href = $strProto . $arSite["SERVER_NAME"] . $arSite["DIR"] . "sitemap_index.xml"; return true; } else { $this->m_error = GetMessage("SEARCH_ERROR_SITE_ID") . "<br>"; return false; } }
/** * <p>Возвращает список <a href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#event_type">типов событий</a>.</p> * * * * * @param string &$by = "s_today_counter" Поле для сортировки. Возможные значения: <ul> <li> <b>s_id</b> - ID типа * события; </li> <li> <b>s_date_last</b> - дата последнего <a * href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#event">события</a> данного типа; </li> <li> * <b>s_date_enter</b> - дата первого события данного типа; </li> <li> <b>s_today_counter</b> * - количество событий данного типа за сегодня; </li> <li> <b>s_yesterday_counter</b> * - количество событий данного типа за вчера; </li> <li> <b>s_b_yesterday_counter</b> - * количество событий данного типа за позавчера; </li> <li> <b>s_total_counter</b> - * суммарное количество событий данного типа; </li> <li> <b>s_period_counter</b> - * количество событий данного типа за указанный период * <nobr>(<i>filter</i>[<b>DATE1_PERIOD</b>], <i>filter</i>[<b>DATE2_PERIOD</b>])</nobr>; </li> <li> <b>s_name</b> - * название типа события; </li> <li> <b>s_event1</b> - <a * href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#event_type_id">идентификатор event1</a> типа * события; </li> <li> <b>s_event2</b> - идентификатор event2 типа события; </li> <li> * <b>s_event12</b> - сортировка по "EVENT1, EVENT2"; </li> <li> <b>s_chart</b> - сортировка по * "DIAGRAM_DEFAULT desc, TOTAL_COUNTER"; </li> <li> <b>s_stat</b> - сортировка по "TODAY_COUNTER desc, * YESTERDAY_COUNTER desc, B_YESTERDAY_COUNTER desc, TOTAL_COUNTER desc, PERIOD_COUNTER". </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>ID_EXACT_MATCH</b> - если значение равно "N", то при фильтрации по <b>ID</b> * будет искаться вхождение; </li> <li> <b>EVENT1</b>* - идентификатор event1 типа * события; </li> <li> <b>EVENT1_EXACT_MATCH</b> - если значение равно "Y", то при * фильтрации по <b>EVENT1</b> будет искаться точное совпадение; </li> <li> * <b>EVENT2</b>* - идентификатор event2 типа события; </li> <li> <b>EVENT2_EXACT_MATCH</b> - * если значение равно "Y", то при фильтрации по <b>EVENT2</b> будет * искаться точное совпадение; </li> <li> <b>NAME</b>* - название типа события; * </li> <li> <b>NAME_EXACT_MATCH</b> - если значение равно "Y", то при фильтрации по * <b>NAME</b> будет искаться точное совпадение; </li> <li> <b>DESCRIPTION</b>* - * описание типа события; </li> <li> <b>DESCRIPTION_EXACT_MATCH</b> - если значение * равно "Y", то при фильтрации по <b>DESCRIPTION</b> будет искаться точное * совпадение; </li> <li> <b>DATE_ENTER_1</b> - начальное значение интервала для * поля "дата первого события данного типа"; </li> <li> <b>DATE_ENTER_2</b> - * конечное значение интервала для поля "дата первого события * данного типа"; </li> <li> <b>DATE_LAST_1</b> - начальное значение интервала для * поля "дата последнего события данного типа"; </li> <li> <b>DATE_LAST_2</b> - * конечное значение интервала для поля "дата последнего события * данного типа"; </li> <li> <b>DATE1_PERIOD</b> - начальное значение значение для * произвольного периода; </li> <li> <b>DATE2_PERIOD</b> - конечное значение * значение для произвольного периода; </li> <li> <b>COUNTER1</b> - начальное * значение интервала для поля "суммарное количество событий * данного типа"; </li> <li> <b>COUNTER2</b> - конечное значение интервала для * поля "суммарное количество событий данного типа"; </li> <li> <b>ADV_VISIBLE</b> * - флаг включать ли статистику по данному типу события в отчет по * рекламным кампаниям, возможные значения: <ul> <li> <b>Y</b> - включать; </li> * <li> <b>N</b> - не включать. </li> </ul> </li> <li> <b>DIAGRAM_DEFAULT</b> - флаг включать ли * данный тип события в круговую диаграмму и график по умолчанию, * возможные значения: <ul> <li> <b>Y</b> - включать; </li> <li> <b>N</b> - не включать. * </li> </ul> </li> <li> <b>KEEP_DAYS1</b> - начальное значение интервала для поля * "количество дней отведенное для хранения событий данного типа"; * </li> <li> <b>KEEP_DAYS2</b> - конечное значение интервала для поля * "количество дней отведенное для хранения событий данного типа"; * </li> <li> <b>DYNAMIC_KEEP_DAYS1</b> - начальное значение интервала для поля * "количество дней отведенное для хранения статистики по данному * типу события в разрезе по дням"; </li> <li> <b>DYNAMIC_KEEP_DAYS2</b> - конечное * значение интервала для поля "количество дней отведенное для * хранения статистики по данному типу события в разрезе по дням"; * </li> <li> <b>MONEY1</b> - начальное значение интервала для поля "суммарная * денежная сумма для данного типа событий"; </li> <li> <b>MONEY2</b> - конечное * значение интервала для поля "суммарная денежная сумма для * данного типа событий"; </li> <li> <b>CURRENCY</b> - трехсимвольный * идентификатор валюты для денежной суммы; </li> <li> <b>GROUP</b> - * группировка результирующего списка, возможные значения: <ul> <li> * <b>event1</b> - группировка по <i>event1</i>; </li> <li> <b>event2</b> - группировка по * <i>event2</i>. </li> </ul> </li> </ul> * - допускается <a * href="http://dev.1c-bitrix.ru/api_help/main/general/filter.php">сложная логика</a> * * * * @param bool &$is_filtered Флаг отфильтрованности результирующего списка. Если значение * равно "true", то список был отфильтрован. * * * * @param mixed $limit = false Максимальное число типов событий которые будут выбраны в списке. * Если значение равно "false", то кол-во РК будет ограничено в * соответствии со значением параметра <b>Максимальное кол-во * показываемых записей в таблицах</b> из настроек модуля * "Статистика". * * * * @return CDBResult * * * <h4>Example</h4> * <pre> * <? * // получим данные только по тем типам событий * // у которых event1 = "download" * // а также получим дополнительные данные на декабрь 2007 года * $arFilter = array( * "DATE1_PERIOD" => "01.12.2007", * "DATE2_PERIOD" => "31.12.2007", * "EVENT1" => "download" * ); * * // получим список записей * $rs = <b>CStatEventType::GetList</b>( * ($by = "s_today_counter"), * ($order = "desc"), * $arFilter, * $is_filtered * ); * * // выведем все записи * while ($ar = $rs->Fetch()) * { * echo "<pre>"; print_r($ar); echo "</pre>"; * } * ?> * </pre> * * * * <h4>See Also</h4> * <ul> <li> <a * href="http://dev.1c-bitrix.ru/api_help/statistic/classes/cstateventtype/getdynamiclist.php">CStatEventType::GetDynamicList</a> * </li> <li> <a * href="http://dev.1c-bitrix.ru/api_help/statistic/classes/cstateventtype/getsimplelist.php">CStatEventType::GetSimpleList</a> * </li> <li> <a href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#event_type">Термин "Тип * события"</a> </li> </ul> </ht<a name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/statistic/classes/cstateventtype/getlist.php * @author Bitrix */ public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered, $LIMIT = false) { $err_mess = "File: " . __FILE__ . "<br>Line: "; $DB = CDatabase::GetModuleConnection('statistic'); $find_group = $arFilter["GROUP"]; if ($find_group != "event1" && $find_group != "event2" && $find_group != "total") { $find_group = ""; } $arSqlSearch = array(); $arSqlSearch_h = array(); $strSqlSearch_h = ""; $filter_period = false; $strSqlPeriod = ""; $strT = ""; $CURRENCY = ""; if (is_array($arFilter)) { ResetFilterLogic(); $date1 = $arFilter["DATE1_PERIOD"]; $date2 = $arFilter["DATE2_PERIOD"]; $date_from = MkDateTime(ConvertDateTime($date1, "D.M.Y"), "d.m.Y"); $date_to = MkDateTime(ConvertDateTime($date2, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (strlen($date1) > 0) { $filter_period = true; if (strlen($date2) > 0) { $strSqlPeriod = "if(D.DATE_STAT<FROM_UNIXTIME('{$date_from}'),0, if(D.DATE_STAT>FROM_UNIXTIME('{$date_to}'),0,"; $strT = "))"; } else { $strSqlPeriod = "if(D.DATE_STAT<FROM_UNIXTIME('{$date_from}'),0,"; $strT = ")"; } } elseif (strlen($date2) > 0) { $filter_period = true; $strSqlPeriod = "if(D.DATE_STAT>FROM_UNIXTIME('{$date_to}'),0,"; $strT = ")"; } 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("E." . $key, $val, $match); break; case "DATE_ENTER_1": if (CheckDateTime($val)) { $arSqlSearch[] = "E.DATE_ENTER>=" . $DB->CharToDateFunction($val, "SHORT"); } break; case "DATE_ENTER_2": if (CheckDateTime($val)) { $arSqlSearch[] = "E.DATE_ENTER<" . $DB->CharToDateFunction($val, "SHORT") . " + INTERVAL 1 DAY"; } break; case "DATE_LAST_1": if (CheckDateTime($val)) { $arSqlSearch_h[] = "max(D.DATE_LAST)>=" . $DB->CharToDateFunction($val, "SHORT"); } break; case "DATE_LAST_2": if (CheckDateTime($val)) { $arSqlSearch_h[] = "max(D.DATE_LAST)<" . $DB->CharToDateFunction($val, "SHORT") . " + INTERVAL 1 DAY"; } break; case "EVENT1": case "EVENT2": $match = $arFilter[$key . "_EXACT_MATCH"] == "Y" && $match_value_set ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("E." . $key, $val, $match); break; case "COUNTER1": $arSqlSearch_h[] = "TOTAL_COUNTER>='" . intval($val) . "'"; break; case "COUNTER2": $arSqlSearch_h[] = "TOTAL_COUNTER<='" . intval($val) . "'"; break; case "MONEY1": $arSqlSearch_h[] = "TOTAL_MONEY>='" . roundDB($val) . "'"; break; case "MONEY2": $arSqlSearch_h[] = "TOTAL_MONEY<='" . roundDB($val) . "'"; break; case "ADV_VISIBLE": case "DIAGRAM_DEFAULT": $arSqlSearch[] = $val == "Y" ? "E." . $key . "='Y'" : "E." . $key . "='N'"; break; case "DESCRIPTION": case "NAME": $match = $arFilter[$key . "_EXACT_MATCH"] == "Y" && $match_value_set ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("E." . $key, $val, $match); break; case "KEEP_DAYS1": $arSqlSearch[] = "E.KEEP_DAYS>='" . intval($val) . "'"; break; case "KEEP_DAYS2": $arSqlSearch[] = "E.KEEP_DAYS<='" . intval($val) . "'"; break; case "DYNAMIC_KEEP_DAYS1": $arSqlSearch[] = "E.DYNAMIC_KEEP_DAYS>='" . intval($val) . "'"; break; case "DYNAMIC_KEEP_DAYS2": $arSqlSearch[] = "E.DYNAMIC_KEEP_DAYS<='" . intval($val) . "'"; break; case "CURRENCY": $CURRENCY = $val; break; } } } $rate = 1; $base_currency = GetStatisticBaseCurrency(); $view_currency = $base_currency; if (strlen($base_currency) > 0) { if (CModule::IncludeModule("currency")) { if ($CURRENCY != $base_currency && strlen($CURRENCY) > 0) { $rate = CCurrencyRates::GetConvertFactor($base_currency, $CURRENCY); $view_currency = $CURRENCY; } } } if ($by == "s_id" && $find_group == "") { $strSqlOrder = "ORDER BY E.ID"; } elseif ($by == "s_date_last") { $strSqlOrder = "ORDER BY E_DATE_LAST"; } elseif ($by == "s_date_enter") { $strSqlOrder = "ORDER BY DATE_ENTER"; } elseif ($by == "s_today_counter") { $strSqlOrder = "ORDER BY TODAY_COUNTER"; } elseif ($by == "s_yesterday_counter") { $strSqlOrder = "ORDER BY YESTERDAY_COUNTER"; } elseif ($by == "s_b_yesterday_counter") { $strSqlOrder = "ORDER BY B_YESTERDAY_COUNTER"; } elseif ($by == "s_total_counter") { $strSqlOrder = "ORDER BY TOTAL_COUNTER"; } elseif ($by == "s_period_counter") { $strSqlOrder = "ORDER BY PERIOD_COUNTER"; } elseif ($by == "s_name" && $find_group == "") { $strSqlOrder = "ORDER BY E.NAME"; } elseif ($by == "s_event1" && $find_group == "") { $strSqlOrder = "ORDER BY E.EVENT1"; } elseif ($by == "s_event1" && $find_group == "event1") { $strSqlOrder = "ORDER BY E.EVENT1"; } elseif ($by == "s_event2" && $find_group == "") { $strSqlOrder = "ORDER BY E.EVENT2"; } elseif ($by == "s_event2" && $find_group == "event2") { $strSqlOrder = "ORDER BY E.EVENT2"; } elseif ($by == "s_event12" && $find_group == "") { $strSqlOrder = "ORDER BY E.EVENT1, E.EVENT2"; } elseif ($by == "s_chart" && $find_group == "") { $strSqlOrder = "ORDER BY E.DIAGRAM_DEFAULT desc, TOTAL_COUNTER "; } elseif ($by == "s_stat") { $strSqlOrder = "ORDER BY TODAY_COUNTER desc, YESTERDAY_COUNTER desc, B_YESTERDAY_COUNTER desc, TOTAL_COUNTER desc, PERIOD_COUNTER"; } else { $by = "s_today_counter"; $strSqlOrder = "ORDER BY TODAY_COUNTER desc, YESTERDAY_COUNTER desc, B_YESTERDAY_COUNTER desc, TOTAL_COUNTER desc, PERIOD_COUNTER"; } if ($order != "asc") { $strSqlOrder .= " desc "; $order = "desc"; } $strSqlSearch = GetFilterSqlSearch($arSqlSearch); foreach ($arSqlSearch_h as $sqlWhere) { $strSqlSearch_h .= " and (" . $sqlWhere . ") "; } $limit_sql = "LIMIT " . intval(COption::GetOptionString('statistic', 'RECORDS_LIMIT')); if (intval($LIMIT) > 0) { $limit_sql = "LIMIT " . intval($LIMIT); } if ($find_group == "") { $strSql = "\n\t\t\tSELECT\n\t\t\t\tE.ID,\n\t\t\t\tE.EVENT1,\n\t\t\t\tE.EVENT2,\n\t\t\t\tE.COUNTER,\n\t\t\t\tE.DIAGRAM_DEFAULT,\n\t\t\t\t'" . $DB->ForSql($view_currency) . "'\t\t\t\t\t\t\t\t\tCURRENCY,\n\t\t\t\t" . $DB->DateToCharFunction("E.DATE_ENTER") . "\t\t\t\t\t\tDATE_ENTER,\n\t\t\t\t" . $DB->DateToCharFunction("max(D.DATE_LAST)") . "\t\t\t\t\t\tDATE_LAST,\n\t\t\t\tmax(ifnull(D.DATE_LAST,'1980-01-01'))\t\t\t\t\t\t\tE_DATE_LAST,\n\t\t\t\tsum(ifnull(D.COUNTER,0))+ifnull(E.COUNTER,0)\t\t\t\t\t\tTOTAL_COUNTER,\n\t\t\t\tsum(round(ifnull(D.MONEY,0)*{$rate},2))+round(ifnull(E.MONEY,0)*{$rate},2)\t\t\tTOTAL_MONEY,\n\t\t\t\tsum(if(to_days(curdate())=to_days(D.DATE_STAT),ifnull(D.COUNTER,0),0))\t\t\tTODAY_COUNTER,\n\t\t\t\tsum(if(to_days(curdate())-to_days(D.DATE_STAT)=1,ifnull(D.COUNTER,0),0))\t\tYESTERDAY_COUNTER,\n\t\t\t\tsum(if(to_days(curdate())-to_days(D.DATE_STAT)=2,ifnull(D.COUNTER,0),0))\t\tB_YESTERDAY_COUNTER,\n\t\t\t\tsum(" . ($filter_period ? $strSqlPeriod . 'ifnull(D.COUNTER,0)' . $strT : 0) . ")\t\tPERIOD_COUNTER,\n\t\t\t\tsum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=0,ifnull(D.MONEY,0),0)*{$rate},2))\tTODAY_MONEY,\n\t\t\t\tsum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=1,ifnull(D.MONEY,0),0)*{$rate},2))\tYESTERDAY_MONEY,\n\t\t\t\tsum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=2,ifnull(D.MONEY,0),0)*{$rate},2))\tB_YESTERDAY_MONEY,\n\t\t\t\tsum(round(" . ($filter_period ? $strSqlPeriod . 'ifnull(D.MONEY,0)' . $strT : 0) . "*{$rate},2))\tPERIOD_MONEY,\n\t\t\t\tE.NAME,\n\t\t\t\tE.DESCRIPTION,\n\t\t\t\tif (length(E.NAME)>0, E.NAME, concat(E.EVENT1,' / ',ifnull(E.EVENT2,'')))\t\tEVENT\n\t\t\tFROM\n\t\t\t\tb_stat_event E\n\t\t\tLEFT JOIN b_stat_event_day D ON (D.EVENT_ID = E.ID)\n\t\t\tWHERE\n\t\t\t{$strSqlSearch}\n\t\t\tGROUP BY E.ID\n\t\t\tHAVING\n\t\t\t\t'1'='1'\n\t\t\t\t{$strSqlSearch_h}\n\t\t\t{$strSqlOrder}\n\t\t\t{$limit_sql}\n\t\t\t"; $res = $DB->Query($strSql, false, $err_mess . __LINE__); } elseif ($find_group == "total") { $arResult = array("TOTAL_COUNTER" => 0, "TOTAL_MONEY" => 0, "TODAY_COUNTER" => 0, "YESTERDAY_COUNTER" => 0, "B_YESTERDAY_COUNTER" => 0, "PERIOD_COUNTER" => 0, "TODAY_MONEY" => 0, "YESTERDAY_MONEY" => 0, "B_YESTERDAY_MONEY" => 0, "PERIOD_MONEY" => 0); $strSql = "\n\t\t\tSELECT\n\t\t\t\tsum(ifnull(D.COUNTER,0))\t\t\t\t\t\t\t\tTOTAL_COUNTER,\n\t\t\t\tsum(round(ifnull(D.MONEY,0)*{$rate},2))\t\t\t\t\t\t\tTOTAL_MONEY,\n\t\t\t\tsum(if(to_days(curdate())=to_days(D.DATE_STAT),ifnull(D.COUNTER,0),0))\t\t\tTODAY_COUNTER,\n\t\t\t\tsum(if(to_days(curdate())-to_days(D.DATE_STAT)=1,ifnull(D.COUNTER,0),0))\t\tYESTERDAY_COUNTER,\n\t\t\t\tsum(if(to_days(curdate())-to_days(D.DATE_STAT)=2,ifnull(D.COUNTER,0),0))\t\tB_YESTERDAY_COUNTER,\n\t\t\t\tsum(" . ($filter_period ? $strSqlPeriod . 'ifnull(D.COUNTER,0)' . $strT : 0) . ")\t\tPERIOD_COUNTER,\n\t\t\t\tsum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=0,ifnull(D.MONEY,0),0)*{$rate},2))\tTODAY_MONEY,\n\t\t\t\tsum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=1,ifnull(D.MONEY,0),0)*{$rate},2))\tYESTERDAY_MONEY,\n\t\t\t\tsum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=2,ifnull(D.MONEY,0),0)*{$rate},2))\tB_YESTERDAY_MONEY,\n\t\t\t\tsum(round(" . ($filter_period ? $strSqlPeriod . 'ifnull(D.MONEY,0)' . $strT : 0) . "*{$rate},2))\tPERIOD_MONEY\n\t\t\tFROM\n\t\t\t\tb_stat_event E\n\t\t\t\tLEFT JOIN b_stat_event_day D ON (D.EVENT_ID = E.ID)\n\t\t\tWHERE\n\t\t\t\t{$strSqlSearch}\n\t\t\tHAVING\n\t\t\t\t'1'='1'\n\t\t\t\t{$strSqlSearch_h}\n\t\t\t"; $res = $DB->Query($strSql, false, $err_mess . __LINE__); if ($ar = $res->Fetch()) { foreach ($ar as $k => $v) { $arResult[$k] += $v; } } $strSql = "\n\t\t\tSELECT\n\t\t\t\tsum(ifnull(E.COUNTER,0))\t\tTOTAL_COUNTER,\n\t\t\t\tsum(round(ifnull(E.MONEY,0)*{$rate},2))\tTOTAL_MONEY\n\t\t\tFROM\n\t\t\t\tb_stat_event E\n\t\t\tWHERE\n\t\t\t\t{$strSqlSearch}\n\t\t\t"; $res = $DB->Query($strSql, false, $err_mess . __LINE__); if ($ar = $res->Fetch()) { foreach ($ar as $k => $v) { $arResult[$k] += $v; } } $arResult["CURRENCY"] = $view_currency; $res = new CDBResult(); $res->InitFromArray(array($arResult)); } else { $arResult = array(); if ($find_group == "event1") { $group = "E.EVENT1"; } else { $group = "E.EVENT2"; } $strSql = "\n\t\t\tSELECT\n\t\t\t\t{$group}\t\t\t\t\t\t\t\t\t\t\tGROUPING_KEY,\n\t\t\t\t{$group},\n\t\t\t\t'" . $DB->ForSql($view_currency) . "'\t\t\t\t\t\t\t\t\tCURRENCY,\n\t\t\t\t" . $DB->DateToCharFunction("min(E.DATE_ENTER)") . "\t\t\t\t\tDATE_ENTER,\n\t\t\t\t" . $DB->DateToCharFunction("max(D.DATE_LAST)") . "\t\t\t\t\t\tDATE_LAST,\n\t\t\t\tmax(ifnull(D.DATE_LAST,'1980-01-01'))\t\t\t\t\t\t\tE_DATE_LAST,\n\t\t\t\tsum(ifnull(D.COUNTER,0))\t\t\t\t\t\t\t\tTOTAL_COUNTER,\n\t\t\t\tsum(round(ifnull(D.MONEY,0)*{$rate},2))\t\t\t\t\t\t\tTOTAL_MONEY,\n\t\t\t\tsum(if(to_days(curdate())=to_days(D.DATE_STAT),ifnull(D.COUNTER,0),0))\t\t\tTODAY_COUNTER,\n\t\t\t\tsum(if(to_days(curdate())-to_days(D.DATE_STAT)=1,ifnull(D.COUNTER,0),0))\t\tYESTERDAY_COUNTER,\n\t\t\t\tsum(if(to_days(curdate())-to_days(D.DATE_STAT)=2,ifnull(D.COUNTER,0),0))\t\tB_YESTERDAY_COUNTER,\n\t\t\t\tsum(" . ($filter_period ? $strSqlPeriod . 'ifnull(D.COUNTER,0)' . $strT : 0) . ")\t\tPERIOD_COUNTER,\n\t\t\t\tsum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=0,ifnull(D.MONEY,0),0)*{$rate},2))\tTODAY_MONEY,\n\t\t\t\tsum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=1,ifnull(D.MONEY,0),0)*{$rate},2))\tYESTERDAY_MONEY,\n\t\t\t\tsum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=2,ifnull(D.MONEY,0),0)*{$rate},2))\tB_YESTERDAY_MONEY,\n\t\t\t\tsum(round(" . ($filter_period ? $strSqlPeriod . 'ifnull(D.MONEY,0)' . $strT : 0) . "*{$rate},2))\tPERIOD_MONEY\n\t\t\tFROM\n\t\t\t\tb_stat_event E\n\t\t\tLEFT JOIN b_stat_event_day D ON (D.EVENT_ID = E.ID)\n\t\t\tWHERE\n\t\t\t{$strSqlSearch}\n\t\t\tGROUP BY {$group}\n\t\t\tHAVING\n\t\t\t\t'1'='1'\n\t\t\t\t{$strSqlSearch_h}\n\t\t\t{$strSqlOrder}\n\t\t\t"; $res = $DB->Query($strSql, false, $err_mess . __LINE__); while ($ar = $res->Fetch()) { $arResult[$ar["GROUPING_KEY"]] = $ar; } $strSql = "\n\t\t\tSELECT\n\t\t\t\t{$group}\t\t\t\t\t\t\tGROUPING_KEY,\n\t\t\t\t'" . $DB->ForSql($view_currency) . "'\t\t\t\t\tCURRENCY,\n\t\t\t\tsum(ifnull(E.COUNTER,0))\t\t\t\tCOUNTER,\n\t\t\t\tsum(round(ifnull(E.MONEY,0)*{$rate},2))\t\t\tTOTAL_MONEY,\n\t\t\t\t" . $DB->DateToCharFunction("min(E.DATE_ENTER)") . "\tDATE_ENTER\n\t\t\tFROM\n\t\t\t\tb_stat_event E\n\t\t\tWHERE\n\t\t\t{$strSqlSearch}\n\t\t\tGROUP BY {$group}\n\t\t\t"; $res = $DB->Query($strSql, false, $err_mess . __LINE__); while ($ar = $res->Fetch()) { if (array_key_exists($ar["GROUPING_KEY"], $arResult)) { $arResult[$ar["GROUPING_KEY"]]["TOTAL_COUNTER"] += $ar["COUNTER"]; $arResult[$ar["GROUPING_KEY"]]["TOTAL_MONEY"] += $ar["MONEY"]; } else { $arResult[$ar["GROUPING_KEY"]] = array("GROUPING_KEY" => $ar["GROUPING_KEY"], $find_group == "event1" ? "EVENT1" : "EVENT2" => $ar["GROUPING_KEY"], "CURRENCY" => $ar["CURRENCY"], "DATE_ENTER" => $ar["DATE_ENTER"], "TOTAL_COUNTER" => $ar["COUNTER"], "TOTAL_MONEY" => $ar["MONEY"], "TODAY_COUNTER" => 0, "YESTERDAY_COUNTER" => 0, "B_YESTERDAY_COUNTER" => 0, "PERIOD_COUNTER" => 0, "TODAY_MONEY" => 0, "YESTERDAY_MONEY" => 0, "B_YESTERDAY_MONEY" => 0, "PERIOD_MONEY" => 0); /*DATE_LAST,E_DATE_LAST,*/ } } $res = new CDBResult(); $res->InitFromArray($arResult); } $is_filtered = IsFiltered($strSqlSearch) || $filter_period || strlen($strSqlSearch_h) > 0 || $find_group != ""; return $res; }
</td> </tr> <tr align="right"> <td><b>Girada el: </b></td> <td><?php echo CSalePaySystemAction::GetParamValue("DATE_INSERT", false); ?> </td> </tr> <?php if (CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false)) { ?> <tr align="right"> <td><b>Para pagarse el: </b></td> <td><?php echo ConvertDateTime(CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false), FORMAT_DATE) ?: CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false); ?> </td> </tr> <?php } ?> </table> </td> </tr> </table> <br> <br> <br>
} $arResult["Post"]["textFormated"] = $p->convert($arPost["~DETAIL_TEXT"], false, $arImages, $arAllow, $arParserParams); } if (!empty($p->showedImages)) { foreach ($p->showedImages as $val) { if (!empty($arResult["images"][$val])) { unset($arResult["images"][$val]); } } } $arResult["Post"]["DATE_PUBLISH_FORMATED"] = FormatDate($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arResult["Post"]["DATE_PUBLISH"], CSite::GetDateFormat("FULL"))); $arResult["Post"]["DATE_PUBLISH_DATE"] = ConvertDateTime($arResult["Post"]["DATE_PUBLISH"], FORMAT_DATE); $arResult["Post"]["DATE_PUBLISH_TIME"] = ConvertDateTime($arResult["Post"]["DATE_PUBLISH"], "HH:MI"); $arResult["Post"]["DATE_PUBLISH_D"] = ConvertDateTime($arResult["Post"]["DATE_PUBLISH"], "DD"); $arResult["Post"]["DATE_PUBLISH_M"] = ConvertDateTime($arResult["Post"]["DATE_PUBLISH"], "MM"); $arResult["Post"]["DATE_PUBLISH_Y"] = ConvertDateTime($arResult["Post"]["DATE_PUBLISH"], "YYYY"); $arResult["BlogUser"] = CBlogUser::GetByID($arPost["AUTHOR_ID"], BLOG_BY_USER_ID); $arResult["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arResult["BlogUser"]); $dbUser = CUser::GetByID($arPost["AUTHOR_ID"]); $arResult["arUser"] = $dbUser->GetNext(); $arResult["AuthorName"] = CBlogUser::GetUserName($arResult["BlogUser"]["ALIAS"], $arResult["arUser"]["NAME"], $arResult["arUser"]["LAST_NAME"], $arResult["arUser"]["LOGIN"]); if ($arResult["PostPerm"] > BLOG_PERMS_MODERATE || $arResult["PostPerm"] >= BLOG_PERMS_PREMODERATE && $arPost["AUTHOR_ID"] == $arResult["USER_ID"]) { $arResult["urlToEdit"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST_EDIT"], array("blog" => $arBlog["URL"], "post_id" => $arPost["ID"], "user_id" => $arParams["USER_ID"])); } if ($arResult["PostPerm"] >= BLOG_PERMS_MODERATE) { $arResult["urlToHide"] = htmlspecialcharsex($APPLICATION->GetCurPageParam("hide=Y", array("del_id", "sessid", "success", "hide", "delete"))); } if ($arResult["PostPerm"] >= BLOG_PERMS_FULL) { $arResult["urlToDelete"] = htmlspecialcharsex($APPLICATION->GetCurPageParam("delete=Y", array("sessid", "delete", "hide"))); } $arResult["BlogUser"]["AVATAR_file"] = CFile::GetFileArray($arResult["BlogUser"]["AVATAR"]);
function RemindPayment() { $reminder = COption::GetOptionString("sale", "pay_reminder", ""); $arReminder = unserialize($reminder); if (!empty($arReminder)) { $arSites = array(); $minDay = mktime(); foreach ($arReminder as $key => $val) { if ($val["use"] == "Y") { $arSites[] = $key; $days = array(); for ($i = 0; $i <= floor($val["period"] / $val["frequency"]); $i++) { $day = AddToTimeStamp(array("DD" => -($val["after"] + $val["period"] - $val["frequency"] * $i))); if ($day < mktime()) { if ($minDay > $day) { $minDay = $day; } $day = ConvertTimeStamp($day); $days[] = $day; } } $arReminder[$key]["days"] = $days; } } if (!empty($arSites)) { $bTmpUser = False; if (!isset($GLOBALS["USER"]) || !is_object($GLOBALS["USER"])) { $bTmpUser = True; $GLOBALS["USER"] = new CUser(); } $arFilter = array("LID" => $arSites, "PAYED" => "N", "CANCELED" => "N", "ALLOW_DELIVERY" => "N", ">=DATE_INSERT" => ConvertTimeStamp($minDay)); $dbOrder = CSaleOrder::GetList(array("ID" => "DESC"), $arFilter, false, false, array("ID", "DATE_INSERT", "PAYED", "USER_ID", "LID", "PRICE", "CURRENCY")); while ($arOrder = $dbOrder->GetNext()) { $date_insert = ConvertDateTime($arOrder["DATE_INSERT"], CSite::GetDateFormat("SHORT")); if (in_array($date_insert, $arReminder[$arOrder["LID"]]["days"])) { $strOrderList = ""; $dbBasketTmp = CSaleBasket::GetList(array("NAME" => "ASC"), array("ORDER_ID" => $arOrder["ID"]), false, false, array("ID", "NAME", "QUANTITY")); while ($arBasketTmp = $dbBasketTmp->Fetch()) { $strOrderList .= $arBasketTmp["NAME"] . " (" . $arBasketTmp["QUANTITY"] . ")"; $strOrderList .= "\n"; } $payerEMail = ""; $dbOrderProp = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $arOrder["ID"], "PROP_IS_EMAIL" => "Y")); if ($arOrderProp = $dbOrderProp->Fetch()) { $payerEMail = $arOrderProp["VALUE"]; } $payerName = ""; $dbUser = CUser::GetByID($arOrder["USER_ID"]); if ($arUser = $dbUser->Fetch()) { if (strlen($payerName) <= 0) { $payerName = $arUser["NAME"] . (strlen($arUser["NAME"]) <= 0 || strlen($arUser["LAST_NAME"]) <= 0 ? "" : " ") . $arUser["LAST_NAME"]; } if (strlen($payerEMail) <= 0) { $payerEMail = $arUser["EMAIL"]; } } $arFields = array("ORDER_ID" => $arOrder["ID"], "ORDER_DATE" => $date_insert, "ORDER_USER" => $payerName, "PRICE" => SaleFormatCurrency($arOrder["PRICE"], $arOrder["CURRENCY"]), "BCC" => COption::GetOptionString("sale", "order_email", "order@" . $_SERVER["SERVER_NAME"]), "EMAIL" => $payerEMail, "ORDER_LIST" => $strOrderList, "SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@" . $SERVER_NAME)); $eventName = "SALE_ORDER_REMIND_PAYMENT"; $bSend = true; foreach (GetModuleEvents("sale", "OnOrderRemindSendEmail", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($arOrder["ID"], &$eventName, &$arFields)) === false) { $bSend = false; } } if ($bSend) { $event = new CEvent(); $event->Send($eventName, $arOrder["LID"], $arFields, "N"); } } } if ($bTmpUser) { unset($GLOBALS["USER"]); } } } return "CSaleOrder::RemindPayment();"; }
} } // LAST TOPIC $DATE_FROM = trim($DATE_FROM); $DATE_TO = trim($DATE_TO); $DATE_FROM_DAYS_TO_BACK = intval($DATE_FROM_DAYS_TO_BACK); if (!empty($DATE_FROM) || !empty($DATE_TO) || $DATE_FROM_DAYS_TO_BACK > 0) { $date1_stm = MkDateTime(ConvertDateTime($DATE_FROM, "D.M.Y"), "d.m.Y"); $date2_stm = MkDateTime(ConvertDateTime($DATE_TO, "D.M.Y"), "d.m.Y"); if (!empty($DATE_FROM)) { if (!empty($DATE_TO)) { $date2_stm = MkDateTime(ConvertDateTime($DATE_TO, "D.M.Y") . " 23:59:59", "d.m.Y H:i:s"); $DATE_TO .= " 23:59:59"; } else { if ($DATE_FROM_FILTER_PERIOD == "after") { $date1_stm = MkDateTime(ConvertDateTime($DATE_FROM, "D.M.Y") . " 23:59:59", "d.m.Y H:i:s"); $DATE_FROM .= " 23:59:59"; } } } if ($DATE_FROM_DAYS_TO_BACK > 0) { $date1_stm = time() - 86400 * $DATE_FROM_DAYS_TO_BACK; $date1_stm = GetTime($date1_stm); } if (!$date1_stm && !empty($DATE_FROM)) { $arMsg[] = array("id" => ">=LAST_POST_DATE", "text" => GetMessage("FM_WRONG_DATE_FROM")); } if (!$date2_stm && !empty($DATE_TO)) { $arMsg[] = array("id" => "<=LAST_POST_DATE", "text" => GetMessage("FM_WRONG_DATE_TO")); } elseif ($date1_stm && $date2_stm && $date2_stm <= $date1_stm) { $arMsg[] = array("id" => "find_date_timestamp2", "text" => GetMessage("FM_FROM_TILL_TIMESTAMP"));
} } $sellerAccPos = CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false)); if ($isAccSign && $pdf->GetStringWidth($sellerAccPos) <= 160) { $pdf->SetY($pdf->GetY() + min($signHeight, 30) - 15); } $pdf->MultiCell(150, 15, $sellerAccPos, 0, 'L'); $pdf->SetXY($margin['left'] + 150, $pdf->GetY() - 15); if ($isAccSign) { $pdf->Image(CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN', false), $pdf->GetX() + 80 - $signWidth / 2, $pdf->GetY() - $signHeight + 15, $signWidth, $signHeight); } $x1 = $pdf->GetX(); $pdf->Cell(CSalePaySystemAction::GetParamValue("SELLER_DIR", false) ? $x2 - $x1 : 160, 15, ''); $x2 = $pdf->GetX(); if (CSalePaySystemAction::GetParamValue("SELLER_ACC", false)) { $pdf->Write(15, CSalePdf::prepareToPdf('(' . CSalePaySystemAction::GetParamValue("SELLER_ACC", false) . ')')); } $pdf->Ln(); $y2 = $pdf->GetY(); $pdf->Line($x1, $y2, $x2, $y2); } $dest = 'I'; if ($_REQUEST['GET_CONTENT'] == 'Y') { $dest = 'S'; } else { if ($_REQUEST['DOWNLOAD'] == 'Y') { $dest = 'D'; } } return $pdf->Output(sprintf('Schet No %s ot %s.pdf', $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ACCOUNT_NUMBER"], ConvertDateTime($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"], 'YYYY-MM-DD')), $dest);
</td> <td style="width: 20pt; "> </td> <td>Посада: </td> <td style="width: 160pt; border: 1pt solid #000000; border-width: 0pt 0pt 1pt 0pt; "> <input style="border: none; background: none; width: 100%; text-align: center; " type="text" value="<?php echo CSalePaySystemAction::GetParamValue("SELLER_ACC_POS"); ?> " > </td> </tr> </table> </div> <br> <br> <? if (CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE")) { ?> <div style="text-align: right; "><b><?php echo sprintf("Рахунок дійсний до сплати до %s", ConvertDateTime(CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE"), FORMAT_DATE) ?: CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE")); ?> </b></div> <? } ?> </div> </body> </html>
function CheckFilter() // проверка введенных полей { global $strError, $arFilterFields; reset($arFilterFields); foreach ($arFilterFields as $f) global $$f; $str = ""; $arMsg = Array(); if (strlen(trim($find_date_create1))>0 || strlen(trim($find_date_create2))>0) { // Дата создания $date_1_ok = false; $date1_stm = MkDateTime(ConvertDateTime($find_date_create1,"D.M.Y"),"d.m.Y"); $date2_stm = MkDateTime(ConvertDateTime($find_date_create2,"D.M.Y")." 23:59","d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_date_create1))>0) { //$str.= GetMessage("SUP_WRONG_DATE_CREATE_FROM")."<br>"; $arMsg[] = array("id"=>"find_date_create1", "text"=> GetMessage("SUP_WRONG_DATE_CREATE_FROM")); } else { $date_1_ok = true; } if (!$date2_stm && strlen(trim($find_date_create2))>0) { //$str.= GetMessage("SUP_WRONG_DATE_CREATE_TILL")."<br>"; $arMsg[] = array("id"=>"find_date_create2", "text"=> GetMessage("SUP_WRONG_DATE_CREATE_TILL")); } elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm)>0) { //$str.= GetMessage("SUP_FROM_TILL_DATE_CREATE")."<br>"; $arMsg[] = array("id"=>"find_date_create2", "text"=> GetMessage("SUP_FROM_TILL_DATE_CREATE")); } } if (strlen(trim($find_date_timestamp1))>0 || strlen(trim($find_date_timestamp2))>0) { // Дата изменения $date_1_ok = false; $date1_stm = MkDateTime(ConvertDateTime($find_date_timestamp1,"D.M.Y"),"d.m.Y"); $date2_stm = MkDateTime(ConvertDateTime($find_date_timestamp2,"D.M.Y")." 23:59","d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_date_timestamp1))>0) { //$str.= GetMessage("SUP_WRONG_DATE_TIMESTAMP_FROM")."<br>"; $arMsg[] = array("id"=>"find_date_timestamp1", "text"=> GetMessage("SUP_WRONG_DATE_TIMESTAMP_FROM")); } else { $date_1_ok = true; } if (!$date2_stm && strlen(trim($find_date_timestamp2))>0) { //$str.= GetMessage("SUP_WRONG_DATE_TIMESTAMP_TILL")."<br>"; $arMsg[] = array("id"=>"find_date_timestamp2", "text"=> GetMessage("SUP_WRONG_DATE_TIMESTAMP_TILL")); } elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm)>0) { //$str.= GetMessage("SUP_FROM_TILL_DATE_TIMESTAMP")."<br>"; $arMsg[] = array("id"=>"find_date_timestamp2", "text"=> GetMessage("SUP_FROM_TILL_DATE_TIMESTAMP")); } } if (strlen(trim($find_date_close1))>0 || strlen(trim($find_date_close2))>0) { // Дата закрытия $date_1_ok = false; $date1_stm = MkDateTime(ConvertDateTime($find_date_close1,"D.M.Y"),"d.m.Y"); $date2_stm = MkDateTime(ConvertDateTime($find_date_close2,"D.M.Y")." 23:59","d.m.Y H:i"); if (!$date1_stm && strlen(trim($find_date_close1))>0) { //$str.= GetMessage("SUP_WRONG_DATE_CLOSE_FROM")."<br>"; $arMsg[] = array("id"=>"find_date_close1", "text"=> GetMessage("SUP_WRONG_DATE_CLOSE_FROM")); } else { $date_1_ok = true; } if (!$date2_stm && strlen(trim($find_date_close2))>0) { //$str.= GetMessage("SUP_WRONG_DATE_CLOSE_TILL")."<br>"; $arMsg[] = array("id"=>"find_date_close2", "text"=> GetMessage("SUP_WRONG_DATE_CLOSE_TILL")); } elseif ($date_1_ok && $date2_stm <= $date1_stm && strlen($date2_stm)>0) { //$str.= GetMessage("SUP_FROM_TILL_DATE_CLOSE")."<br>"; $arMsg[] = array("id"=>"find_date_close2", "text"=> GetMessage("SUP_FROM_TILL_DATE_CLOSE")); } } // сообщений if (intval($find_messages1)>0 and intval($find_messages2)>0 and $find_messages1>$find_messages2) { //$str .= GetMessage("SUP_MESSAGES1_MESSAGES2")."<br>"; $arMsg[] = array("id"=>"find_messages2", "text"=> GetMessage("SUP_MESSAGES1_MESSAGES2")); } if(!empty($arMsg)) { $e = new CAdminException($arMsg); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } return true; }
} $arResult["TITLE"] = GetMessage("IBL_NEWS_CAL_M_" . date("n", mktime(0, 0, 0, $currentMonth, 1, $currentYear))) . " " . $currentYear; $arResult["currentMonth"] = $currentMonth; $arResult["currentYear"] = $currentYear; $arResult["WEEK_DAYS"] = array(array("FULL" => GetMessage("IBL_NEWS_CAL_D_0"), "SHORT" => GetMessage("IBL_NEWS_CAL_S_0")), array("FULL" => GetMessage("IBL_NEWS_CAL_D_1"), "SHORT" => GetMessage("IBL_NEWS_CAL_S_1")), array("FULL" => GetMessage("IBL_NEWS_CAL_D_2"), "SHORT" => GetMessage("IBL_NEWS_CAL_S_2")), array("FULL" => GetMessage("IBL_NEWS_CAL_D_3"), "SHORT" => GetMessage("IBL_NEWS_CAL_S_3")), array("FULL" => GetMessage("IBL_NEWS_CAL_D_4"), "SHORT" => GetMessage("IBL_NEWS_CAL_S_4")), array("FULL" => GetMessage("IBL_NEWS_CAL_D_5"), "SHORT" => GetMessage("IBL_NEWS_CAL_S_5")), array("FULL" => GetMessage("IBL_NEWS_CAL_D_6"), "SHORT" => GetMessage("IBL_NEWS_CAL_S_6"))); $i = $arParams["WEEK_START"]; while ($i > 0) { $arResult["WEEK_DAYS"][] = array_shift($arResult["WEEK_DAYS"]); $i--; } $arFilter = array("ACTIVE" => "Y", ">=" . $arParams["DATE_FIELD"] => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0, 0, 0, $currentMonth, 1, $currentYear)), "<" . $arParams["DATE_FIELD"] => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0, 0, 0, $currentMonth + 1, 1, $currentYear)), "IBLOCK_ID" => $arParams["IBLOCK_ID"]); $arSelectedFields = array("ACTIVE", $arParams["DATE_FIELD"], "ID", "IBLOCK_ID", "SITE_ID", "DETAIL_PAGE_URL", "NAME", "LANG_DIR", "SORT", "IBLOCK_TYPE", "PREVIEW_TEXT", "PREVIEW_TEXT_TYPE"); $dbItems = CIBlockElement::GetList(array($arParams["DATE_FIELD"] => "ASC", "ID" => "ASC"), $arFilter, false, false, $arSelectedFields); $dbItems->SetUrlTemplates($arParams["DETAIL_URL"]); while ($arItem = $dbItems->GetNext()) { $arDays[ConvertDateTime($arItem[$arParams["DATE_FIELD"]], CLang::GetDateFormat("SHORT"))][] = $arItem; } $bPrevM = false; $bPrevY = false; if ($arParams["SHOW_YEAR"]) { $arFilter = array("ACTIVE" => "Y", "<" . $arParams["DATE_FIELD"] => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0, 0, 0, 1, 1, $currentYear)), "IBLOCK_ID" => $arParams["IBLOCK_ID"]); $dbItems = CIBlockElement::GetList(array(), $arFilter, false, array("nTopCount" => 1), array("ID", "IBLOCK_ID")); if ($arItem = $dbItems->GetNext()) { $bPrevM = true; $bPrevY = true; } } if (!$bPrevM) { $arFilter = array("ACTIVE" => "Y", "<" . $arParams["DATE_FIELD"] => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0, 0, 0, $currentMonth, 1, $currentYear)), "IBLOCK_ID" => $arParams["IBLOCK_ID"]); $dbItems = CIBlockElement::GetList(array(), $arFilter, false, array("nTopCount" => 1), array("ID", "IBLOCK_ID")); if ($arItem = $dbItems->GetNext()) {
public static function GetUsableDate($date = '') { return ConvertDateTime($date, "DD.MM.YYYY HH:MI"); }
//************************************!Check filter *************************************************************** $USER_ID = intVal($USER_ID); $arFilter = array("USER_ID" => $USER_ID); $arMsg = array(); $err = false; if ($USER_ID <= 0) { $arMsg[] = array("id" => "USER_ID", "text" => GetMessage("FM_WRONG_USER_ID")); } $date1_stm = ""; $date2_stm = ""; $DATE_FROM_S = trim($DATE_FROM_S); $DATE_TO_S = trim($DATE_TO_S); $DATE_FROM_S_DAYS_TO_BACK = intval($DATE_FROM_S_DAYS_TO_BACK); if (strlen($DATE_FROM_S) > 0 || strlen($DATE_TO_S) > 0 || $DATE_FROM_S_DAYS_TO_BACK > 0) { $date1_stm = MkDateTime(ConvertDateTime($DATE_FROM_S, "D.M.Y"), "d.m.Y"); $date2_stm = MkDateTime(ConvertDateTime($DATE_TO_S, "D.M.Y") . " 23:59", "d.m.Y H:i"); if ($DATE_FROM_S_DAYS_TO_BACK > 0) { $date1_stm = time() - 86400 * $DATE_FROM_S_DAYS_TO_BACK; $date1_stm = GetTime($date1_stm); } if (!$date1_stm) { $arMsg[] = array("id" => ">=START_DATE", "text" => GetMessage("FM_WRONG_DATE_FROM")); } if (!$date2_stm && strlen($DATE_TO_S) > 0) { $arMsg[] = array("id" => "<=START_DATE", "text" => GetMessage("FM_WRONG_DATE_TO")); } elseif ($date1_stm && $date2_stm && $date2_stm <= $date1_stm) { $arMsg[] = array("id" => "find_date_timestamp2", "text" => GetMessage("FM_WRONG_PERIOD")); } } $Filter_S = trim($Filter_S); $FilterType_S = strtolower(trim($FilterType_S));
function ConvertTimeStampForReport($timestamp, $format = "FULL") { $datatime = ConvertTimeStamp($timestamp, $format); $tm_format = TM_FULL_FORMAT; if ($format == "SHORT") { $tm_format = TM_SHORT_FORMAT; } return ConvertDateTime($datatime, $tm_format); }
/** * <p>Возвращает список <a href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#search">поисковых систем</a> и количество <a href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#search_hit">хитов</a> (проиндексированных страниц) каждой из них за все время ведения статистики, за последние 3 дня, либо за указанный интервал времени.</p> * * * @param string &$by = "s_today_hits" Поле для сортировки. Возможные значения: <ul> <li> <b>s_id</b> - ID поисковой * системы; </li> <li> <b>s_date_last</b> - дата последнего хита; </li> <li> <b>s_today_hits</b> - * количество хитов за сегодня; </li> <li> <b>s_yesterday_hits</b> - количество * хитов за вчера; </li> <li> <b>s_b_yesterday_hits</b> - количество хитов за * позавчера; </li> <li> <b>s_total_hits</b> - суммарное количество хитов; </li> <li> * <b>s_period_hits</b> - количество хитов за установленный период времени * (<i>filter</i>["<b>DATE1</b>"], <i>filter</i>["<b>DATE2</b>"]); </li> <li> <b>s_name</b> - название * поисковой системы; </li> <li> <b>s_user_agent</b> - <a * href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#search_useragent">UserAgent поисковой * системы</a>. </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>ID_EXACT_MATCH</b> - если значение равно "N", то при фильтрации по <b>ID</b> * будет искаться вхождение </li> <li> <b>ACTIVE</b> - флаг активности, * возможные значения: <ul> <li> <b>Y</b> - активна; </li> <li> <b>N</b> - не активна. * </li> </ul> </li> <li> <b>SAVE_STATISTIC</b> - флаг "сохранять хиты поисковой системы", * возможные значения: <ul> <li> <b>Y</b> - да; </li> <li> <b>N</b> - нет. </li> </ul> </li> <li> * <b>DIAGRAM_DEFAULT</b> - флаг "включать в круговую диаграмму и график по * умолчанию", возможные значения: <ul> <li> <b>Y</b> - да; </li> <li> <b>N</b> - нет. </li> * </ul> </li> <li> <b>HITS1</b> - начальное значение интервала для поля * "количество хитов"; </li> <li> <b>HITS2</b> - конечное значение интервала для * поля "количество хитов"; </li> <li> <b>DATE1_PERIOD</b> - начальное значение * значение для произвольного периода; </li> <li> <b>DATE2_PERIOD</b> - конечное * значение значение для произвольного периода; </li> <li> <b>DATE1</b> - * начальное значение интервала для поля "дата последнего хита * поисковой системы"; </li> <li> <b>DATE2</b> - конечное значение интервала * для поля "дата последнего хита поисковой системы"; </li> <li> <b>NAME</b>* - * наименование поисковой системы; </li> <li> <b>NAME_EXACT_MATCH</b> - если * значение равно "Y", то при фильтрации по <b>NAME</b> будет искаться * точное совпадение; </li> <li> <b>USER_AGENT</b>* - UserAgent поисковой системы; </li> * <li> <b>USER_AGENT_EXACT_MATCH</b> - если значение равно "Y", то при фильтрации по * <b>USER_AGENT</b> будет искаться точное совпадение. </li> </ul> * - допускается * <a href="http://dev.1c-bitrix.ru/api_help/main/general/filter.php">сложная логика</a> * * @param bool &$is_filtered Флаг отфильтрованности списка поисковых систем. Если значение * равно "true", то список был отфильтрован. * * @param mixed $limit = false Максимальное количество поисковых систем которые будут выбраны * в списке. Если значение равно false, то кол-во РК будет ограничено в * соответствии со значением параметра "Максимальное кол-во * показываемых записей в таблицах" из настроек модуля "Статистика". * * @return CDBResult * * <h4>Example</h4> * <pre> * <? * // отфильтруем данные только для поисковой системы #20 и #21 * // а также получим дополнительные данные на декабрь 2005 года * $arFilter = array( * "ID" => "20 | 21", * "DATE1_PERIOD" => "01.12.2005", * "DATE2_PERIOD" => "31.12.2005", * ); * * // получим список записей * $rs = <b>CSearcher::GetList</b>( * ($by = "s_today_hits"), * ($order = "desc"), * $arFilter, * $is_filtered * ); * * // выведем все записи * while ($ar = $rs->Fetch()) * { * echo "<pre>"; print_r($ar); echo "</pre>"; * } * ?> * </pre> * * * <h4>See Also</h4> * <ul> <li> <a * href="http://dev.1c-bitrix.ru/api_help/statistic/classes/csearcher/getdropdownlist.php">CSearcher::GetDropdownList</a> * </li> <li> <a href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#search">Термин "Поисковая * система"</a> </li> </ul> <a name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/statistic/classes/csearcher/getlist.php * @author Bitrix */ public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered, $LIMIT = false) { $err_mess = "File: " . __FILE__ . "<br>Line: "; $DB = CDatabase::GetModuleConnection('statistic'); $arSqlSearch = array("S.ID <> 1"); $arSqlSearch_h = array(); $strSqlSearch_h = ""; $filter_period = false; $strSqlPeriod = ""; $strT = ""; if (is_array($arFilter)) { ResetFilterLogic(); $date1 = $arFilter["DATE1_PERIOD"]; $date2 = $arFilter["DATE2_PERIOD"]; $date_from = MkDateTime(ConvertDateTime($date1, "D.M.Y"), "d.m.Y"); $date_to = MkDateTime(ConvertDateTime($date2, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (CheckDateTime($date1) && strlen($date1) > 0) { $filter_period = true; if (strlen($date2) > 0) { $strSqlPeriod = "sum(if(D.DATE_STAT<FROM_UNIXTIME('{$date_from}'),0, if(D.DATE_STAT>FROM_UNIXTIME('{$date_to}'),0,"; $strT = ")))"; } else { $strSqlPeriod = "sum(if(D.DATE_STAT<FROM_UNIXTIME('{$date_from}'),0,"; $strT = "))"; } } elseif (CheckDateTime($date2) && strlen($date2) > 0) { ResetFilterLogic(); $filter_period = true; $strSqlPeriod = "sum(if(D.DATE_STAT>FROM_UNIXTIME('{$date_to}'),0,"; $strT = "))"; } 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("S.ID", $val, $match); break; case "ACTIVE": case "SAVE_STATISTIC": case "DIAGRAM_DEFAULT": $arSqlSearch[] = $val == "Y" ? "S." . $key . "='Y'" : "S." . $key . "='N'"; break; case "HITS1": $arSqlSearch_h[] = "(sum(ifnull(D.TOTAL_HITS,0))+ifnull(S.TOTAL_HITS,0))>='" . intval($val) . "'"; break; case "HITS2": $arSqlSearch_h[] = "(sum(ifnull(D.TOTAL_HITS,0))+ifnull(S.TOTAL_HITS,0))<='" . intval($val) . "'"; break; case "DATE1": if (CheckDateTime($val)) { $arSqlSearch_h[] = "max(D.DATE_LAST)>=" . $DB->CharToDateFunction($val, "SHORT"); } break; case "DATE2": if (CheckDateTime($val)) { $arSqlSearch_h[] = "max(D.DATE_LAST)<" . $DB->CharToDateFunction($val, "SHORT") . " + INTERVAL 1 DAY"; } break; case "NAME": case "USER_AGENT": $match = $arFilter[$key . "_EXACT_MATCH"] == "Y" && $match_value_set ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("S." . $key, $val, $match); break; } } } if ($by == "s_id") { $strSqlOrder = "ORDER BY S.ID"; } elseif ($by == "s_date_last") { $strSqlOrder = "ORDER BY S_DATE_LAST"; } elseif ($by == "s_today_hits") { $strSqlOrder = "ORDER BY TODAY_HITS"; } elseif ($by == "s_yesterday_hits") { $strSqlOrder = "ORDER BY YESTERDAY_HITS"; } elseif ($by == "s_b_yesterday_hits") { $strSqlOrder = "ORDER BY B_YESTERDAY_HITS"; } elseif ($by == "s_total_hits") { $strSqlOrder = "ORDER BY TOTAL_HITS"; } elseif ($by == "s_period_hits") { $strSqlOrder = "ORDER BY PERIOD_HITS"; } elseif ($by == "s_name") { $strSqlOrder = "ORDER BY S.NAME"; } elseif ($by == "s_user_agent") { $strSqlOrder = "ORDER BY S.USER_AGENT"; } elseif ($by == "s_chart") { $strSqlOrder = "ORDER BY S.DIAGRAM_DEFAULT desc, TOTAL_HITS "; } elseif ($by == "s_stat") { $strSqlOrder = "ORDER BY TODAY_HITS desc, YESTERDAY_HITS desc, B_YESTERDAY_HITS desc, TOTAL_HITS desc, PERIOD_HITS"; } else { $by = "s_today_hits"; $strSqlOrder = "ORDER BY TODAY_HITS desc, YESTERDAY_HITS desc, B_YESTERDAY_HITS desc, TOTAL_HITS desc, PERIOD_HITS"; } if ($order != "asc") { $strSqlOrder .= " desc "; $order = "desc"; } $limit_sql = "LIMIT " . intval(COption::GetOptionString('statistic', 'RECORDS_LIMIT')); if (intval($LIMIT) > 0) { $limit_sql = "LIMIT " . intval($LIMIT); } $strSqlSearch = GetFilterSqlSearch($arSqlSearch); foreach ($arSqlSearch_h as $sqlWhere) { $strSqlSearch_h .= " and (" . $sqlWhere . ") "; } $strSql = "\n\t\tSELECT\n\t\t\tS.ID,\n\t\t\tS.TOTAL_HITS,\n\t\t\tS.USER_AGENT,\n\t\t\tS.DIAGRAM_DEFAULT,\n\t\t\t" . $DB->DateToCharFunction("max(D.DATE_LAST)") . "\t\t\t\t\t\tDATE_LAST,\n\t\t\tmax(ifnull(D.DATE_LAST,'1980-01-01'))\t\t\t\t\t\t\t\tS_DATE_LAST,\n\t\t\tsum(ifnull(D.TOTAL_HITS,0))+ifnull(S.TOTAL_HITS,0)\t\t\t\t\tTOTAL_HITS,\n\t\t\tsum(if(to_days(curdate())=to_days(D.DATE_STAT),ifnull(D.TOTAL_HITS,0),0))\tTODAY_HITS,\n\t\t\tsum(if(to_days(curdate())-to_days(D.DATE_STAT)=1,ifnull(D.TOTAL_HITS,0),0))\tYESTERDAY_HITS,\n\t\t\tsum(if(to_days(curdate())-to_days(D.DATE_STAT)=2,ifnull(D.TOTAL_HITS,0),0))\tB_YESTERDAY_HITS,\n\t\t\t" . ($filter_period ? $strSqlPeriod . 'ifnull(D.TOTAL_HITS,0)' . $strT . ' PERIOD_HITS, ' : '0 PERIOD_HITS,') . "\n\t\t\tS.NAME\n\t\tFROM\n\t\t\tb_stat_searcher S\n\t\tLEFT JOIN b_stat_searcher_day D ON (D.SEARCHER_ID = S.ID)\n\t\tWHERE\n\t\t{$strSqlSearch}\n\t\tand S.ID<>1\n\t\tGROUP BY S.ID\n\t\tHAVING\n\t\t\t'1'='1'\n\t\t\t{$strSqlSearch_h}\n\t\t{$strSqlOrder}\n\t\t{$limit_sql}\n\t\t"; $res = $DB->Query($strSql, false, $err_mess . __LINE__); $is_filtered = IsFiltered($strSqlSearch) || $filter_period || strlen($strSqlSearch_h) > 0; return $res; }
/** * функция после добавлением элемента в инфоблока * @param $arFields поля элемента ифоблока * для страницы Объявления * eсли VIP объявление то добавляет корзину * привязывает по ID созданное объявления к товару в корзине * редирект на необходимы url */ function AuthtorizeAfterAds(&$arFields){ unset($_SESSION['user777999authorize']); if($arFields['PROPERTY_VALUES']['114']){ foreach($arFields['PROPERTY_VALUES']['114'] as $key114 => $item114){ if($item114['VALUE']){ foreach($arFields['PROPERTY_VALUES']['113'] as $key113 => $item113){ if($item113['VALUE']){ $arFields['PROPERTY_VALUES']['113'][$key113]=ConvertDateTime($item114['VALUE'], "YYYY-MM-DD HH:MI:SS"); }else{ $arFields['PROPERTY_VALUES']['113'][n0]=ConvertDateTime($item114['VALUE'], "YYYY-MM-DD HH:MI:SS"); } } } } } if(($arFields["IBLOCK_ID"] == 16)&&(!CUser::IsAuthorized())){ global $USER; $rsUser = CUser::GetByID($_SESSION['NEW_USER_ID']); $arUser = $rsUser->Fetch(); $_SESSION['$arUser']=$arUser; $USER = new CUser; $arAuthResult = $USER->Login($arUser['LOGIN'], $arUser['PASSWORD'], "Y","N"); } //$_SESSION['user777authorize']=$arFields; if(($arFields["IBLOCK_ID"] == 16)&&(CModule::IncludeModule("catalog"))&&(CModule::IncludeModule("sale"))){ $price_product=floatval($arFields["PROPERTY_VALUES"][86]); $quantity_product=floatval($arFields["PROPERTY_VALUES"][87]); if($price_product){ $PRODUCT_ID = $arFields['ID']; $PRICE_TYPE_ID = 1; $arFieldsprice = Array( "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID, "PRICE" =>$price_product, "CURRENCY" => "RUB", "QUANTITY_FROM" => 1, ); $res = CPrice::GetList( array(), array( "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID ) ); if ($arr = $res->Fetch()) { CPrice::Update($arr["ID"], $arFieldsprice); } else { CPrice::Add($arFieldsprice,true); } } } if ( ( (($arFields["IBLOCK_ID"] == 2)&& (is_numeric($arFields["PROPERTY_VALUES"][73]))) || (($arFields["IBLOCK_ID"] == 15)&& (is_numeric($arFields["PROPERTY_VALUES"][76]))) || (($arFields["IBLOCK_ID"] == 14)&& (is_numeric($arFields["PROPERTY_VALUES"][78]))) ) && CModule::IncludeModule("catalog") && CModule::IncludeModule("sale") && ((strstr($_SERVER['REQUEST_URI'],'/personal/moy-magazin/'))||(strstr($_SERVER['REQUEST_URI'],'/obyavleniya/add-ads/'))) ) { switch($arFields["IBLOCK_ID"]){ case 2: $price_product=floatval($arFields["PROPERTY_VALUES"][73]); $quantity_product=floatval($arFields["PROPERTY_VALUES"][75]); break; case 14: $price_product=floatval($arFields["PROPERTY_VALUES"][78]); $quantity_product=floatval($arFields["PROPERTY_VALUES"][79]); break; case 15: $price_product=floatval($arFields["PROPERTY_VALUES"][76]); $quantity_product=floatval($arFields["PROPERTY_VALUES"][77]); break; } if($price_product){ $PRODUCT_ID = $arFields['ID']; $PRICE_TYPE_ID = 1; if($quantity_product){ $ar_res_product=CCatalogProduct::GetByID($PRODUCT_ID); if($ar_res_product['QUANTITY']!=""){ $arFields_quant = array( 'QUANTITY' => $quantity_product ); CCatalogProduct::Update($PRODUCT_ID, $arFields_quant); }else{ $arFields_quant = array( 'ID'=>$PRODUCT_ID, 'QUANTITY' => $quantity_product ); CCatalogProduct::Add($arFields_quant); } } $arFieldsprice = Array( "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID, "PRICE" =>$price_product, "CURRENCY" => "RUB", ); $res = CPrice::GetList( array(), array( "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID ) ); if ($arr = $res->Fetch()) { CPrice::Update($arr["ID"], $arFieldsprice,true); $_SESSION['price_add']=$arr; } else { CPrice::Add($arFieldsprice,true); } } } // добавление в корзину vip и поднять if(($arFields["IBLOCK_ID"] == 16)&&(($arFields["PROPERTY_VALUES"][81][0]==40)||($arFields["PROPERTY_VALUES"][81][0]==46))){ unset($_SESSION['ELEMENT_ADS_ID']); if(($_REQUEST['CODE'])&&(CModule::IncludeModule("iblock"))){ if((CModule::IncludeModule("catalog"))&&(CModule::IncludeModule("sale"))){ $dbBasketItems = CSaleBasket::GetList( array(), array( "FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL" ), false, false, array("ID", "NAME") ); if($arFields["PROPERTY_VALUES"][81][0]==46){ $test_ads="TEST_ADSUP"; } if($arFields["PROPERTY_VALUES"][81][0]==40){ $test_ads="TEST_VIP"; } while ($arBasketItems = $dbBasketItems->Fetch()) { $dbProp = CSaleBasket::GetPropsList(array("SORT" => "ASC", "ID" => "ASC"), array("BASKET_ID" => $arBasketItems["ID"])); if($arProp = $dbProp -> GetNext()) { $props[] = $arProp; $dbProp = CSaleBasket::GetPropsList(array("SORT" => "ASC", "ID" => "ASC"), array("BASKET_ID" => $arBasketItems["ID"])); if($arProp = $dbProp -> GetNext()) { if($arProp['CODE']==$test_ads){ $ELEMENT_ID = intval($arProp['VALUE']); if($ELEMENT_ID==$_REQUEST['CODE']){ $vip=true; } } } } } } } //var_dump($vip);die(); if(!$vip){ $arPropsBasket = array(); if($arFields["PROPERTY_VALUES"][81][0]==46){ $code_price="up-ads"; $arPropsBasket[] = array( "NAME" => "Название: ".$arFields['NAME'], "CODE" => "TEST_ADSUP", "VALUE" => $arFields['ID'] ); } if($arFields["PROPERTY_VALUES"][81][0]==40){ $code_price="vip-ads"; $arPropsBasket[] = array( "NAME" => "Название: ".$arFields['NAME'], "CODE" => "TEST_VIP", "VALUE" => $arFields['ID'] ); } $arSelect2 = Array("ID", "IBLOCK_ID", "NAME","PROPERTY_*"); $arFilter2 = Array("IBLOCK_ID"=>17, "CODE"=>$code_price, "ACTIVE"=>"Y"); $res2 = CIBlockElement::GetList(Array(), $arFilter2, false, Array("nPageSize"=>1), $arSelect2); while($ob2 = $res2->GetNextElement()){ $arFieldIdAds = $ob2->GetFields(); if (CModule::IncludeModule("sale")) { $base_price=CPrice::GetBasePrice($arFieldIdAds['ID']); $arFieldsB = array( "PRODUCT_ID" => $arFieldIdAds['ID'], "PRICE" => $base_price['PRICE'], "CURRENCY" => "RUB", "QUANTITY" => 1, "LID" => LANG, "NAME" => $arFieldIdAds['NAME'], ); $arFieldsB["PROPS"] = $arPropsBasket; $id_basket = CSaleBasket::Add($arFieldsB); $db_res = CSaleBasket::GetPropsList( array( "SORT" => "ASC", "NAME" => "ASC" ), array("BASKET_ID" => $id_basket) ); while ($ar_res = $db_res->Fetch()) { $_SESSION['order_fields_after'][]= $ar_res["NAME"]."=".$ar_res["VALUE"]."<br>"; } } } } unset($_SESSION['NEW_USER_ID']); LocalRedirect('/personal/cart/'); } if(($arFields["IBLOCK_ID"] == 16)&&($arFields["PROPERTY_VALUES"][81][0]==47)){ $_SESSION['ELEMENT_ADS_ID']=$arFields['ID']; } }
/** * <p>Возвращает количество <a href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#search">поисковых фраз</a> за весь период ведения статистики, за последние 3 дня, а также за произвольный указанный интервал времени.</p> * * * @param string &$by = "s_today" Поле для сортировки. Возможные значения: <ul> <li> <b>s_phrase</b> - * поисковая фраза; </li> <li> <b>s_today</b> - количество поисковых фраз за * сегодня; </li> <li> <b>s_yesterday</b> - количество поисковых фраз за вчера; </li> * <li> <b>s_bef_yesterday</b> - количество поисковых фраз за позавчера; </li> <li> * <b>s_total</b> - суммарное количество поисковых фраз; </li> <li> <b>s_period</b> - * количество поисковых фраз за установленный период времени * <nobr>(<i>filter</i>[<b>DATE1</b>], <i>filter</i>[<b>DATE2</b>])</nobr>. </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>SITE_ID</b> - ID сайта для которого * необходимо получить статистику по поисковым фразам; </li> <li> <b>DATE1</b> * - начальная дата; </li> <li> <b>DATE2</b> - конечная дата. </li> </ul> * * @param bool &$is_filtered Флаг отфильтрованности списка поисковых фраз. Если значение * равно "true", то список был отфильтрован. * * @param mixed $limit = 10 Максимальное число записей результирующего списка. Если задано * число >0, то число записей будет ограничено, иначе ограничений не * будет. * * @return CDBResult * * <h4>Example</h4> * <pre> * <? * // получим дополнительные данные за декабрь 2007 года * $arFilter = array( * "DATE1" => "01.12.2007", * "DATE2" => "31.12.2007" * ); * * // получим список поисковых фраз и статистику по ним * $rs = CTraffic::GetPhraseList($by="s_today", * $order="desc", * $arFilter, * $is_filtered, * false); * while ($ar = $rs->Fetch()) * { * echo "поисковая фраза: ".$ar["PHRASE"]."<br>"; * echo "всего заходов с данной поисковой фразой: ". * $ar["TOTAL_PHRASES"]. * "<br>"; * echo "сегодня: ".$ar["TODAY_PHRASES"]."<br>"; * echo "вчера: ".$ar["YESTERDAY_PHRASES"]."<br>"; * echo "позавчера: ".$ar["B_YESTERDAY_PHRASES"]."<br>"; * echo "в течение декабря 2005 года: ". * $ar["PERIOD_PHRASES"]."<br>"; * } * ?> * </pre> * * * <h4>See Also</h4> * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/statistic/classes/cphrase/index.php">Класс "CPhrase"</a> </li> * <li> <a href="http://www.1c-bitrix.ru/user_help/statistic/stat_list.php">Отчет "Сводная * статистика"</a> </li> </ul> <a name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/statistic/classes/ctraffic/getphraselist.php * @author Bitrix */ public static function GetPhraseList(&$s_by, &$s_order, $arFilter = array(), &$is_filtered, $limit = 10) { $err_mess = "File: " . __FILE__ . "<br>Line: "; $DB = CDatabase::GetModuleConnection('statistic'); $strSqlSearch = ""; $site_id = $arFilter["SITE_ID"]; if (strlen($site_id) > 0 && $site_id != "NOT_REF") { $is_filtered = true; $strSqlSearch = " and SITE_ID = '" . $DB->ForSql($site_id, 2) . "' "; } $date1 = $arFilter["DATE1"]; $date2 = $arFilter["DATE2"]; $date_from = MkDateTime(ConvertDateTime($date1, "D.M.Y"), "d.m.Y"); $date_to = MkDateTime(ConvertDateTime($date2, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (strlen($date1) > 0) { $date_filtered = $is_filtered = true; if (strlen($date2) > 0) { $strSqlPeriod = " sum(if(DATE_HIT<FROM_UNIXTIME('{$date_from}'),0, if(date_hit>FROM_UNIXTIME('{$date_to}'),0,1)))"; } else { $strSqlPeriod = " sum(if(DATE_HIT<FROM_UNIXTIME('{$date_from}'),0,1))"; } } elseif (strlen($date2) > 0) { $date_filtered = $is_filtered = true; $strSqlPeriod = " sum(if(DATE_HIT>FROM_UNIXTIME('{$date_to}'),0,1))"; } else { $date_filtered = false; $strSqlPeriod = ""; } if ($s_by == "s_phrase") { $strSqlOrder = " ORDER BY PHRASE "; } elseif ($s_by == "s_today") { $strSqlOrder = " ORDER BY TODAY_PHRASES "; } elseif ($s_by == "s_yesterday") { $strSqlOrder = " ORDER BY YESTERDAY_PHRASES "; } elseif ($s_by == "s_bef_yesterday") { $strSqlOrder = " ORDER BY B_YESTERDAY_PHRASES "; } elseif ($s_by == "s_total") { $strSqlOrder = " ORDER BY TOTAL_PHRASES "; } elseif ($s_by == "s_period" && $date_filtered) { $strSqlOrder = " ORDER BY PERIOD_PHRASES "; } else { $s_by = "s_today"; $strSqlOrder = " ORDER BY TODAY_PHRASES desc, YESTERDAY_PHRASES desc, B_YESTERDAY_PHRASES desc, TOTAL_PHRASES "; } if ($s_order != "asc") { $strSqlOrder .= " desc "; $s_order = "desc"; } $strSql = "\n\t\t\tSELECT\n\t\t\t\tPHRASE,\n\t\t\t\tcount('x') TOTAL_PHRASES,\n\t\t\t\tsum(if(to_days(curdate())-to_days(DATE_HIT)=0,1,0)) TODAY_PHRASES,\n\t\t\t\tsum(if(to_days(curdate())-to_days(DATE_HIT)=1,1,0)) YESTERDAY_PHRASES,\n\t\t\t\tsum(if(to_days(curdate())-to_days(DATE_HIT)=2,1,0)) B_YESTERDAY_PHRASES\n\t\t\t\t" . ($date_filtered ? ',' . $strSqlPeriod . ' PERIOD_PHRASES ' : '') . "\n\t\t\tFROM\n\t\t\t\tb_stat_phrase_list\n\t\t\tWHERE\n\t\t\t\t1=1\n\t\t\t\t" . $strSqlSearch . "\n\t\t\tGROUP BY\n\t\t\t\tPHRASE\n\t\t\t" . $strSqlOrder . "\n\t\t"; if (intval($limit) > 0) { $strSql .= " LIMIT " . intval($limit); } return $DB->Query($strSql, false, $err_mess . __LINE__); }
$arPostField["EDIT_FORM_LABEL"] = strLen($arPostField["EDIT_FORM_LABEL"]) > 0 ? $arPostField["EDIT_FORM_LABEL"] : $arPostField["FIELD_NAME"]; $arPostField["EDIT_FORM_LABEL"] = htmlspecialcharsEx($arPostField["EDIT_FORM_LABEL"]); $arPostField["~EDIT_FORM_LABEL"] = $arPostField["EDIT_FORM_LABEL"]; $CurPost["POST_PROPERTIES"]["DATA"][$FIELD_NAME] = $arPostField; } } if (!empty($CurPost["POST_PROPERTIES"]["DATA"])) { $CurPost["POST_PROPERTIES"]["SHOW"] = "Y"; } } $CurPost["DATE_PUBLISH_FORMATED"] = FormatDate($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($CurPost["DATE_PUBLISH"], CSite::GetDateFormat("FULL"))); $CurPost["DATE_PUBLISH_DATE"] = ConvertDateTime($CurPost["DATE_PUBLISH"], FORMAT_DATE); $CurPost["DATE_PUBLISH_TIME"] = ConvertDateTime($CurPost["DATE_PUBLISH"], "HH:MI"); $CurPost["DATE_PUBLISH_D"] = ConvertDateTime($CurPost["DATE_PUBLISH"], "DD"); $CurPost["DATE_PUBLISH_M"] = ConvertDateTime($CurPost["DATE_PUBLISH"], "MM"); $CurPost["DATE_PUBLISH_Y"] = ConvertDateTime($CurPost["DATE_PUBLISH"], "YYYY"); $arResult["POST"][] = $CurPost; $arResult["IDS"][] = $CurPost["ID"]; } } } else { $arResult["ERROR_MESSAGE"][] = GetMessage("BLOG_BLOG_BLOG_NO_BLOG"); CHTTP::SetStatus("404 Not Found"); } if ($CACHE_TIME > 0) { $cache->EndDataCache(array("templateCachedData" => $this->GetTemplateCachedData(), "arResult" => $arResult)); } } if ($arParams["SHOW_RATING"] == "Y" && !empty($arResult["IDS"])) { $arResult['RATING'] = CRatings::GetRatingVoteResult('BLOG_POST', $arResult["IDS"]); }
</td> <td> <?php if ($score['score_status']) { echo "Success"; } else { echo "Failed"; } ?> </td> <td><?php echo $score['score_jumlah_pengerjaan']; ?> </td> <td><?php echo ConvertDateTime($score['score_timestamp'], 'tophp'); ?> </td> <td> <?php if ($score['score_status']) { echo $score['level_score']; } else { echo "-"; } ?> </td> </tr> <?php } }
$sellerEuInn = CSalePaySystemAction::GetParamValue("SELLER_EU_INN", false); $sellerInn = CSalePaySystemAction::GetParamValue("SELLER_INN", false); $sellerReg = CSalePaySystemAction::GetParamValue("SELLER_REG", false); $sellerDir = CSalePaySystemAction::GetParamValue("SELLER_DIR", false); $sellerData = array(); if ($sellerEuInn) { $sellerData[] = sprintf('USt-IdNr.: %s', $sellerEuInn); } if ($sellerInn) { $sellerData[] = sprintf('Steuernummer: %s', $sellerInn); } if ($sellerReg) { $sellerData[] = $sellerReg; } if ($sellerDir) { $sellerData[] = $sellerDir; } if (!empty($sellerData)) { $pdf->Cell(0, 15, CSalePdf::prepareToPdf(join(' - ', $sellerData)), 0, 0, 'C'); $pdf->Ln(); } $dest = 'I'; if ($_REQUEST['GET_CONTENT'] == 'Y') { $dest = 'S'; } else { if ($_REQUEST['DOWNLOAD'] == 'Y') { $dest = 'D'; } } return $pdf->Output(sprintf('Rechnung Nr. %s (Datum %s).pdf', $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ACCOUNT_NUMBER"], ConvertDateTime($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"], 'YYYY-MM-DD')), $dest);