Ejemplo n.º 1
0
 public function BasketButtonAction($orderData = array())
 {
     global $APPLICATION;
     if (strlen($_POST["paypalbutton"]) > 0) {
         $url = "https://api-3t." . $this->domain . "paypal.com/nvp";
         $arFields = array("METHOD" => "SetExpressCheckout", "VERSION" => "98.0", "USER" => $this->username, "PWD" => $this->pwd, "SIGNATURE" => $this->signature, "PAYMENTREQUEST_0_AMT" => number_format($orderData["AMOUNT"], 2, ".", ""), "PAYMENTREQUEST_0_CURRENCYCODE" => $this->currency, "RETURNURL" => $this->serverName . $orderData["PATH_TO_ORDER"], "CANCELURL" => $this->serverName . $APPLICATION->GetCurPageParam("paypal=Y&paypal_error=Y", array("paypal", "paypal_error")), "PAYMENTREQUEST_0_PAYMENTACTION" => "Authorization", "PAYMENTREQUEST_0_DESC" => "Order payment for " . $this->serverName, "LOCALECODE" => ToUpper(LANGUAGE_ID), "buttonsource" => "Bitrix_Cart");
         if (!empty($orderData["BASKET_ITEMS"])) {
             $arFields["PAYMENTREQUEST_0_ITEMAMT"] = number_format($orderData["AMOUNT"], 2, ".", "");
             foreach ($orderData["BASKET_ITEMS"] as $k => $val) {
                 $arFields["L_PAYMENTREQUEST_0_NAME" . $k] = $APPLICATION->ConvertCharset($val["NAME"], SITE_CHARSET, "utf-8");
                 $arFields["L_PAYMENTREQUEST_0_AMT" . $k] = number_format($val["PRICE"], 2, ".", "");
                 $arFields["L_PAYMENTREQUEST_0_QTY" . $k] = $val["QUANTITY"];
             }
         }
         $arFields["RETURNURL"] .= (strpos($arFields["RETURNURL"], "?") === false ? "?" : "&") . "paypal=Y";
         $ht = new \Bitrix\Main\Web\HttpClient(array("version" => "1.1"));
         if ($res = $ht->post($url, $arFields)) {
             $result = $this->parseResult($res);
             if (strlen($result["TOKEN"]) > 0) {
                 $url = "https://www." . $this->domain . "paypal.com/webscr?cmd=_express-checkout&token=" . $result["TOKEN"];
                 if ($orderData["ORDER_REQUEST"] == "Y") {
                     return $url;
                 }
                 LocalRedirect($url);
             }
         } else {
             $GLOBALS["APPLICATION"]->ThrowException(GetMessage("PPL_ERROR"), "CSalePaySystemPrePayment_action_error");
             return false;
         }
     }
     return true;
 }
Ejemplo n.º 2
0
 private function __construct()
 {
     global $APPLICATION;
     $this->setDevicewidth($_COOKIE["MOBILE_RESOLUTION_WIDTH"]);
     $this->setDeviceheight($_COOKIE["MOBILE_RESOLUTION_HEIGHT"]);
     $this->setScreenCategory($_COOKIE["MOBILE_SCREEN_CATEGORY"]);
     $this->setPixelratio($_COOKIE["MOBILE_SCALE"]);
     $this->setDevice($_COOKIE["MOBILE_DEVICE"]);
     if ($this->getDevice() == "iPad") {
         $this->setScreenCategory("LARGE");
         if (intval($this->getPixelratio()) == 2) {
             $this->setDevicewidth($_COOKIE["MOBILE_RESOLUTION_WIDTH"] / 2);
             $this->setDeviceheight($_COOKIE["MOBILE_RESOLUTION_HEIGHT"] / 2);
         }
     }
     //detecting OS
     if (array_key_exists("MOBILE_DEVICE", $_COOKIE)) {
         $deviceDetectSource = $_COOKIE["MOBILE_DEVICE"];
     } else {
         $deviceDetectSource = strtolower($_SERVER['HTTP_USER_AGENT']);
     }
     if (strrpos(ToUpper($deviceDetectSource), "IPHONE") > 0 || strrpos(ToUpper($deviceDetectSource), "IPAD") > 0) {
         self::$platform = "ios";
     } else {
         if (strrpos(ToUpper($deviceDetectSource), "ANDROID") > 0 || strrpos(ToUpper($deviceDetectSource), "ANDROID") === 0) {
             self::$platform = "android";
         }
     }
     if (array_key_exists("MOBILE_API_VERSION", $_COOKIE)) {
         self::$apiVersion = intval($_COOKIE["MOBILE_API_VERSION"]);
     } elseif ($APPLICATION->get_cookie("MOBILE_APP_VERSION")) {
         self::$apiVersion = $APPLICATION->get_cookie("MOBILE_APP_VERSION");
     }
 }
Ejemplo n.º 3
0
 public static function __callStatic($name, $arguments)
 {
     $name = ToUpper($name);
     switch ($name) {
         case "ADDMESSAGE":
             if ($arguments[1]["APPROVED"] == "Y") {
                 self::actionUpdate($arguments[2], $arguments[2]);
             }
             break;
         case 'ADDTOPIC':
             if ($arguments[1]["APPROVED"] == "Y") {
                 self::actionAdd(array(), $arguments[1]);
             }
             break;
         case 'UPDATETOPIC':
             if ($arguments[1]["APPROVED"] == "N") {
                 self::actionDelete($arguments[1]);
             } else {
                 if (empty($arguments[2]) || $arguments[1]["FORUM_ID"] == $arguments[2]["FORUM_ID"]) {
                     self::actionUpdate(empty($arguments[2]) ? $arguments[1] : $arguments[2], $arguments[1]);
                 } else {
                     self::actionDelete($arguments[2]);
                     self::actionAdd(array(), $arguments[1]);
                 }
             }
             break;
         case 'DELETETOPIC':
             if ($arguments[1]["APPROVED"] == "Y") {
                 self::actionDelete($arguments[1]);
             }
             break;
     }
 }
