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;
    }
}
示例#2
1
        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;
}
示例#4
0
 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__);
         }
     }
 }
示例#5
0
 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;
 }
示例#6
0
 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);
     }
 }
示例#8
0
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;
}
示例#9
0
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;
}
示例#10
0
 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;
     }
 }
示例#11
0
     $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"]);
示例#12
0
 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;
     }
 }
示例#13
0
 /**
  * <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>
  * &lt;?
  * // получим данные только по тем типам событий 
  * // у которых event1 = "download"
  * // а также получим дополнительные данные на декабрь 2007 года
  * $arFilter = array(
  *     "DATE1_PERIOD" =&gt; "01.12.2007",
  *     "DATE2_PERIOD" =&gt; "31.12.2007",
  *     "EVENT1"       =&gt; "download"
  *     );
  * 
  * // получим список записей
  * $rs = <b>CStatEventType::GetList</b>(
  *     ($by = "s_today_counter"), 
  *     ($order = "desc"), 
  *     $arFilter, 
  *     $is_filtered
  *     );
  * 
  * // выведем все записи
  * while ($ar = $rs-&gt;Fetch())
  * {
  *     echo "&lt;pre&gt;"; print_r($ar); echo "&lt;/pre&gt;";    
  * }
  * ?&gt;
  * </pre>
  *
  *
  *
  * <h4>See Also</h4> 
  * <ul> <li> <a
  * href="http://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;
 }
示例#14
0
</td>
				</tr>
				<tr align="right">
					<td><b>Girada el:&nbsp;</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:&nbsp;</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>
示例#15
0
     }
     $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"]);
示例#16
0
 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();";
 }
示例#17
0
    }
}
// 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"));
示例#18
0
        }
    }
    $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);
示例#19
0
文件: html.php 项目: ASDAFF/entask.ru
			</td>
			<td style="width: 20pt; ">&nbsp;</td>
			<td>Посада:&nbsp;</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>
示例#20
0
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;
}
示例#21
0
 }
 $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()) {
示例#22
0
 public static function GetUsableDate($date = '')
 {
     return ConvertDateTime($date, "DD.MM.YYYY HH:MI");
 }
示例#23
0
//************************************!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));
示例#24
0
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);
}
示例#25
0
 /**
  * <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>
  * &lt;?
  * // отфильтруем данные только для поисковой системы #20 и #21
  * // а также получим дополнительные данные на декабрь 2005 года
  * $arFilter = array(
  *     "ID"           =&gt; "20 | 21",
  *     "DATE1_PERIOD" =&gt; "01.12.2005",
  *     "DATE2_PERIOD" =&gt; "31.12.2005",
  *     );
  * 
  * // получим список записей
  * $rs = <b>CSearcher::GetList</b>(
  *     ($by = "s_today_hits"), 
  *     ($order = "desc"), 
  *     $arFilter, 
  *     $is_filtered
  *     );
  * 
  * // выведем все записи
  * while ($ar = $rs-&gt;Fetch())
  * {
  *     echo "&lt;pre&gt;"; print_r($ar); echo "&lt;/pre&gt;";    
  * }
  * ?&gt;
  * </pre>
  *
  *
  * <h4>See Also</h4> 
  * <ul> <li> <a
  * href="http://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;
 }
示例#26
0
文件: class.php 项目: ASDAFF/gpbitrix
    /**
     * функция после добавлением элемента в инфоблока
     * @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'];

         }



         }
示例#27
0
 /**
  * <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 Максимальное число записей результирующего списка. Если задано
  * число &gt;0, то число записей будет ограничено, иначе ограничений не
  * будет.
  *
  * @return CDBResult 
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?
  * // получим дополнительные данные за декабрь 2007 года
  * $arFilter = array(
  *     "DATE1" =&gt; "01.12.2007",
  *     "DATE2" =&gt; "31.12.2007"
  *     );
  * 
  * // получим список поисковых фраз и статистику по ним
  * $rs = CTraffic::GetPhraseList($by="s_today", 
  *                               $order="desc", 
  *                               $arFilter, 
  *                               $is_filtered, 
  *                               false);
  * while ($ar = $rs-&gt;Fetch())
  * {
  *     echo "поисковая фраза: ".$ar["PHRASE"]."&lt;br&gt;";
  *     echo "всего заходов с данной поисковой фразой: ".
  *          $ar["TOTAL_PHRASES"].
  *          "&lt;br&gt;";
  *     echo "сегодня: ".$ar["TODAY_PHRASES"]."&lt;br&gt;";
  *     echo "вчера: ".$ar["YESTERDAY_PHRASES"]."&lt;br&gt;";
  *     echo "позавчера: ".$ar["B_YESTERDAY_PHRASES"]."&lt;br&gt;";
  *     echo "в течение декабря 2005 года: ".
  *          $ar["PERIOD_PHRASES"]."&lt;br&gt;";
  * }
  * ?&gt;
  * </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__);
 }
示例#28
0
                            $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"]);
}
示例#29
0
</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 
    }
}
示例#30
0
$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);