Ejemplo n.º 4
0
 public static function departmentGet($arQuery, $nav = 0)
 {
     CModule::IncludeModule('iblock');
     $arQuery = array_change_key_case($arQuery, CASE_UPPER);
     $arSort = array("LEFT_MARGIN" => 'ASC');
     if (isset($arQuery['SORT'])) {
         $sort = ToUpper($arQuery['SORT']);
         if (in_array($sort, self::$arAllowedDepartmentFields)) {
             $order = isset($arQuery['ORDER']) ? ToUpper($arQuery['ORDER']) : '';
             if ($order != 'DESC') {
                 $order = 'ASC';
             }
             $arSort = array($sort => $order);
         }
     }
     if (isset($arQuery['FILTER']) && is_array($arQuery['FILTER'])) {
         $arQuery = $arQuery['FILTER'];
     }
     $dbRes = CIBlockSection::GetList($arSort, self::prepareDeptData($arQuery), false, self::$arSelectDepartmentFields, self::getNavData($nav));
     $result = array();
     $arFiles = array();
     while ($arDept = $dbRes->NavNext(false)) {
         $result[] = self::getDeptData($arDept);
     }
     return self::setNavData($result, $dbRes);
 }
Ejemplo n.º 5
0
 /**
  * Делает первую букву каждого слова заглавной.
  * @param  string $string
  * @return string
  */
 public static function CapitalizeFirst($string)
 {
     $string = explode(' ', $string);
     foreach ($string as &$s) {
         $s = ToUpper(substr($s, 0, 1)) . ToLower(substr($s, 1));
     }
     return implode(' ', $string);
 }
Ejemplo n.º 6
0
 public static function getFilterColumns()
 {
     $columns = static::getColumns('list');
     foreach ($columns as $code => &$col) {
         $col['DEFAULT'] = in_array($code, array('ID', 'TYPE_ID', 'NAME_' . ToUpper(LANGUAGE_ID), 'SORT'));
     }
     return $columns;
 }
Ejemplo n.º 7
0
function CheckStrCharsetForJson($str)
{
    global $APPLICATION;
    if (ToUpper(SITE_CHARSET) !== 'UTF-8') {
        $str = $APPLICATION->ConvertCharsetArray($str, SITE_CHARSET, 'utf-8');
    }
    return $str;
}
Ejemplo n.º 8
0
 public static function update($primary, $data = array())
 {
     if (strlen($data['NAME'])) {
         $data['NAME_UPPER'] = ToUpper($data['NAME']);
     }
     // bitrix to upper
     return parent::update($primary, $data);
 }
Ejemplo n.º 9
0
 protected function gs_array_search($needle, $haystack)
 {
     foreach ($haystack as $k => $v) {
         if (ToUpper($v) == ToUpper($needle)) {
             return $k;
         }
     }
     return false;
 }
Ejemplo n.º 10
0
 public static function Format($data, $charset = 'UTF-8', $entityType = 4, $useBr = 0, $useP = 0, $maxNobr = 3, $quotA = 'laquo raquo', $quotB = 'bdquo ldquo')
 {
     if (ToUpper($charset) != 'UTF-8') {
         $data = $GLOBALS['APPLICATION']->ConvertCharset($data, $charset, 'UTF-8');
     }
     if (!CModule::IncludeModule('webservice')) {
         return ALSTypograf::typograf($data);
     } else {
         return ALSTypograf::artlebedev($data);
     }
 }
Ejemplo n.º 11
0
	public function Fetch()
	{
		$r = parent::Fetch();

		if($r)
		{
			if(strlen($r["SITE_URL"])>0)
				$r["URL"] = $r["SITE_URL"];

			if(substr($r["URL"], 0, 1)=="=")
			{
				$events = GetModuleEvents("search", "OnSearchGetURL");
				while ($arEvent = $events->Fetch())
					$r["URL"] = ExecuteModuleEventEx($arEvent, array($r));
			}

			$r["URL"] = str_replace(
				array("#LANG#", "#SITE_DIR#", "#SERVER_NAME#"),
				array($r["DIR"], $r["DIR"], $r["SERVER_NAME"]),
				$r["URL"]
			);
			$r["URL"] = preg_replace("'(?<!:)/+'s", "/", $r["URL"]);

			$r["NAME"] = htmlspecialcharsex($r["TITLE"]);

			$preg_template = "/(^|[^".$this->_arStemFunc["pcre_letters"]."])(".str_replace("/", "\\/", implode("|", array_map('preg_quote', array_keys($this->_arPhrase)))).")/i".BX_UTF_PCRE_MODIFIER;
			if(preg_match_all($preg_template, ToUpper($r["NAME"]), $arMatches, PREG_OFFSET_CAPTURE))
			{
				$c = count($arMatches[2]);
				if(defined("BX_UTF"))
				{
					for($j = $c-1; $j >= 0; $j--)
					{
						$prefix = mb_substr($r["NAME"], 0, $arMatches[2][$j][1], 'latin1');
						$instr  = mb_substr($r["NAME"], $arMatches[2][$j][1], mb_strlen($arMatches[2][$j][0], 'latin1'), 'latin1');
						$suffix = mb_substr($r["NAME"], $arMatches[2][$j][1] + mb_strlen($arMatches[2][$j][0], 'latin1'), mb_strlen($r["NAME"], 'latin1'), 'latin1');
						$r["NAME"] = $prefix."<b>".$instr."</b>".$suffix;
					}
				}
				else
				{
					for($j = $c-1; $j >= 0; $j--)
					{
						$prefix = substr($r["NAME"], 0, $arMatches[2][$j][1]);
						$instr  = substr($r["NAME"], $arMatches[2][$j][1], strlen($arMatches[2][$j][0]));
						$suffix = substr($r["NAME"], $arMatches[2][$j][1]+strlen($arMatches[2][$j][0]));
						$r["NAME"] = $prefix."<b>".$instr."</b>".$suffix;
					}
				}
			}
		}

		return $r;
	}
Ejemplo n.º 12
0
	/**
	 * <p>Функция возвращает набор местоположений, связанных с группами местоположений, удовлетворяющих фильтру arFilter.</p>
	 *
	 *
	 *
	 *
	 * @param array $arrayarFilter = Array() Фильтр представляет собой ассоциативный массив, в котором
	 * ключами являются названия параметров записи, а значениями -
	 * условия на значения<br><br> Допустимые ключи: <ul> <li> <b>LOCATION_ID</b> - код
	 * местоположения;</li> <li> <b>LOCATION_GROUP_ID</b> - код группы
	 * местоположений.</li> </ul>
	 *
	 *
	 *
	 * @return CDBResult <p>Возвращается объект класса CDBResult, содержащий ассоциативные
	 * массивы с ключами:</p><table class="tnormal" width="100%"> <tr> <th width="15%">Ключ</th>
	 * <th>Описание</th> </tr> <tr> <td>LOCATION_ID</td> <td>Код местоположения.</td> </tr> <tr>
	 * <td>LOCATION_GROUP_ID</td> <td>Код группы местоположений.</td> </tr> </table><a
	 * name="examples"></a>
	 *
	 *
	 * <h4>Example</h4> 
	 * <pre>
	 * &lt;?
	 * // Выберем все местоположения группы 2
	 * $db_res = CSaleLocationGroup::GetLocationList(array("LOCATION_GROUP_ID"=&gt;2));
	 * while ($ar_res = $db_res-&gt;Fetch())
	 * {
	 *    echo $ar_res["LOCATION_ID"].", ";
	 * }
	 * ?&gt;
	 * </pre>
	 *
	 *
	 * @static
	 * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalelocationgroup/csalelocationgroup__getlocationlist.56a02620.php
	 * @author Bitrix
	 */
	public static function GetLocationList($arFilter=Array())
	{
		global $DB;
		$arSqlSearch = Array();

		if(!is_array($arFilter))
			$filter_keys = Array();
		else
			$filter_keys = array_keys($arFilter);

		$countFieldKey = count($filter_keys);
		for($i=0; $i < $countFieldKey; $i++)
		{
			$val = $DB->ForSql($arFilter[$filter_keys[$i]]);
			if (strlen($val)<=0) continue;

			$key = $filter_keys[$i];
			if ($key[0]=="!")
			{
				$key = substr($key, 1);
				$bInvert = true;
			}
			else
				$bInvert = false;

			switch(ToUpper($key))
			{
			case "LOCATION_ID":
				$arSqlSearch[] = "LOCATION_ID ".($bInvert?"<>":"=")." ".IntVal($val)." ";
				break;
			case "LOCATION_GROUP_ID":
				$arSqlSearch[] = "LOCATION_GROUP_ID ".($bInvert?"<>":"=")." ".IntVal($val)." ";
				break;
			}
		}

		$strSqlSearch = "";
		$countSqlSearch = count($arSqlSearch);
		for($i=0; $i < $countSqlSearch; $i++)
		{
			$strSqlSearch .= " AND ";
			$strSqlSearch .= " (".$arSqlSearch[$i].") ";
		}

		$strSql =
			"SELECT LOCATION_ID, LOCATION_GROUP_ID ".
			"FROM b_sale_location2location_group ".
			"WHERE 1 = 1 ".
			"	".$strSqlSearch." ";

		$db_res = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
		return $db_res;
	}
Ejemplo n.º 13
0
 function addDataToTable($source = array(), $data = array(), $data_name = "", $dataID = false)
 {
     global $APPLICATION;
     if ($dataID === false) {
         $dataID = 'data' . rand(1, 100000);
     }
     $source['data'][$dataID] = $data;
     if (ToUpper(SITE_CHARSET) !== 'UTF-8') {
         $data_name = $APPLICATION->ConvertCharset($data_name, SITE_CHARSET, 'utf-8');
     }
     $source['names'][$dataID] = (string) $data_name;
     return $source;
 }
Ejemplo n.º 14
0
function AddTableData($source = array(), $data = array(), $data_name = "", $dataID = false)
{
    global $APPLICATION;
    if ($dataID == false) {
        $dataID = "data" . rand(1, 10000);
    }
    $source["data"][$dataID] = $data;
    if (ToUpper(SITE_CHARSET) != "UTF-8") {
        $data_name = $APPLICATION->ConvertCharset($data_name, SITE_CHARSET, "utf-8");
    }
    $source["names"][$dataID] = $data_name;
    return $source;
}
Ejemplo n.º 15
0
 function __GetLocation($location_id)
 {
     static $arDHLUSACountryList;
     $arLocation = CSaleLocation::GetByID($location_id, 'en');
     $dbZipList = CSaleLocation::GetLocationZIP($location_id);
     while ($arZip = $dbZipList->Fetch()) {
         $arLocation['ZIP_LIST'][] = $arZip['ZIP'];
     }
     if (!is_array($arDHLUSACountryList)) {
         require 'dhl_usa/country.php';
     }
     $arLocation['COUNTRY_DHLUSA'] = $arDHLUSACountryList[ToUpper($arLocation['COUNTRY_NAME'])];
     return $arLocation;
 }
Ejemplo n.º 16
0
 public static function GetList($arOrder, $arFilter)
 {
     global $DB;
     $arAllFields = array('ID', 'URL', 'SITE_ID', 'KEYWORDS');
     $arWhere = array();
     foreach ($arFilter as $key => $value) {
         if (in_array($key, $arAllFields)) {
             switch ($key) {
                 case 'ID':
                     $arWhere[] = 'ID=\'' . intval($value) . '\'';
                     break;
                 case 'SITE_ID':
                     $arWhere[] = 'SITE_ID=\'' . $DB->ForSql($value) . '\'';
                     break;
                 case 'URL':
                     if (array_key_exists('URL_EXACT_MATCH', $arFilter) && $arFilter['URL_EXACT_MATCH'] == 'N') {
                         $arWhere[] = 'URL LIKE \'' . $DB->ForSql($value) . '%\'';
                     } else {
                         $arWhere[] = 'URL=\'' . $DB->ForSql($value) . '\'';
                     }
                     break;
                 case 'KEYWORDS':
                     $arWhere[] = 'KEYWORDS LIKE \'%' . $DB->ForSql($value) . '%\'';
                     break;
             }
         }
     }
     $strWhere = '';
     if (count($arWhere) > 0) {
         $strWhere = 'WHERE ' . implode(' AND ', $arWhere);
     }
     $strOrder = '';
     foreach ($arOrder as $key => $dir) {
         $dir = ToUpper($dir);
         $key = ToUpper($key);
         if ($dir != 'DESC') {
             $dir = 'ASC';
         }
         if (in_array($key, $arAllFields)) {
             $strOrder .= ($strOrder == '' ? '' : ', ') . $DB->ForSql($key) . ' ' . $dir;
         }
     }
     if ($strOrder != '') {
         $strOrder = 'ORDER BY ' . $strOrder;
     }
     $query = 'SELECT * FROM b_seo_keywords ';
     $query .= $strWhere . ' ';
     $query .= $strOrder;
     return $DB->Query($query);
 }
Ejemplo n.º 17
0
 public static function parseQuery($query)
 {
     $words = explode(' ', $query);
     $result = array();
     foreach ($words as $k => &$word) {
         $word = ToUpper(trim($word));
         if (strlen($word) < 2 || isset(static::$blackList[$word])) {
             continue;
         }
         $result[] = $word;
     }
     $result = array_unique($result);
     //natsort($result);
     return $result;
 }
Ejemplo n.º 18
0
 function CheckAccess($userID, $itemMD5, $periodLength, $periodType)
 {
     global $DB;
     $userID = IntVal($userID);
     if ($userID <= 0) {
         return false;
     }
     $itemMD5 = Trim($itemMD5);
     if (strlen($itemMD5) <= 0) {
         return false;
     }
     $periodLength = IntVal($periodLength);
     if ($periodLength <= 0) {
         return False;
     }
     $periodType = Trim($periodType);
     $periodType = ToUpper($periodType);
     if (strlen($periodType) <= 0) {
         return False;
     }
     $checkVal = 0;
     if ($periodType == "I") {
         $checkVal = mktime(date("H"), date("i") - $periodLength, date("s"), date("m"), date("d"), date("Y"));
     } elseif ($periodType == "H") {
         $checkVal = mktime(date("H") - $periodLength, date("i"), date("s"), date("m"), date("d"), date("Y"));
     } elseif ($periodType == "D") {
         $checkVal = mktime(date("H"), date("i"), date("s"), date("m"), date("d") - $periodLength, date("Y"));
     } elseif ($periodType == "W") {
         $checkVal = mktime(date("H"), date("i"), date("s"), date("m"), date("d") - 7 * $periodLength, date("Y"));
     } elseif ($periodType == "M") {
         $checkVal = mktime(date("H"), date("i"), date("s"), date("m") - $periodLength, date("d"), date("Y"));
     } elseif ($periodType == "Q") {
         $checkVal = mktime(date("H"), date("i"), date("s"), date("m") - 3 * $periodLength, date("d"), date("Y"));
     } elseif ($periodType == "S") {
         $checkVal = mktime(date("H"), date("i"), date("s"), date("m") - 6 * $periodLength, date("d"), date("Y"));
     } elseif ($periodType == "Y") {
         $checkVal = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y") - $periodLength);
     }
     if ($checkVal <= 0) {
         return False;
     }
     $dbAuxiliary = CSaleAuxiliary::GetList(array(), array("USER_ID" => $userID, "ITEM_MD5" => $itemMD5, ">=DATE_INSERT" => Date($GLOBALS["DB"]->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), $checkVal)), false, false, array("*"));
     if ($arAuxiliary = $dbAuxiliary->Fetch()) {
         return $arAuxiliary;
     }
     return false;
 }
Ejemplo n.º 19
0
 private function __construct()
 {
     global $APPLICATION;
     $this->setDeviceWidth($_COOKIE["MOBILE_RESOLUTION_WIDTH"]);
     $this->setDeviceHeight($_COOKIE["MOBILE_RESOLUTION_HEIGHT"]);
     $this->setScreenCategory($_COOKIE["MOBILE_SCREEN_CATEGORY"]);
     $this->setPixelratio($_COOKIE["MOBILE_SCALE"]);
     $this->setPgVersion($_COOKIE["PG_VERSION"]);
     if (isset($_COOKIE["MOBILE_DEV"]) && $_COOKIE["MOBILE_DEV"] == "Y") {
         self::$isDev = true;
     }
     $this->setDevice($_COOKIE["MOBILE_DEVICE"]);
     if ($_COOKIE["IS_WEBRTC_SUPPORTED"] && $_COOKIE["IS_WEBRTC_SUPPORTED"] == "Y") {
         $this->setWebRtcSupport(true);
     }
     if ($_COOKIE["IS_BXSCRIPT_SUPPORTED"] && $_COOKIE["IS_BXSCRIPT_SUPPORTED"] == "Y") {
         $this->setBXScriptSupported(true);
     }
     if ($this->getDevice() == "iPad") {
         $this->setScreenCategory("LARGE");
         if (intval($this->getPixelRatio()) == 2) {
             $this->setDeviceWidth($_COOKIE["MOBILE_RESOLUTION_WIDTH"] / 2);
             $this->setDeviceHeight($_COOKIE["MOBILE_RESOLUTION_HEIGHT"] / 2);
         }
     }
     //detecting OS
     if (array_key_exists("MOBILE_DEVICE", $_COOKIE)) {
         $deviceDetectSource = $_COOKIE["MOBILE_DEVICE"];
     } else {
         $deviceDetectSource = strtolower(Context::getCurrent()->getServer()->get("HTTP_USER_AGENT"));
     }
     if (strrpos(ToUpper($deviceDetectSource), "IPHONE") > 0 || strrpos(ToUpper($deviceDetectSource), "IPAD") > 0) {
         self::$platform = "ios";
     } elseif (strrpos(ToUpper($deviceDetectSource), "ANDROID") > 0 || strrpos(ToUpper($deviceDetectSource), "ANDROID") === 0) {
         self::$platform = "android";
     }
     if (array_key_exists("emulate_platform", $_REQUEST)) {
         self::$platform = $_REQUEST["emulate_platform"];
     }
     if (array_key_exists("MOBILE_API_VERSION", $_COOKIE)) {
         self::$apiVersion = intval($_COOKIE["MOBILE_API_VERSION"]);
     } elseif ($APPLICATION->get_cookie("MOBILE_APP_VERSION")) {
         self::$apiVersion = $APPLICATION->get_cookie("MOBILE_APP_VERSION");
     } elseif (array_key_exists("api_version", $_REQUEST)) {
         self::$apiVersion = intval($_REQUEST["api_version"]);
     }
 }
Ejemplo n.º 20
0
 protected static function parseOutSimpleAggregations(array $list, array &$runtime)
 {
     $legalFuncs = array('MAX', 'MIN', 'SUM', 'COUNT', 'AVG');
     foreach ($list as $key) {
         $key = (string) trim(ToUpper($key));
         if ($key != '') {
             $found = array();
             if (preg_match('#^([A-Z0-9_]+)_((MAX|MIN|SUM|COUNT|AVG){1})$#', $key, $found) !== false) {
                 $field = (string) $found[1];
                 $func = (string) $found[3];
                 if ($field != '' && $func != '') {
                     $runtime[$key] = array('data_type' => 'integer', 'expression' => array($func . '(%s)', $field));
                 }
             }
         }
     }
 }
Ejemplo n.º 21
0
 public static function checkIndexNameExists($indexName, $tableName)
 {
     $dbConnection = Main\HttpApplication::getConnection();
     $dbHelper = $dbConnection->getSqlHelper();
     $indexName = trim($indexName);
     $tableName = $dbHelper->forSql(trim($tableName));
     if (!strlen($indexName) || !strlen($tableName)) {
         return false;
     }
     $res = $dbConnection->query("SELECT si.name Key_name\n\t\t\tFROM sysindexkeys s\n\t\t\t\tINNER JOIN syscolumns c ON s.id = c.id AND s.colid = c.colid\n\t\t\t\tINNER JOIN sysobjects o ON s.id = o.Id AND o.xtype = 'U'\n\t\t\t\tLEFT JOIN sysindexes si ON si.indid = s.indid AND si.id = s.id\n\t\t\tWHERE o.name = '" . ToUpper($tableName) . "'");
     while ($item = $res->fetch()) {
         if ($item['Key_name'] == $indexName || $item['KEY_NAME'] == $indexName) {
             return true;
         }
     }
     return false;
 }
Ejemplo n.º 22
0
 function SeoOnPanelCreate()
 {
     global $APPLICATION, $USER;
     if (!$USER->CanDoOperation('seo_tools')) {
         return false;
     }
     if (isset($_SERVER["REAL_FILE_PATH"]) && $_SERVER["REAL_FILE_PATH"] != "") {
         $currentDirPath = dirname($_SERVER["REAL_FILE_PATH"]);
         $currentFilePath = $_SERVER["REAL_FILE_PATH"];
     } else {
         $currentDirPath = $APPLICATION->GetCurDir();
         $currentFilePath = $APPLICATION->GetCurPage(true);
     }
     $encCurrentDirPath = urlencode($currentDirPath);
     $encCurrentFilePath = urlencode($currentFilePath);
     $encRequestUri = urlencode($_SERVER["REQUEST_URI"]);
     $encTitleChangerLink = '';
     $encWinTitleChangerLink = '';
     $encTitleChangerName = '';
     $encWinTitleChangerName = '';
     if (is_array($APPLICATION->sDocTitleChanger)) {
         if (isset($APPLICATION->sDocTitleChanger['PUBLIC_EDIT_LINK'])) {
             $encTitleChangerLink = urlencode(base64_encode($APPLICATION->sDocTitleChanger['PUBLIC_EDIT_LINK']));
         }
         if (isset($APPLICATION->sDocTitleChanger['COMPONENT_NAME'])) {
             $encTitleChangerName = urlencode($APPLICATION->sDocTitleChanger['COMPONENT_NAME']);
         }
     }
     $prop_code = ToUpper(COption::GetOptionString('seo', 'property_window_title', 'title'));
     if (is_array($APPLICATION->arPagePropertiesChanger[$prop_code])) {
         if (isset($APPLICATION->arPagePropertiesChanger[$prop_code]['PUBLIC_EDIT_LINK'])) {
             $encWinTitleChangerLink = urlencode(base64_encode($APPLICATION->arPagePropertiesChanger[$prop_code]['PUBLIC_EDIT_LINK']));
         }
         if (isset($APPLICATION->arPagePropertiesChanger[$prop_code]['COMPONENT_NAME'])) {
             $encWinTitleChangerName = urlencode($APPLICATION->arPagePropertiesChanger[$prop_code]['COMPONENT_NAME']);
         }
     }
     $encTitle = urlencode(base64_encode($APPLICATION->sDocTitle));
     $encWinTitle = urlencode(base64_encode($APPLICATION->arPageProperties[$prop_code]));
     $APPLICATION->AddPanelButton(array("HREF" => 'javascript:' . $APPLICATION->GetPopupLink(array("URL" => "/bitrix/admin/public_seo_tools.php?lang=" . LANGUAGE_ID . "&bxpublic=Y&from_module=seo&site=" . SITE_ID . "&path=" . $encCurrentFilePath . "&title_final=" . $encTitle . "&title_changer_name=" . $encTitleChangerName . '&title_changer_link=' . $encTitleChangerLink . "&title_win_final=" . $encWinTitle . "&title_win_changer_name=" . $encWinTitleChangerName . '&title_win_changer_link=' . $encWinTitleChangerLink . "&" . bitrix_sessid_get() . "&back_url=" . $encRequestUri, "PARAMS" => array("width" => 920, "height" => 400, 'resize' => false))), "ID" => "seo", "ICON" => "bx-panel-seo-icon", "ALT" => GetMessage('SEO_ICON_ALT'), "TEXT" => GetMessage('SEO_ICON_TEXT'), "MAIN_SORT" => "300", "SORT" => 50, "HINT" => array("TITLE" => GetMessage('SEO_ICON_TEXT'), "TEXT" => GetMessage('SEO_ICON_HINT'))));
 }
Ejemplo n.º 23
0
 function Search($phrase = "", $nTopCount = 5, $arParams = array(), $bNotFilter = false, $order = "")
 {
     $DB = CDatabase::GetModuleConnection('search');
     $this->_arPhrase = stemming_split($phrase, LANGUAGE_ID);
     $bOrderByRank = $order == "rank";
     if (!empty($this->_arPhrase)) {
         $nTopCount = intval($nTopCount);
         if ($nTopCount <= 0) {
             $nTopCount = 5;
         }
         $sqlHaving = array();
         $sqlWords = array();
         foreach (array_reverse($this->_arPhrase, true) as $word => $pos) {
             if (empty($sqlWords) && !preg_match("/[\\n\\r \\t]\$/", $phrase)) {
                 $s = $sqlWords[] = "ct.WORD like '" . $DB->ForSQL($word) . "%'";
             } else {
                 $s = $sqlWords[] = "ct.WORD = '" . $DB->ForSQL($word) . "'";
             }
             $sqlHaving[] = "(sum(" . $s . ") > 0)";
         }
         $bIncSites = false;
         $strSqlWhere = CSearch::__PrepareFilter($arParams, $bIncSites);
         if ($bNotFilter) {
             if (!empty($strSqlWhere)) {
                 $strSqlWhere = "NOT (" . $strSqlWhere . ")";
             } else {
                 $strSqlWhere = "1=0";
             }
         }
         $strSql = "\n\t\t\t\tSELECT\n\t\t\t\t\tsc.ID\n\t\t\t\t\t,sc.MODULE_ID\n\t\t\t\t\t,sc.ITEM_ID\n\t\t\t\t\t,sc.TITLE\n\t\t\t\t\t,sc.PARAM1\n\t\t\t\t\t,sc.PARAM2\n\t\t\t\t\t,sc.DATE_CHANGE\n\t\t\t\t\t,L.DIR\n\t\t\t\t\t,L.SERVER_NAME\n\t\t\t\t\t,sc.URL as URL\n\t\t\t\t\t,scsite.URL as SITE_URL\n\t\t\t\t\t,scsite.SITE_ID\n\t\t\t\t\t,if(locate('" . $DB->ForSQL(ToUpper($phrase)) . "', upper(sc.TITLE)) > 0, 1, 0) RANK1\n\t\t\t\t\t,count(1) RANK2\n\t\t\t\t\t,min(ct.POS) RANK3\n\t\t\t\tFROM\n\t\t\t\t\tb_search_content_title ct\n\t\t\t\t\tINNER JOIN b_lang L ON ct.SITE_ID = L.LID\n\t\t\t\t\tinner join b_search_content sc on sc.ID = ct.SEARCH_CONTENT_ID\n\t\t\t\t\tINNER JOIN b_search_content_site scsite ON sc.ID = scsite.SEARCH_CONTENT_ID and ct.SITE_ID = scsite.SITE_ID\n\t\t\t\tWHERE\n\t\t\t\t\t" . CSearch::CheckPermissions("sc.ID") . "\n\t\t\t\t\tAND ct.SITE_ID = '" . SITE_ID . "'\n\t\t\t\t\tAND (" . implode(" OR ", $sqlWords) . ")\n\t\t\t\t\t" . (!empty($strSqlWhere) ? "AND " . $strSqlWhere : "") . "\n\t\t\t\tGROUP BY\n\t\t\t\t\tID, MODULE_ID, ITEM_ID, TITLE, PARAM1, PARAM2, DATE_CHANGE, DIR, SERVER_NAME, URL, SITE_URL, SITE_ID\n\t\t\t\t" . (count($sqlHaving) > 1 ? "HAVING " . implode(" AND ", $sqlHaving) : "") . "\n\t\t\t\tORDER BY " . ($bOrderByRank ? "RANK1 DESC, RANK2 DESC, RANK3 ASC, TITLE" : "DATE_CHANGE DESC, RANK1 DESC, RANK2 DESC, RANK3 ASC, TITLE") . "\n\t\t\t\tLIMIT 0, " . ($nTopCount + 1) . "\n\t\t\t";
         $r = $DB->Query($strSql);
         parent::CDBResult($r);
         return true;
     } else {
         return false;
     }
 }
Ejemplo n.º 24
0
 function CheckIBlock($id, $type)
 {
     $bError = false;
     if (!empty($id) && !empty($type)) {
         $dbRes = CIBlock::GetList(array(), array('TYPE' => $type, 'ID' => $id));
         if (intval($dbRes->SelectedRowsCount()) < 1) {
             if (ToUpper($GLOBALS['DBType']) != 'MYSQL') {
                 $i = 0;
                 while ($arRes = $dbRes->Fetch()) {
                     $i++;
                 }
                 $bError = $i < 1;
             } else {
                 $bError = true;
             }
         }
     } else {
         $bError = true;
     }
     if ($bError) {
         return false;
     }
     return true;
 }
Ejemplo n.º 25
0
        ?>
">
                                            <div <?php 
        if ($arResult["IDEA_MODERATOR"]) {
            ?>
class="status-action idea-action-cursor" onclick="JSPublicIdea.ShowStatusDialog(this, '<?php 
            echo $CurPost["ID"];
            ?>
')" id="status-<?php 
            echo $CurPost["ID"];
            ?>
"<?php 
        }
        ?>
><?php 
        echo GetMessage("IDEA_STATUS_" . ToUpper($arStatusList[$CurPost["POST_PROPERTIES"]["DATA"]["UF_STATUS"]["VALUE"]]["XML_ID"]));
        ?>
</div>
                                        </div>
                                            <?php 
        echo GetMessage("IDEA_INTRODUCED_TITLE");
        ?>
 <img class="idea-user-avatar" src="<?php 
        echo $arResult["AUTHOR_AVATAR"][$CurPost["arUser"]["ID"]]["src"];
        ?>
" align="top">
                                            <?php 
        if (COption::GetOptionString("blog", "allow_alias", "Y") == "Y" && array_key_exists("ALIAS", $CurPost["BlogUser"]) && strlen($CurPost["BlogUser"]["ALIAS"]) > 0) {
            $arTmpUser = array("NAME" => "", "LAST_NAME" => "", "SECOND_NAME" => "", "LOGIN" => "", "NAME_LIST_FORMATTED" => $CurPost["BlogUser"]["~ALIAS"]);
        } elseif (strlen($CurPost["urlToAuthor"]) > 0) {
            $arTmpUser = array("NAME" => $CurPost["arUser"]["~NAME"], "LAST_NAME" => $CurPost["arUser"]["~LAST_NAME"], "SECOND_NAME" => $CurPost["arUser"]["~SECOND_NAME"], "LOGIN" => $CurPost["arUser"]["~LOGIN"], "NAME_LIST_FORMATTED" => "");
Ejemplo n.º 26
0
 protected function __SetOldFields($strAction, &$arFields)
 {
     global $APPLICATION;
     $arMsg = array();
     $boolResult = true;
     $strAction = ToUpper($strAction);
     if (array_key_exists('CONDITIONS', $arFields) && !empty($arFields['CONDITIONS'])) {
         $arConditions = false;
         if (!is_array($arFields['CONDITIONS'])) {
             if (CheckSerializedData($arFields['CONDITIONS'])) {
                 $arConditions = unserialize($arFields['CONDITIONS']);
             }
         } else {
             $arConditions = $arFields['CONDITIONS'];
         }
         if (is_array($arConditions) && !empty($arConditions)) {
             $obCond = new CSaleCondTree();
             $boolCond = $obCond->Init(BT_COND_MODE_SEARCH, BT_COND_BUILD_SALE, array());
             if ($boolCond) {
                 $arResult = $obCond->GetConditionValues($arConditions);
             }
         }
     }
     if (array_key_exists('ACTIONS', $arFields) && !empty($arFields['ACTIONS'])) {
         $arActions = false;
         if (!is_array($arFields['ACTIONS'])) {
             if (CheckSerializedData($arFields['ACTIONS'])) {
                 $arActions = unserialize($arFields['ACTIONS']);
             }
         } else {
             $arActions = $arFields['ACTIONS'];
         }
         if (is_array($arActions) && !empty($arActions)) {
             $obAct = new CSaleActionTree();
             $boolAct = $obAct->Init(BT_COND_MODE_SEARCH, BT_COND_BUILD_SALE_ACTIONS, array());
             if ($boolAct) {
                 $arResult = $obAct->GetConditionValues($arActions);
             }
         }
     }
     if (!$boolResult) {
         $obError = new CAdminException($arMsg);
         $APPLICATION->ThrowException($obError);
     }
     return $boolResult;
 }
Ejemplo n.º 27
0
		<div class="adm-filter-box-sizing">
			<!-- period select -->
			<span class="adm-select-wrap adm-calendar-period">
				<select onchange="OnReportIntervalChange(this)" name="F_DATE_TYPE"
						id="report-interval-filter" class="adm-select adm-calendar-period">
					<?php 
foreach ($arResult['periodTypes'] as $key) {
    ?>
					<option value="<?php 
    echo htmlspecialcharsbx($key);
    ?>
"<?php 
    echo $key == $arResult["preSettings"]["period"]['type'] ? ' selected' : '';
    ?>
><?php 
    echo GetMessage('REPORT_CALEND_' . ToUpper(htmlspecialcharsbx($key)));
    ?>
</option>
					<?php 
}
?>
				</select>
			</span>
			<!-- filter date from -->
			<div style="display: none;" class="adm-input-wrap adm-calendar-inp adm-calendar-first">
				<input type="text" value="<?php 
echo $_date_from;
?>
" size="10" name="F_DATE_FROM"
					id="REPORT_INTERVAL_F_DATE_FROM" class="adm-input adm-calendar-from">
				<img onclick="BX.calendar({node:this, field:'REPORT_INTERVAL_F_DATE_FROM', form: '', bTime: false, bHideTime: false});"
Ejemplo n.º 28
0
     $err_text = 'ERR: НЕВЕРНАЯ СУММА : ' . $lmi_payment_amount;
 }
 //проверяем ID магазина
 if ($lmi_payee_purse != $IdM) {
     $err = 3;
     $err_text = 'ERR: НЕВЕРЕН ID МАГАЗИНА : ' . $lmi_payee_purse;
 }
 if ($lmi_prerequest == 1) {
     if ($err != 0) {
         echo $err_text;
     } else {
         echo 'YES';
     }
 } else {
     $common_string = $lmi_payee_purse . $lmi_payment_amount . $lmi_payment_no . $lmi_mode . $lmi_sys_invs_no . $lmi_sys_trans_no . $lmi_sys_trans_date . $sk . $lmi_payer_purse . $lmi_payer_wm;
     $hash = ToUpper(md5($common_string));
     if ($err == 0) {
         if ($hash == $lmi_hash) {
             $strPS_STATUS_DESCRIPTION = "";
             $strPS_STATUS_DESCRIPTION .= "Идентификатор магазина - " . $lmi_payee_purse . "; ";
             $strPS_STATUS_DESCRIPTION .= "Внутренний номер платежа  в системе Z-PAYMENT - " . $lmi_sys_invs_no . "; ";
             $strPS_STATUS_DESCRIPTION .= "Внутренний номер счета в системе Z-PAYMENT - " . $lmi_sys_trans_no . "; ";
             $strPS_STATUS_DESCRIPTION .= "дата платежа - " . $lmi_sys_trans_date . "";
             $strPS_STATUS_MESSAGE = "";
             $strPS_STATUS_MESSAGE .= "кошелек покупателя или его e-mail  - " . $lmi_payer_purse . "; ";
             $arFields = array("PS_STATUS" => "Y", "PS_STATUS_CODE" => "-", "PS_STATUS_DESCRIPTION" => $strPS_STATUS_DESCRIPTION, "PS_STATUS_MESSAGE" => $strPS_STATUS_MESSAGE, "PS_SUM" => $lmi_payment_amount, "PS_CURRENCY" => $arOrder["CURRENCY"], "PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))), "USER_ID" => $arOrder["USER_ID"]);
             // You can comment this code if you want PAYED flag not to be set automatically
             CSaleOrder::PayOrder($arOrder["ID"], "Y");
             CSaleOrder::Update($arOrder["ID"], $arFields);
         }
     }
Ejemplo n.º 29
0
    die;
}
$arDefaultUrlTemplates404 = array("list" => "profile_list.php", "detail" => "profile_detail.php?ID=#ID#");
$arDefaultVariableAliases404 = array();
$arDefaultVariableAliases = array();
$arComponentVariables = array("ID", "del_id");
$componentPage = "";
$arVariables = array();
$this->setFramemode(false);
if ($arParams["SEF_MODE"] == "Y") {
    $arUrlTemplates = CComponentEngine::MakeComponentUrlTemplates($arDefaultUrlTemplates404, $arParams["SEF_URL_TEMPLATES"]);
    $arVariableAliases = CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases404, $arParams["VARIABLE_ALIASES"]);
    $componentPage = CComponentEngine::ParseComponentPath($arParams["SEF_FOLDER"], $arUrlTemplates, $arVariables);
    CComponentEngine::InitComponentVariables($componentPage, $arComponentVariables, $arVariableAliases, $arVariables);
    foreach ($arUrlTemplates as $url => $value) {
        $arResult["PATH_TO_" . ToUpper($url)] = $arParams["SEF_FOLDER"] . $value;
    }
    if ($componentPage != "detail") {
        $componentPage = "list";
    }
    $arResult = array_merge(array("SEF_FOLDER" => $arParams["SEF_FOLDER"], "URL_TEMPLATES" => $arUrlTemplates, "VARIABLES" => $arVariables, "ALIASES" => $arVariableAliases), $arResult);
} else {
    $arVariableAliases = CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases404, $arParams["VARIABLE_ALIASES"]);
    CComponentEngine::InitComponentVariables(false, $arComponentVariables, $arVariableAliases, $arVariables);
    if (IntVal($_REQUEST["ID"]) > 0) {
        $componentPage = "detail";
    } else {
        $componentPage = "list";
    }
    $arResult = array("VARIABLES" => $arVariables, "ALIASES" => $arVariableAliases);
}
Ejemplo n.º 30
0
$arSysLangs = array();
$db_lang = CLangAdmin::GetList($b = "sort", $o = "asc", array("ACTIVE" => "Y"));
while ($arLang = $db_lang->Fetch()) {
    $arSysLangs[] = $arLang["LID"];
}
$arReports = array();
$dirs = array($_SERVER["DOCUMENT_ROOT"] . "/bitrix/admin/reports/", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/reports/");
foreach ($dirs as $dir) {
    if (file_exists($dir)) {
        if ($handle = opendir($dir)) {
            while (($file = readdir($handle)) !== false) {
                $file_contents = '';
                if ($file == "." || $file == ".." || $file == ".access.php") {
                    continue;
                }
                if (is_file($dir . $file) && ToUpper(substr($file, -4)) == ".PHP") {
                    $rep_title = $file;
                    if ($dir == $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/reports/") {
                        if (is_file($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/ru/reports/" . $file)) {
                            $file_contents = file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/ru/reports/" . $file);
                        }
                    }
                    if (empty($file_contents)) {
                        $file_contents = file_get_contents($dir . $file);
                    }
                    $rep_langs = "";
                    $arMatches = array();
                    if (preg_match("#<title([\\s]+langs[\\s]*=[\\s]*\"([^\"]*)\"|)[\\s]*>([^<]*)</title[\\s]*>#i", $file_contents, $arMatches)) {
                        $arMatches[3] = Trim($arMatches[3]);
                        if (strlen($arMatches[3]) > 0) {
                            $rep_title = $arMatches[3];